![Ffmpeg - 将连续直播流分割成一分钟的独立文件](https://linux22.com/image/1587519/Ffmpeg%20-%20%E5%B0%86%E8%BF%9E%E7%BB%AD%E7%9B%B4%E6%92%AD%E6%B5%81%E5%88%86%E5%89%B2%E6%88%90%E4%B8%80%E5%88%86%E9%92%9F%E7%9A%84%E7%8B%AC%E7%AB%8B%E6%96%87%E4%BB%B6.png)
我正在尝试全天 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"