问题出现在下载的ffmpeg的版本不一样,在0.4.8以前的版本中还有img_convert这个函数,新版本中用sws_getContext和sws_scale代替了。简单说明如下:

新版本的ffmpeg添加了新的接口:libswscale来处理图像缩放。

以前使用img_convert来把RGB转换成YUV12,现在使用新的接口。新接口更加标准和快速,而且里面有了MMX优化代码。换句话说,它是做缩放更好的方式。

用来缩放的基本函数是sws_scale。但一开始,必需建立一个SwsContext的概念。这将进行想要的转换,然后把它传递给 sws_scale函数。类似于在SQL中的预备阶段或者是在Python中编译的规则表达式regexp。要准备这个上下文,使用 sws_getContext函数,它需要源的宽度和高度,我们想要的宽度和高度,源的格式和想要转换成的格式,同时还有一些其它的参数和标志。然后我们像使用img_convert一样来使用sws_scale函数,唯一不同的是我们传递给的是SwsContext。

解决办法是将原有的img_convert函数改为sws_scale函数,原来的函数调用为:

img_convert((AVPicture *)pFrameRGB, PIX_FMT_BGR24, (AVPicture*)pFrame,
    pCodecCtx->pix_fmt, pCodecCtx->width, pCodecCtx->height)

修改为

struct SwsContext *pSwsCtx;

pSwsCtx = sws_getContext (pCodecCtx->width,
    pCodecCtx->height,
    pCodecCtx->pix_fmt,
    pCodecCtx->width,
    pCodecCtx->height,
    PIX_FMT_BGR24,
    SWS_BICUBIC,
    NULL, NULL, NULL);

//反转图像 ,否则生成的图像是上下调到的
   pFrame->data[0] += pFrame->linesize[0] * (pCodecCtx->height - 1);
   pFrame->linesize[0] *= -1;
   pFrame->data[1] += pFrame->linesize[1] * (pCodecCtx->height / 2 - 1);
   pFrame->linesize[1] *= -1;
   pFrame->data[2] += pFrame->linesize[2] * (pCodecCtx->height / 2 - 1);
   pFrame->linesize[2] *= -1;
  //转换图像格式,将解压出来的YUV420P的图像转换为BRG24的图像

sws_scale (pSwsCtx, pFrame->data, pFrame->linesize, 0, pCodecCtx->height, pFrameRGB->data, pFrameRGB->linesize);

转载于:https://www.cnblogs.com/mmix2009/p/3585505.html

FFmpeg编译出错_img_convert 找不到相关推荐

  1. 3个平台下的ffmpeg——ffmpeg编译

    3个平台下的ffmpeg--ffmpeg编译 ffmpeg编译 需要在3个平台(win\linux\arm)下使用ffmpeg的库,所以进行了ffmpeg的编译. 其中ffmpeg的编译也有许多依赖, ...

  2. ffmpeg库编译加文字_我自己的FFMpeg编译之路

    为了编译这个东西,快折腾了一个星期了.期间经历了很多痛苦的过程,今天我把整个过程,以及在这个过程的感悟写下来,以备日后查看,也希望能帮到一些像我一样的兄弟姐妹. 在这一个星期里前前后后加起来总共使用了 ...

  3. FFMpeg编译之路

    文章转自: http://www.cnblogs.com/zjoch/archive/2013/05/16/3082002.html 为了编译这个东西,快折腾了一个星期了.期间经历了很多痛苦的过程,今 ...

  4. Mac 平台 Android FFmpeg 编译与集成实践

    文章目录 FFmpeg 是什么 为什么要学 FFmpeg 开发 FFmpeg 编译 1. 编译环境准备 2. FFmpeg 环境配置 3. 完整的脚本 4. FQA 编译小结 在Android Stu ...

  5. ffmpeg编译及使用 (转载)

    ffmpeg编译及使用 1 ffmpeg介绍 ffmpeg是音视频的分离,转换,编码解码及流媒体的完全解决方案,其中最重要的就是libavcodec库.它被mplayer或者xine使用作为解码器.还 ...

  6. ffmpeg 编译Android

    环境 macOS 10.15.4    NDK 21.3.6528147   ffmpeg 4.2.3 1.执行sudo xcodebuild -license,防止编译的时候找不到一些文件报错 2. ...

  7. 解决WINCE6.0新建工程编译出错的问题

    ********************************LoongEmbedded******************************** 作者:LoongEmbedded(kandi ...

  8. ffmpeg编译(生成Windows或Win32平台dll, lib)

    ffmpeg编译(生成Windows或Win32平台dll, lib) 介绍:本文简要介绍通过cygwin环境来编译生成ffmpeg. 包括解码组件libfaad与libopencore-amrnb的 ...

  9. ubuntu下ffmpeg编译安装

    ubuntu下ffmpeg编译安装 解决库链接不上的问题 ubuntu下ffmpeg编译安装   1.ffmpeg是什么东西?相信很多人第一次接触这个东西,我先在这里做个简单的介绍. FFmpeg是一 ...

最新文章

  1. 【杂谈】万万没想到,有三还有个保密的‘朋友圈’,那里面都在弄啥!
  2. 频率计设计——电路部分
  3. 如何设置坐标原点值_氨气检测仪电化学原理及报警值如何设置
  4. HTTPS-思君如满月,日日减清辉
  5. 解读年度数据库PostgreSQL:如何巧妙地实现缓冲区管理器
  6. mysql c++ 存数组,c++读取数据文件到数组的实例
  7. char、int、long、float、double等在64位下占多少字节
  8. 全屋wifi测试软件,全屋WIFI评测
  9. IntelliJ IDEA最新版官方支持汉化
  10. 我的世界java版旁观模式_我的世界:8个被判定为bug的特性,旁观模式:这锅让我来背...
  11. 如何排版 微信公众号「代码块」之 MarkEditor
  12. iOS 开发修改app名称(display Name)后实际app名称没有变的情况
  13. 如何修改MySQL数据库密码
  14. 坎坷的微信小程序【笔记】
  15. Nginx 性能优化 Gzip 压缩配置
  16. Ubuntu设置屏幕分辨率及屏幕翻转
  17. pstack 跟踪进程栈
  18. 通过RSA实现数字签名
  19. 如何进行服务器备份操作系统,如何进行服务器备份操作系统
  20. 自考本科计算机专业英语作文,成人学位英语作文万能模板

热门文章

  1. MongoDB系列(一):简介及安装
  2. Android Studio缓存文件夹配置
  3. Android 多线程之Handler
  4. Android Handler Runnable和Thread之间的区别和联系详解
  5. android 监听手机开机
  6. android AppCompatEditText 自定义下划线颜色
  7. Sysnoise5.6安装教程
  8. 出现 HTTP 错误 500.19 错误代码 0x800700b7
  9. Python爬虫(五)
  10. Win2008 R2 IIS7.5+PHP5(FastCGI)+MySQL5环境搭建教程