使用RTMP进行FFMPEG流媒体

3

我正在尝试使用ffmpeg创建一个流来将视频发送到Red5服务器。我已经使用以下命令成功完成了这个过程:

ffmpeg -re -y -i "Videos\Video1.mp4" -c:v libx264 -b:v 600k -r 25 -s 640x360 -t 40 -vf yadif -b:a 64k -ac 1 -ar 44100 -f flv "rtmp://192.168.0.12/live/videostream"

我的问题是,当ffmpeg完成视频编码后,它会停止流,并且因此在短视频中会将视频提前截止5-10秒,但对于更长的视频来说,情况会变得更糟。

有没有办法停止这种行为? 我尝试添加一个空白的10秒视频在原始视频之前和之后,但由于某些编码选项,我总是失去音频。而且这只能在短视频上部分起作用,在更长的视频上仍然存在问题。

是否有任何建议?


伙计,那看起来像个bug,也许可以ping一下ffmpeg-user邮件列表? - rogerdpack
1
嗨,我在Win 8中运行了完全相同的命令。但是最后出现了以下错误:[flv @ 03990f40]无法使用正确的持续时间更新标头。[flv @ 03990f40]无法使用正确的文件大小更新标头。有任何想法吗? - kajarigd
2个回答

0

这可能是由于您的文件或文件长度造成的。

当文件结束时,ffmpeg会显示如下信息:

enter image description here

当我上传一个11秒的mp4视频时,遇到了这个问题,但是当我上传一个10分钟以上的长mp4文件时,它可以正常工作。

因此,您可以使用另一个适当长度的mp4文件。


0

我不认为可以告诉FFMpeg在读取源文件的末尾后保持连接开放。你很可能必须使用Xuggler或对FFMpeg进行一些自定义修改来完成这样的操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接