视频编码小结

背景

最近由于项目需求,搞了一段时间的H264视频编解码,做的过程中还是踩了不少坑,而且在查询资料的过程中发现网上的很多博客里面有一些有误导性的内容,所以自己打算把这段时间的工作记录一下,免得以后再犯。

RGB转YUV420

我们的编码库采用的是libx264,解码用的FFmpeg,由于H264只支持yuv420的编码,所以需要把rgb的像素点转成yuv420。

代码

这块需要注意的是,我们项目中原始的像素点是bgra格式,转yuv420调用的libyuv库。具体的调用实现如下:

static void bgra_to_yuv420(uint8_t *pixels, int width, int height, int stride,
                          uint8_t *bufY, uint8_t *bufU, uint8_t *bufV)
{
    //根据像素格式的不同可能需要调整Y U V分量的stride
    ARGBToI420(pixels, stride, bufY, width, bufU, width >> 1, bufV, width >> 1, width, height);
}

调用libx264编码

编码主要是编码器参数的设置,同时需要注意libx264编码的width、height都得是偶数,一些硬件编码卡可能需要width是16的倍数,这块需要注意。我的编码配置:

        x264_param.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值