命令如下:
ffmpeg -i rtmp://localhost/myapp/obs -c:a libfdk_aac -b:a 32k -c:v libx264 -f flv rtmp://localhost/hls/obs_low
我的 RTMP 服务器记录了所有已发布的流,因此我可以查看它们。奇怪的是,在rtmp://localhost/myapp/obs
流式传输时,如果我运行上述 ffmpeg 命令,输出文件中只有音频,没有视频。在终端输出中:
Stream mapping: Stream #0:0 -> #0:0 (aac (native) -> aac (libfdk_aac))
但如果我再次运行相同的命令,可能会有视频。视频可能存在,也可能不存在,这是随机的。如果有视频,我会在终端中看到以下输出:
Stream mapping: Stream #0:1 -> #0:0 (h264 (native) -> h264 (libx264)) Stream #0:0 -> #0:1 (aac (native) -> aac (libfdk_aac))
“仅音频”命令的完整输出:http://pastebin.com/zL0ctvTZ
“成功”命令的完整输出:http://pastebin.com/DQ1XJ1wM
答案1
听起来交错间隙很大。尝试使用-analyzeduration 1G -probesize 50M -i rtmp://...
这些值在丢失流和开始捕获延迟之间进行权衡,因此我建议进行试验。analyzeduration 和probesize 的默认值都是5M
,因此请尝试使用稍大的值,直到始终不会出现流丢失。首先尝试使用probesize。您可能不需要指定另一个。