【发布时间】:2018-12-13 23:00:17
【问题描述】:
所以,我已经阅读了这里的所有文章,但不幸的是,我似乎无法找到我正在寻找的答案。我已经接近了,但某些魔线暗示了我。
我在 ubuntu 17.10 服务器上运行 hls 直播 (nginx)。简而言之,我可以使用以下方法让服务器一次运行一个视频,使用 ffmpeg(带字幕):
ffmpeg -re -i "1.mkv" -vcodec libx264 -vprofile baseline -g 30 -b:v 1000k -s 852x480 -acodec aac -strict -2 -b:a 192k -ac 2 -vf subtitles=1.srt -f flv rtmp://localhost:1935/show/stream
不过,我找不到使用此方法运行播放列表的解决方案。这似乎是不可能的,当我通过 sout(内部或外部)尝试 vlc 时,我发现缓冲区问题或 aac 实验性编解码器错误:
[aac @ 0xb162e900] 编码器“aac”是实验性的,但实验性编解码器未启用,如果要使用,请添加“-strict -2”。
出现该错误的示例字符串:
vlc "1.mkv" --sout '#transcode{soverlay,vb=1000,vcodec=h264,width=853,height=480,acodec=mp4a,ab=128,channels=2,samplerate=44100}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://localhost:1935/show/stream}'
所有其他音频编解码器都不适用于 flv。我很茫然,我已经尝试了几乎所有我能想到和挖掘的组合,只是为了达到这一点。其中最好的功能是 ffmpeg:它根本不缓冲视频,播放流畅,但无法播放播放列表。而 vlc 可以播放播放列表但会缓冲,并且没有声音(内部)。我已经尝试过 aenc=ffmpeg{strict=-2}、批处理管道等。我需要帮助。没有任何效果。有什么解决办法吗?我想要的只是运行一个包含 25 个视频的播放列表,所有不同的变体,在 m3u8 的循环中进行嵌入。
【问题讨论】:
-
升级vlc。
aac消息来自 vlc 使用的 2016 年前版本的 ffmpeg。 -
@Gyan 没有这样做。
标签: nginx ffmpeg vlc http-live-streaming m3u8