![ffmpeg 与 -segment_time 一起使用时会增加视频片段的长度 - 如何修复?](https://linux22.com/image/1490221/ffmpeg%20%E4%B8%8E%20-segment_time%20%E4%B8%80%E8%B5%B7%E4%BD%BF%E7%94%A8%E6%97%B6%E4%BC%9A%E5%A2%9E%E5%8A%A0%E8%A7%86%E9%A2%91%E7%89%87%E6%AE%B5%E7%9A%84%E9%95%BF%E5%BA%A6%20-%20%E5%A6%82%E4%BD%95%E4%BF%AE%E5%A4%8D%EF%BC%9F.png)
我正在尝试将 rtmp 流记录到文件中,每 10 秒分割一次。
我的 ffmpeg 命令是:
ffmpeg -i rtmp://192.168.16.82:1935 -f segment -strftime 1 -segment_time 10 -segment_format avi E:\record\CAM1_%Y-%m-%d_%H-%M-%S.avi
它可以工作,但是创建的文件在某种程度上被损坏了。第一个文件没有问题,长度为 10 秒;第二个文件的长度为 20 秒,前 10 秒是静态图像;第三个文件的长度为 30 秒,前 20 秒只是静态图像,依此类推。
我做错了什么?
答案1
AVI 不适用于 PTS,因此您必须重置时间戳:
ffmpeg -i rtmp://192.168.16.82:1935 -f segment -strftime 1 -reset_timestamps 1 -segment_time 10 -segment_format avi E:\record\CAM1_%Y-%m-%d_%H-%M-%S.avi