我有一个任务,使用 ffmpeg 从视频中平均提取帧,帧速率不同。我使用这个命令。
ffmpeg -i input.mp4 -r specified_fps -q:v 2 image %4d.png
对于这个任务我有 3 个问题。
- 我原本的期望是,如果我将 fps 翻倍,提取的帧数也会翻倍。但事实并非如此。以一个输入视频为例。对于所有样本因子,我都获得了 2 个额外的帧(80 / 158 / 236 / 392 vs 78 / 156 / 234 / 390)。这是否与从视频中提取帧时的拾取/丢弃帧机制有关?(感谢@Tom Yan)
视频信息
- 时长:1分18秒
- 帧率模式:恒定(CFR)
- 帧率:30.0 FPS
- 总帧数:2340
配置设置和结果
第一人称射击游戏 | 实际帧数 | 正确的帧数 |
---|---|---|
1 | 80 | 78 |
2 | 158 | 156 |
3 | 236 | 234 |
5 | 392 | 390 |
我检查输出图像,发现不同 fps 提取的帧完全不同。换句话说,例如,fps=1 的第一幅图像与 fps=2 的第一幅图像不同。这合法吗?我有可能获得不同 fps 的一些相同图像吗?
最后一个问题是,我使用的某些视频,第 1 幅图像与第 2 幅图像之间的差异与第 2 幅图像与第 3 幅图像之间的差异不同。而对于其余图像,差异变得平均。具体来说,从第 1 帧到第 2 帧只有轻微的变化,而从第 2 帧到第 3 帧、第 3 帧到第 4 帧等等,变化相同,这根据指定的 FPS 呈正态分布。我想知道为什么会出现这种情况?它与 I 帧、B 帧、P 帧、GOP 或 IDR 有关吗?
我是这个领域的新手,无法从其他地方找到有用的信息。我已尽力清楚地描述我的问题。请随意发表评论。任何帮助都会对我大有裨益。提前致谢!