FFMPEG 无需重新编码即可添加关键帧

Zol*_*tán 2 ffmpeg flv

如何在不重新编码的情况下为 FLV 文件添加关键帧?我尝试使用此命令,但什么也不做:

ffmpeg -i file.flv  -vcodec copy -acodec copy -g 0 -y tmp.flv && yamdi -i tmp.flv -o out.flv
Run Code Online (Sandbox Code Playgroud)

(来源和这个)结果不能用 Flash 播放器正确搜索。我有很多flv要“修复”。

evi*_*oup 9

如何在不重新编码的情况下为 FLV 文件添加关键帧?

你不能。

关键帧或 I 帧是一个独立的帧 - 它不需要在解码之前或之后的任何帧。其他帧是 P 帧(需要解码一个或多个前一帧,其内容基于对前一帧所做的更改,而不是孤立地形成完整的图片)和 B 帧(与 P 帧相同,但在它们之前之后都参考帧)。

为了将 P 或 B 帧更改为 I 帧,您需要解码然后重新写入视频流。所以你不能在不重新编码的情况下添加关键帧。

查看ffmpeg wiki上的x264 编码指南,了解有关如何获得美观编码的一些提示。