FFMPEG-将多个视频文件流式传输到RTMP服务器

时间:2020-06-11 20:41:51

标签: ubuntu video ffmpeg rtmp

我正在使用Ubuntu 20.0.4

我想要实现的是使用FFMPEG将许多不同编解码器和分辨率的视频文件一个接一个地流传输到我的RTMP服务器。这些文件可以是例如avi,mp4,mkv。全部具有无缝播放。

到目前为止,我已经设法使用以下命令优化单个视频的播放:

ffmpeg -re -i video.mp4 -r 30 -preset medium -force_key_frames 'expr:gte(t,n_forced*4)' -g 120 -keyint_min 120 -acodec aac -vcodec libx264 -b:v 1M -b:a 192k -f flv rtmp://address/live/live

之后,我继续尝试使用concat从.txt文件中读取文件列表,然后依次播放它们,如下所示:

file '/pathtovideo/video1.mp4'
file '/pathtovideo/video2.avi'
file '/pathtovideo/video3.mkv'

下面我最后得到的内容对于播放的第一个文件效果很好,但是在播放之前,在我开始观看下一个视频(音频和视频不同步)之前,有很多暂停和冻结的地方:

ffmpeg -re -safe 0 -f h264 -f concat -segment_time_metadata 1 -i "videos.txt" -vf select=concatdec_select -af aselect=concatdec_select,aresample=async=1 -r 30 -preset medium -tune animation -force_key_frames 'expr:gte(t,n_forced*4)' -g 120 -keyint_min 120 -acodec aac -vcodec libx264 -b:v 1M -b:a 192k -f flv rtmp://address/live/live

当新的视频文件开始时,我注意到FFMPEG的输出停止增加处理的帧大约5秒钟。

从本质上讲,结果是视频之间的过渡不佳,并且在播放之后的任何正在进行的视频中,很多播放都被冻结。

我对如何改进它有些迷惑,因此不胜感激。

0 个答案:

没有答案