FFmpeg(四) 像素转换相关函数理解[通俗易懂]

FFmpeg(四) 像素转换相关函数理解[通俗易懂]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(五)重采样。

 

转载于:https://www.cnblogs.com/ZeGod/p/9995269.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107190.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 看板娘代码

    看板娘代码大部分摘自:https://www.cnblogs.com/hean/p/11167216.html需要三个文件和一个可选文件waifu.css(看板娘在页面的位置以及大小)waifu-tips.js(看板娘的语言设置)live2d.min.js(一些点击之后的动作)flat-ui.min.css(看板娘的选项PS:右面的选项,不需要可以不配置)链接:https://…

    2025年5月24日
    4
  • 搜狐视频P2P技术揭秘 – 架构篇[通俗易懂]

    搜狐视频P2P技术揭秘 – 架构篇[通俗易懂]本文介绍了搜狐视频P2P的整体架构,服务组成,业务数据等。

    2022年6月19日
    28
  • 元素守恒计算方法_元素个数怎么算

    元素守恒计算方法_元素个数怎么算给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。示例:输入:nums = [5,2,6,1]输出:[2,1,1,0] 解释:5 的右侧有 2 个更小的元素 (2 和 1)2 的右侧仅有 1 个更小的元素 (1)6 的右侧有 1 个更小的元素 (1)1 的右侧有 0 个更小的元素提示:0 <= nums.length <= 10^5-10^4

    2022年8月9日
    6
  • Modbus TCP 入门学习[通俗易懂]

    Modbus TCP 入门学习[通俗易懂]记录下我入门学习的过程,供日后回看,文字部分多是转载他人blog,有注明来源地址;实验部分为真实测试结果。1.ModBus通讯协议简介  (摘抄:来自网络)Modbus协议是一种已广泛应用于当今工业控制领域的通用通讯协议。通过此协议,控制器相互之间、或控制器经由网络(如以太网)可以和其它设备之间进行通信。Modbus协议使用的是主从通讯技术,即由主设备主动查询和操作从设备。一般将主控设备…

    2025年6月22日
    4
  • 【C#】list 去重(转载)

    【C#】list 去重(转载)一、查阅文档Enumerable.Distinct方法是常用的LINQ扩展方法,属于System.Linq的Enumerable方法,可用于去除数组、集合中的重复元素,还可以自定义去重的规则。有两个重载方法:////摘要://通过使用默认的相等比较器对值进行比较返回序列中的非重复元素。////参数://source://要从中移除重复元素的序列。.

    2022年5月25日
    71
  • 微信域名防屏蔽防封系统,轻松微信中域名网站被屏蔽被封的问题「建议收藏」

    微信域名防屏蔽防封系统,轻松微信中域名网站被屏蔽被封的问题「建议收藏」做微信营销活动,域名没被封过,那你的营销人生肯定是不完整的。如果做到微信域名防封呢?这就要借助一些工具来实现有效的防封措施了。 第一步你需要有一个微信域名检测接口,自己开发或是购买都可以。第二步配置你的程序,用三套域名A、B、C,比如说分享出去的域名是A,这里面A被称作是主域名。点开后跳到B,跳转之前检测一下B有没有被封,这里面的B就称作是落地域名。通常情况下落地域名B…

    2022年7月12日
    35

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号