如何用ffmpeg编写一个显式控制关键帧位置的视频编码器?

我想用ffmpeg编写一个编码器,可以将iFrames(关键帧)放在我想要的位置.在哪里可以找到教程或参考资料?

P.S
 可以用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.

有些介绍材料可用herehere,但我真的不知道它是多么好.

您需要注意如何分配API调用所需的帧对象.在我看来,api-example.c是你最好的选择.寻找功能video_encode_example() – 它是简洁的,并说明了您需要担心的所有重要的事情 – 特别注意通过一个空的图片参数的avcodec_encode_video()的第二次调用 – 需要获取视频的最后一帧,因为MPEG视频按顺序进行编码,可能会导致几帧延迟.

http://stackoverflow.com/questions/2289319/how-to-write-a-video-encoder-with-ffmpeg-that-explicitly-controls-the-position-o

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:如何用ffmpeg编写一个显式控制关键帧位置的视频编码器?