FFmpeg 删除负面帧

FFmpeg 删除负面帧

我正在使用 FFmpeg 处理具有负开始时间的视频:

$ ffmpeg -i test.mp4 -ss 0 out.mp4
...
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 1
    compatible_brands: mp41mp42isom
    creation_time   : 2018-01-03 11:35:13
  Duration: 00:00:06.16, start: -1.238906, bitrate: 1425 kb/s
...
Output #0, mp4, to 'out.mp4':
...
frame=  222 fps=0.0 q=-1.0 Lsize=     166kB time=00:00:07.44 bitrate= 182.9kbits/s

有没有办法在时间 0 处剪切视频?即输出的持续时间应为 6.16 而不是 7.74。我尝试过设置-avoid_negative_ts为所有不同的值。显然,我可以手动读取负值并使用正确的偏移量再次运行它-ss,但我正在寻找一种自动解决方案。

答案1

通常,-ss输入选项用作相对于文件开头的相对偏移量。由于您的开始时间为负数且事先未知,因此您可以启用seek_timestamp以查找绝对时间戳值。

ffmpeg -seek_timestamp 1 -ss 0 -i test.mp4 out.mp4

相关内容