我想尝试做一些数据移动,比如 this tutorial .但是我希望能够以编程方式完成它,所以我想弄清楚如何使用 ffmpeg 和/或其他命令行工具尽可能多地完成这个过程,而不是 vdub 和 avidemux。
我遇到的第一个问题是当我使用 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 帧。
最佳答案
尝试使用 -keyint
旗帜。我相信您可以发送最小 GOP 长度( key 间隔长度)。
您需要知道文件中有多少帧,并且可以尝试将最小键间隔设置为该长度。
IE = keyint=[KEY INTERVAL VALUE]:min-keyint=[MINIMUM KEY INTERVAL VALUE]
关于video - 如何使用 FFMPEG 将视频的第一帧转换为 I 帧,将其余帧转换为 P 帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30920343/