作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想用 ffmpeg 编写一个编码器,它可以将 iFrame(关键帧)放在我想要的位置。在哪里可以找到它的教程或引用资料?
附注
是否可以使用 mencoder 或任何开源编码器来做到这一点。我想对 H263 文件进行编码。我是在 Linux 下编写的。
最佳答案
您需要查看 libavcodec 文档 - 特别是 avcodec_encode_video()。我发现最好的可用文档位于 ffmpeg 头文件和随 ffmpeg 源提供的 API 示例源代码。具体来说,请查看 libavcodec/api-example.c 甚至 ffmpeg.c。
要强制使用 I 帧,您需要将要编码的图片的 pict_type 成员设置为 1:1 是 I 帧,2 是 P 帧,我不记得代码是什么我的头顶上有一个 B 帧...此外,key_frame 成员需要设置为 1。
提供了一些介绍性 Material here和 here ,但我真的不知道它有多好。
您需要小心如何分配 API 调用所需的框架对象。我认为 api-example.c 是您最好的选择。查找函数 video_encode_example() - 它很简洁,说明了您需要担心的所有重要事情 - 特别注意第二次调用 avcodec_encode_video() ,它传递了 NULL 图片参数 - 它需要获取视频的最后一帧,因为MPEG 视频编码不按顺序进行,最终可能会出现几帧的延迟。
关于ffmpeg - 如何使用 ffmpeg 编写显式控制关键帧位置的视频编码器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2289319/
我是一名优秀的程序员,十分优秀!