ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

H.264编码器使用

2021-12-13 22:06:46  阅读:202  来源: 互联网

标签:编码 编码器 H.264 YUV picin 使用 x264


进行H.264编码,C++中比较好用库为libx264,此库封装了H.264编码功能,编码的功能分为几步

1、初始化H.264编码器,指定输入源YUV的格式,m_x264_param中主要配置流尺寸,码率,帧率,等参数,图片输入源设定YUV格式,一般YUV420格式居多,节省存储空间,设置H.264流的尺寸需要和YUV图片尺寸一致。

    注意此参数需要设置为1,m_x264_param.b_repeat_headers = 1;由于每帧都需要带帧头

    m_hx264 = x264_encoder_open(&m_x264_param);
    m_x264_picin = (x264_picture_t*)malloc(sizeof(x264_picture_t));
    int nRet = x264_picture_alloc(m_x264_picin, X264_CSP_I420, m_nwidth, m_nheight);

2、编码输入为YUV帧,输出为H.264帧数据,和是否关键帧数据

     memcpy(m_x264_picin->img.plane[0], indata, inlen);
     outlen = x264_encoder_encode(m_hx264, &m_x264_nal, &m_inal, m_x264_picin, &m_x264_picout);
        m_x264_picin->i_pts++;

判断关键帧  m_x264_picout.b_keyframe  H.264帧数据 m_x264_nal[0].p_payload

3、释放,编码器使用完毕需要释放。

      x264_encoder_close(m_hx264);

C++使用常用参数对x264方法封装DLL

在C#中使用静态导入方法即可实现H.264编码 

 

标签:编码,编码器,H.264,YUV,picin,使用,x264
来源: https://blog.csdn.net/evint888/article/details/121915099

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有