问题:
如何将GOP大小设置为输入帧率的倍数?
上下文:
我理想的GOP大小公式是source_fps * 2
。我的源的帧率可以是30或60帧/秒,所以我无法设置一个对两者都有效的静态值。ffmpeg公开了一个我可以使用的变量吗?我知道在对iw
或ih
等变量使用-vf
选项时,您可以获得有关源输入的元数据。FPS有没有类似的方法?
其中GOP大小和keyint_min是硬编码的示例命令:
ffmpeg -i <input> -keyint_min 120 -g 120 -f dash /path/to/out.mpd
所需的命令,其中e大小和keyint_min基于源帧速率:
ffmpeg -i <input> -keyint_min source_framerate * 2 -g source_framerate * 2 -f dash /path/to/out.mpd
发布于 2020-09-03 23:11:03
-g
仅接受帧间隔。
FFmpeg有一个-force_key_frames
选项,可以按照固定的时间间隔或更复杂的逻辑强制KFs。查看其在https://ffmpeg.org/ffmpeg.html#Advanced-Video-options中的条目
添加
-force_key_frames expr:gte(t,n_forced*2)
强制每2秒执行一次关键帧。
https://stackoverflow.com/questions/63725248
复制相似问题