函数介绍

SwsContext

格式转换的上下文,下面是

初始化函数

struct SwsContext *sws_getContext(int srcW, int srcH, enum AVPixelFormat srcFormat,int dstW, int dstH, enum AVPixelFormat dstFormat,int flags, SwsFilter *srcFilter,SwsFilter *dstFilter, const double *param);
struct SwsContext *sws_getCachedContext(struct SwsContext *context,int srcW, int srcH, enum AVPixelFormat srcFormat,int dstW, int dstH, enum AVPixelFormat dstFormat,int flags, SwsFilter *srcFilter,SwsFilter *dstFilter, const double *param);

注意

1、区别:第二个会到缓冲区里面去寻找第一个参数传入的SwsContext,若后面的格式参数都一样就返回,不一样则会重新创建,当然如果传入NULL,则和第一个一样重新创建一个新的。建议在单线程单视频解码用第二个,多视频播放用第一个。而且2个函数都会有较大开销,最好只初始化一次。

2、SwsContext 初始化会有一点时间开销。会创建像素格式转化的表。

3、在指定outWidth 时候又一些坑需要注意,参考:SwsContext、sws_scale缩放失败,或者缩放后视频乱码

参数:

flag: 缩放的算法,一般选1 性能高,快速线性插值

srcFilter 过滤器

dstFilter过滤器

param 和flag使用算法相关。传入空,使用默认。

清理函数

void sws_freeContext(struct SwsContext *swsContext);

note:这里是 不是指针的指针,这里可能清理空间,引用计数没有清零,清理的时候注意。

缩放函数sws_scale

int sws_scale(struct SwsContext *c, const uint8_t *const srcSlice[],const int srcStride[], int srcSliceY, int srcSliceH,uint8_t *const dst[], const int dstStride[]);

srcSlice 对应具体数据的数组,二维数组,如果是平面存储的则有3个一维数组,如果是rgba交错的,则一个

srcStride 一行的数据大小,srcSlice 可能有三个

srcSliceY 深度,这里用不到

srcSliceH 图像高度

dst[]存储的空间,

dstStride存储的一行的大小

ffmpeg 视频像素尺寸转换SwsContext、sws_scale 函数解释相关推荐

  1. FFmpeg视频像素格式转换和尺寸转换

    优缺点 相比openGL shader转换来说,ffmpeg转换相对简单,但是效率相对较低 函数 1> sws_getContext:获取上下文 2> sws_getCachedConte ...

  2. php可以控制视频的尺寸吗吗,控制视频像素尺寸这样做

    revit渲染的尺寸如何精准的控制呢?大家是否有过这样的疑问呢,如果有,小编今天带着你一并解决.有一个操作是可以拖动视图大小切可调整视图大小,但并不能达到精准的控制的目的,在视频合成的时候如果两个视频 ...

  3. ubuntu下 ffmpeg视频编码和转换命令

    ffmpeg -i Forrest_Gump_IMAX.mp4 hugefile.yuv    ffmpeg  -s 640x352 -i hugefile640\ x\ 352.yuv out.av ...

  4. FFmpeg视频解码器

    本博客是摘自雷霄骅大神的课程<基于 FFmpeg + SDL 的视频播放器的制作>课程 里的内容,非常适合音视频小白入门,在这里感谢雷神的指导! 目录 视频解码知识 VC下FFmpeg开发 ...

  5. 【FFmpeg_SDL_MFC】1、FFMPEG视频解码器

    使用ffmpeg对封装格式mp4.ts等数据进行解码,介绍解码相关流程,函数接口.数据接口等. 一.前言 1.1目录 • 视频解码知识 • VC下FFmpeg开发环境的搭建 • 示例程序运行 • FF ...

  6. FFmpeg学习之视频像素和尺寸转换

    1. 获取像素格式转换的上下文 sws_getCachedContext 2. 像素转换 sws_scale #include <iostream> #include <thread ...

  7. 【专题3:电子工程师 之 上位机】 之 【44.使用ffmpeg对视频解码、视频像素和尺寸转换、重采样】

    嵌入式工程师成长之路 系列文章 总目录 希望本是无所谓有,无所谓无的,这正如脚下的路,其实地上本没有路,走的人多了,也便成了路 原创不易,文章会持续更新 文章会同步到作者个人公众号上,感谢扫码关注 所 ...

  8. 解码(五):sws_getContext和sws_scale像素格式和尺寸转换函数详解

    视频像素格式和尺寸转换 sws_getContext(像素格式转换上下文),提供了两个函数 sws_getContext像素格式上下文初始化代码演示 如下代码: //表示是视频if (cc == vc ...

  9. FFmpeg 像素格式转换和尺寸转换

    Demo FFmpeg 可以实现像素格式转换和尺寸转换,但是性能开销非常大,对视频帧率影响比较大,实际开发中最好用 Shader来实现,FFmpeg的优势转换接口比较简单. 像素格式转换上下文 Sws ...

最新文章

  1. 《数学之美》第12章 有限状态机—地图与本地搜索的核心技术
  2. 用Windows Live Writer在51CTO写博客(2018年2月24日更新)
  3. 适合NetScaler AG部署的 WI 定制站点开发
  4. 数据分析常用功能:巧用门户制作功能,让多个报表一览无余
  5. 高并发用redis还是mysql_高并发架构系列:Redis缓存和MySQL数据一致性方案详解
  6. C# LDAP认证登录类参考
  7. Nodejs 安装 on centos7
  8. 如何进行手机web远程调试——chrome beta
  9. Spring Boot 2 Webflux的全局异常处理
  10. LaTeX报告用模板
  11. 结对-动漫网页设计-需求分析
  12. (数字ic验证)从零开始的apb_watchdog验证模块搭建(二、apb直接发送激励与寄存器模型加入)
  13. ROS常用局部路径规划算法比较
  14. 开发Python用什么工具好?
  15. python实现四则运算_四则运算 Python实现(杨浩政,张兆敏)
  16. 多点触摸:MultiPointTouchArea
  17. 07.保护模式下字符显示
  18. https协议能否让网站,优先被百度收录,个人观点
  19. 在非洲运营互联网系统-自建短信猫踩的坑
  20. 过山洞java_山洞历险Java源代码JAVA游戏源码下载

热门文章

  1. 鹿死虎口,Oracle收购SUN
  2. JS 全局属性 Infinity
  3. Android OMX
  4. Sequence2Sequence 对联机器人
  5. 金融信创扛大旗|优炫软件联合发起成立金融信创协同汇
  6. Linux 必学的 100+ 常用命令,你都会用吗?
  7. ChromeRecorderpuppeteer
  8. 华硕ASUS PRIME Z790-P D4主板单烤FPU蓝屏
  9. mysql 进阶_mysql进阶 - 随笔分类 - 云潇洒 - 博客园
  10. CentOS7出现 Detected CPU family 6 model 165 stepping 3