1、步骤
创建编码器,得到上下文返回(即返回enc_ctx的地址)
在函数中继续的给enc_ctx设置参数
打开编码器
、
注意,定义一下ret,在函数里面最开头
int ret = 0;
2、使用的时候调用上面函数就行(例如下图)
3、进行数据编解码需要下面两个函数
可以看出需要构造输入数据AVFrame,和输出数据AVPacket
4、创建AVFrame
有个错printf写错
在需要的函数中调用上面方法即可
5、创建AVPacket数据
6、实际数据处理(因为电脑视频是NV12格式,转换为YUV420格式)
NV12存储格式在前面讲,因为是YYYYYYYY UVVU格式存储,Y个数有640*480=307200个
7、编码
接上
记得现在函数开始定义ret
int ret = 0;
注意:上面代码调试出错(外层加个判断)
接上(获取转换好的数据)
这样就写好编码器编码数据函数了
8、回到先去调用编码数据函数的函数中调用
注意编码完成后要再调用一次,这样就不会漏数据在缓冲区了
9、调试
出现花屏(在主函数中加个int base = 0; 然后然PTS每次加1 )