• FFmpeg(四) 像素转换相关函数理解


    一、基本流程

      1、sws_getCachedContext();//得到像素转换的上下文

      2、sws_scale();//进行转换

    二、函数说明

      1、SwsContext *vctx = NULL;  //像素格式转换的上下文

        frameCount++;

        //从缓冲中获取上下文  ,参数中原来的格式转换成输出的格式

                vctx = sws_getCachedContext(vctx,  

                                                frame->width,  //帧frame的宽度

                                                frame->height, //帧frame的高度

                                                (AVPixelFormat)frame->format,  // 像素格式

                                                outWidth, //输出宽度

                                                outHeight,  //输出高度

                                                AV_PIX_FMT_RGBA,  //像素格式

                                                SWS_FAST_BILINEAR, // 用的算法、线性差值

                                                0,0,0  

                    );

      2、//进行转换,函数返回值是一个高度,0的话就是失败

        int h    =sws_scale(vctx,

                                  (const uint8_t **)frame->data,//数据源

                 frame->linesize,0,//

                                   frame->height,//原数据的高度(假设1080)

                                   data,//输出数据

                 lines);//输出宽度的大小

      3.注意删除一些定义的结构、数组

    代码说明见FFpmeg(五)重采样。

    天助自助者
  • 相关阅读:
    @JsonFormat和@DateTimeFormat 实践测试
    spring jpa CrudRepository save 新建数据没有返回id
    多线程处理pdf附件转换
    contentsize ,ios 7和 ios7之前的 有点差别,
    区别,
    裁切图片,
    transform,
    简洁代码,
    这个系统,流程,入口,业务逻辑,
    pop,pop,如果break,会pop两次,
  • 原文地址:https://www.cnblogs.com/ZeGod/p/9995269.html
Copyright © 2020-2023  润新知