如何将视频的第一帧转换为I帧,其余的转换为使用FFMPEG的P帧?

时间:2015-06-18 16:00:17

标签: video ffmpeg data-moshing

我想尝试像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帧被创建。

1 个答案:

答案 0 :(得分:0)

尝试使用-keyint标志。我相信你可以发送最小GOP长度(密钥间隔长度)。

您需要知道文件中有多少帧,并且您可以尝试将最小键间隔设置为该长度。

I.E = keyint=[KEY INTERVAL VALUE]:min-keyint=[MINIMUM KEY INTERVAL VALUE]