我有一个摄像机流,以10 fps的速度提供视频,分辨率为800x600,采用h264编码。我喜欢将视频分成10分钟的剪辑,并以系统时间为名保存。 我使用以下代码来执行此操作。
ffmpeg -i $URL -c copy -map 0 -f segment -strftime 1 -segment_atclocktime 1 -reset_timestamps 1 -segment_time 600 -segment_format mp4 %Y%m%d_%H%M%S.mp4
但是当我运行代码时,它会给我以下警告。
[segment @ 0x55968f393e80]在流0的数据包中未设置时间戳。这已被弃用,并且将来会停止工作。修复代码以正确设置时间戳
[segment @ 0x55968f393e80]输出流0:0中的非单调DTS;上一个:0,当前:0;更改为1.这可能会导致输出文件中的时间戳不正确。
而节省的视频并不完全是10分钟。
如何修复这些警告并保存长度等于10分钟的视频。
谢谢!!
忽略时间戳警告。 H264流没有时间戳,因此ffmpeg必须生成它们。
由于关键帧放置,您无法在不重新编码的情况下获得精确的段长度。