如何使用FFmpeg将FLV文件实时发布到RTMP服务器?

8
我想做的是将一个 .flv 媒体文件发布到 RTMP 服务器,以便订阅者观看。我正在测试在几个订阅者 (即 oflaDemo) 和使用 ffplay 中查看流。 问题在于 ffmpeg 在近20秒内将5分钟的 .flv 文件发布到服务器上,在这20秒钟中,流出现在订阅者上,但之后就会中断。 我使用的命令是:
ffmpeg -i file.flv -re -acodec copy -vcodec copy -f flv "rtmp://localhost/oflaDemo/aaa live=1"

我该如何强制ffmpeg在5分钟内流式传输5分钟的文件,或者其他解决方案。

谢谢。


2
我认为应该使用-re作为输入选项,但我可能错了。 - llogan
1个回答

19

解决了

-re 应该作为第一个参数:

ffmpeg -re -i file.flv -acodec copy -vcodec copy -f flv rtmp://localhost/oflaDemo/a3

来源于FFmpeg官方文档

通用语法如下:

ffmpeg [global options] [[infile options][‘-i’ infile]]... {[outfile options] outfile}...

-re (输入)

以本地帧速率读取输入。主要用于模拟抓取设备。默认情况下,ffmpeg尝试尽可能快地读取输入。该选项将减慢输入读取速度至输入的本机帧速率。

文档指出-re选项是输入标志,因此它应该直接位于-i标志前的infile选项中。


我正在尝试同样的事情:使用Red5作为服务器,ffmpeg提供流,并使用ffplay或VLC查看流。现在我无法查看流!你是如何做到的?谢谢! - user1914692

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