我想尝试像this tutorial那样进行一些数据清理工作。但是我希望能够以编程方式完成它,所以我不想使用vdub和avidemux,而是想知道如何使用ffmpeg和/或其他命令执行此过程的尽可能多的部分线工具。
我遇到的第一个问题是,当我将ffdshow codec rev 3556与VDub一起使用时,它只输出一个损坏的视频。我觉得我接近得到了我想要的东西,它是第0帧作为I帧,所有其余的作为P帧使用以下命令
ffmpeg -i input.mp4 -force_key_frames 00:00:00.000 output.avi
这有几个问题...
1)我也得到了B帧,不能使用那种类型的数据 -
2)每10帧左右还有I帧
我觉得问题是我需要使用某个编解码器对视频进行编码,并且-force_key_frames
可能只是强制添加额外的关键帧(I帧)但不能防止其他I帧被创建。
答案 0 :(得分:0)
尝试使用-keyint
标志。我相信你可以发送最小GOP长度(密钥间隔长度)。
您需要知道文件中有多少帧,并且您可以尝试将最小键间隔设置为该长度。
I.E = keyint=[KEY INTERVAL VALUE]:min-keyint=[MINIMUM KEY INTERVAL VALUE]