如何使用ffmpeg将直播流提取为mp4序列

Dan*_*iel 9 ffmpeg

我想将实时流录制到磁盘上的一系列 mp4 中。我可以做一个这样的文件:

ffmpeg -i rtmp://source.com/live/stream -r 5 -t 60 c:\test.mp4
Run Code Online (Sandbox Code Playgroud)

这会产生一个 60 秒的 mp4 (test.mp4)。我想要的是这样的:

ffmpeg -i rtmp://source.com/live/stream -r 5 -t 60 c:\test%d.mp4
Run Code Online (Sandbox Code Playgroud)

这导致每分钟 60 秒的 mp4(test1.mp4、test2.mp4 等)我找到了很多以类似方式提取单帧的示例,但不是视频。

我意识到我可以循环调用第一个示例,但我希望有一种好方法可以通过让 ffmpeg 处理排序来在每个文件之间将损失最小化。将实时流录制到 mp4 序列中的最简洁方法是什么?

nic*_*lab 17

您可以使用段复用器。示例命令:

ffmpeg -i rtmp://source.com/live/stream -c copy -flags +global_header -f segment -segment_time 60 -segment_format_options movflags=+faststart -reset_timestamps 1 test%d.mp4
Run Code Online (Sandbox Code Playgroud)