ffmpeg
将RTMP流处理为输入或输出,并且运行良好。使用FFMPEG将视频文件连续流传输到RTMP服务器
我想将一些视频(由python脚本管理的动态播放列表)流式传输到RTMP服务器,而我目前正在做一些非常简单的事情:使用FFMPEG将我的视频一个接一个地传输到RTMP服务器,但是,每次视频结束时都会导致连接中断,并且当下一个视频开始时,流就准备好了。
我想连续播放这些视频而没有任何连接断开,然后可以正确查看该视频流。
我使用这个命令通过一个流我的影片之一
ffmpeg -re -y -i myvideo.mp4 -vcodec libx264 -b:v 600k -r 25 -s 640x360 \
-filter:v yadif -ab 64k -ac 1 -ar 44100 -f flv \
"rtmp://mystreamingserver/app/streamName"
我找了一些解决方法在互联网上很多天的服务器,我发现一些人在谈论使用命名管道作为输入在ffmpeg
中,我已经尝试过了,它不能正常工作,因为ffmpeg
不仅在关闭RTMP视频流时关闭了新视频,而且还关闭了它自己。
有没有办法做到这一点? (流的视频动态播放列表与ffmpeg
到RTMP服务器,而无需连接中断
使用命名管道是正确的选择。你能详细说明这不适合你吗? – blahdiblah 2012-07-25 22:13:43
@blahdiblah我使用了命名管道作为ffmpeg的输入,ffmpeg暂停并等待管道中的一些数据,然后我尝试了'cat video.mp4> fifo'和ffmpeg开始流式传输并在流式传输视频后退出。我认为我不知道如何使用正确的方式命名管道,当我做'cat video1.mp4 video2.mp4> fifo' ffmpeg显示错误'流4,偏移0x1d83c:部分文件'后流第一个视频。我知道这是我做错了,我必须通过管道以适当的方式传递视频数据。 – KKetch 2012-07-26 07:41:11
我设法通过使用每个视频管道(ex vid1.mp4 - > pipe1,vid2.mp4 - > pipe2等)来流式传输视频的静态播放列表。然后我写入一个名为管道“流”的流,这种方式'cat pipe1 pipe2 pipe3> stream',并且我使用流管道作为FFMPEG中的输入来发布我的流,但是因为我正在寻找一个动态播放列表**我发送更多视频到“流”管道,以保持该流?**我还没有弄清楚。 (注意,除了第一个视频,我不得不使用tail命令剪切每个视频文件的元数据以获得这个工作) – KKetch 2012-07-28 14:53:07