首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何控制关键帧的生成?

如何控制关键帧的生成?
EN

Stack Overflow用户
提问于 2013-01-02 06:27:09
回答 1查看 16.4K关注 0票数 9

我正在制作一个分段程序来干预ffmpeg的write_frame函数,并将输出数据写入不同的文件。每个分段文件包含大约3秒的视频片段。

守则如下:

代码语言:javascript
复制
1 - Get transcoded packet  
2 - Check if it contains key frame data, if yes goto 3. 
3 - Check the duration of current segment, if it exceed 3 seconds, goto 4 
4 - Close file, and create new segment, write packet to segment file, goto-1

一般来说,每个片段至少包含3秒的视频数据,它从一个关键帧开始。

问题是输出视频的持续时间是非常不同的,有些包含3秒,有些包含5或6。

我怀疑这个问题是因为ffmpeg如何在代码转换过程中生成关键帧。如果两个相邻的关键帧之间的“距离”是6s,我有6秒段。

以下是我的问题:

  1. 这是真的,ffmpeg生成的关键帧间隔不规则(间隔时间最多可达几秒钟(例如。6)?
  2. 如何控制ffmpeg关键帧的生成?(我想应该有一个ffmpeg命令的论点,也许是-force_key_frames,但我不确定)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-02 11:32:13

  1. 在场景变化检测的基础上,在不规则的间隔上生成关键帧是可能的。
  2. 关键帧间隔可以通过GOP大小来控制。可以使用下列选项

-g (FFmpeg)关键帧间隔,又称GOP长度。这决定了i帧之间的最大距离.非常高的GOP长度将导致稍微更有效的压缩,但将使在视频中寻找更多的困难。

-keyint_min (FFmpeg)最小GOP长度,i帧间的最小距离.

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14117757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档