嘟嘟社区

这段ffmpeg代码错在哪里 ?


ffmpeg 按时长切视频的代码的问题,代码如下:

ffmpeg -i /Users/abu/Movies/示例.mp4 -c copy -map 0 -segment_time 8 -f segment output%03d.mp4

想要实现的是每段 8 秒,而实际变成了 第一段正常,第二段就变成 16 秒了,用播放器播放的话从第 9 秒开始,第三段变成了 24 秒,播放器播放就是从 17 秒开始,如果拉入剪辑软件查看的话就是第二段开始每段开头有相应时长的黑屏画面。

错在哪里呢?

实际测试没有问题啊

ffmpeg -i /Users/abu/Movies/示例.mp4 -c copy -map 0 -segment_list segment_list.csv -segment_time 8 -f segment output%03d.mp4

cat segment_list.csv

本帖最后由 ShqBql 于 2022-8-2 02:39 编辑

zxxx 发表于 2022-8-2 02:22
实际测试没有问题啊

ffmpeg -i /Users/abu/Movies/示例.mp4 -c copy -map 0 -segment_list segment_list.c …

我一开始也没有注意,因为播放器播放是正常的 ,但是是从中间开始播放的,总时长,只有第一段是8秒 第二段是16秒 第三段是24秒,以此类推。如果拉到剪辑软件看下就会发现第二段有8秒左右黑屏,第三段有16秒左右黑屏,以此类推。

ffmpeg -i /Users/abu/Movies/示例.mp4 -c copy -map 0 -segment_time 8 -f segment -reset_timestamps 1 output%03d.mp4

这样就可以了。加上 -reset_timestamps 1

acpp 发表于 2022-8-2 03:09
ffmpeg -i /Users/abu/Movies/示例.mp4 -c copy -map 0 -segment_time 8 -f segment -reset_timestamps 1 o …

感谢,很有效。。。。

acpp 发表于 2022-8-2 03:09
ffmpeg -i /Users/abu/Movies/示例.mp4 -c copy -map 0 -segment_time 8 -f segment -reset_timestamps 1 o …

已经有错误的视频能用这个参数修复吗?