好的,我的任务是这样的:
- 将视频剪辑成 N 个部分。
- ffmpeg -i in.mpg -ss 10 -t 10 -codec copy part1.mpg
- ffmpeg -i in.mpg -ss 30 -t 10 -codec copy part2.mpg
- ...
- 将这些部分放在一起
- cat 部分1.mpg 部分2.mpg ... > temp.mpg
- 该文件运行良好,但由于 PTS 值错误,持续时间等变得混乱。
- 通过 FFmpeg 运行
- ffmpeg -i temp.mpg -codec 复制出.mpg
- 该文件也运行良好,但对于剪辑的确切持续时间,现在有黑色空间。PTS 是固定的,但它也考虑了删除的帧。
我该如何修正 PTS 值?
编辑:我被迫使用旧版本的 FFmpeg(因此不能使用诸如 trim 或 concat 解复用器之类的过滤器)。
答案1
每次运行分割视频的命令时,都应该使用setpts
过滤器,例如:
ffmpeg -i input.mpg -ss 10 -t 10 -vf "setpts=PTS-STARTPTS" -c copy part1.mpg
那么它可能会起作用,但用于cat
视频并不是一个好主意。