Ffmpeg - 将连续直播流分割成一分钟的独立文件

Ffmpeg - 将连续直播流分割成一分钟的独立文件

我正在尝试全天 24 小时从 IP 摄像机捕获 RTSP 流并将其保存为一分钟长的文件。到目前为止,通过阅读文档,我已经取得了部分成功。我正在捕获流,所有文件都有一分钟的视频。问题是生成的第一个文件有一分钟的视频,一切正常。生成的第二个文件表明捕获的视频有两分钟长,但在第一分钟内屏幕是空白的,最后只有一分钟的视频。第三个文件相同,只是在最后实际捕获的一分钟视频之前有两分钟的空白屏幕。我敢打赌第 60 个文件会有 59 分钟的空白屏幕和一分钟的捕获视频。

我想要的是每分钟一个独立的文件,但我似乎找不到在命令行上添加的开关来执行此操作。有什么想法吗?谢谢

编辑

当前命令行:

ffmpeg -rtsp_transport tcp -i rtsp://192.168.10.203:554/11 -r 25 -vcodec copy -acodec copy -reorder_queue_size 8000 -max_delay 10000000 -map 0 -f segment -segment_time 60 -segment_format avi "/vidcam2cont/ffmpeg_capture-%03d.avi"

可能有些东西可以删除或更改,但我花了很长时间阅读文档和大量帖子,并进行了大量实验才阻止所有丢帧。这个特殊的组合产生了很好的视频。如果它正确地分割了流,我会非常高兴。

答案1

为了分割为 AVI,您应该重置时间戳。

ffmpeg -rtsp_transport tcp -reorder_queue_size 8000 -i rtsp://192.168.10.203:554/11 -r 25 -vcodec copy -acodec copy -map 0 -f segment -segment_time 60 -reset_timestamps 1 -segment_format avi "/vidcam2cont/ffmpeg_capture-%03d.avi"

答案2

显然日志文件没有多大帮助,所以我继续尝试不同的方法,发现下面的方法解决了一分钟视频前黑屏/空白时间不断延长的问题。同样,可能有些地方不太正确或不需要,但到目前为止似乎有效。

ffmpeg -rtsp_transport tcp -reorder_queue_size 8000 -vsync drop -i rtsp://192.168.10.203:554/11 -map 0 -r 30 -vcodec copy -acodec copy -f segment -segment_time 60 -reset_timestamps 1 -strftime 1 "/path/%d-%m-%Y__%H_%M_test.avi"

相关内容