Window C++ 实现FFmpeg H264/H265解码

FFmpeg解码支持直接解码数据到CPU上,CPU上再对解码后的数据做颜色空间转换(非必须),再使用QT/GDI/SDL等渲染上屏,这步骤多了解码后从GPU数据拷贝到CPU以及在从CPU拷贝到Gpu渲染的过程。当然可以采用dxva2/d3d11va解码后直接上屏,减少GPU<->CPU的拷贝,在个人的文章有说明(Windows C++ 实现FFmpeg+dxva2解码并直接渲染(减少GPU->CPU的拷贝)-CSDN博客)。本文描述的是第一种。

解码跟编码不一样,解码还是比较简单的,不需要很多的参数初始化,具体流程如下:
 

 1. 选择解码器类型,比如是否使用硬件解码器,具体的类型有:(h264/h264_qsv/h264_cuvid/hevc/hevc_qsv/hevc_cuvid)


  pDecoder = avcodec_find_decoder_by_name("h264");
    decoderCtx = avcodec_alloc_context3(pDecoder);
    if (!decoderCtx) {
        return -1;
    }

  • 19
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值