FFmpeg YUV2RGB
AVFrame* YUV2RGB( AVCodecContext * avctx, AVFrame * frame )
{
AVFrame* pFrameRGB=NULL;
pFrameRGB=avcodec_alloc_frame(); if(pFrameRGB==NULL)
return NULL;
// Determine required buffer size and allocate buffer int numBytes=avpicture_get_size(PIX_FMT_BGR24, avctx->width,avctx->height); uint8_t * buffer=(uint8_t *)av_malloc(numBytes*sizeof(uint8_t)); // Assign appropriate parts of buffer to image planes in pFrameRGB
// Note that pFrameRGB is an AVFrame, but AVFrame is a superset
// of AVPicture
avpicture_fill((AVPicture *)pFrameRGB, buffer, PIX_FMT_BGR24,avctx->width, avctx->height); struct SwsContext *img_convert_ctx=NULL;
img_convert_ctx=sws_getCachedContext(img_convert_ctx,avctx->width,
avctx->height, avctx->pix_fmt,avctx->width, avctx->height,
PIX_FMT_RGB24, SWS_BICUBIC,NULL, NULL, NULL);
if( !img_convert_ctx )
{
fprintf(stderr, "Cannot initialize sws conversion context\n");
} sws_scale(img_convert_ctx, (const uint8_t* const*)frame->data,
frame->linesize, 0, avctx->height, pFrameRGB->data,
pFrameRGB->linesize); return pFrameRGB;
}
pFrameRGB用完要free的
FFmpeg YUV2RGB的更多相关文章
- FFmpeg资料来源简单分析:libswscale的sws_getContext()
===================================================== FFmpeg库函数的源代码的分析文章: [骨架] FFmpeg源码结构图 - 解码 FFmp ...
- FFmpeg源代码简单分析:libswscale的sws_getContext()
===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...
- 使用FFmpeg解码并用swscale将YUV转为RGB
#include <stdio.h> #include <libavcodec/avcodec.h> #include <libavformat/avformat.h&g ...
- 图像视频编码和FFmpeg(2)-----YUV格式介绍和应用
本文不讲FFmpeg,而是讲YUV图像格式.因为摄像头拍摄出来的原始图像一般都是YUV格式.在FFmpeg中,视频是通过多张YUV图像而得到. YUV图像格式是什么,这个可以看一下维基百科.这个超链接 ...
- FFMPEG相关开源项目
1.FFmpeg build for android random architectures with example jnihttps://github.com/appunite/AndroidF ...
- FFmpeg 播放 RTSP/Webcam 流
本文将介绍 FFmpeg 如何播放 RTSP/Webcam/File 流.流程如下: RTSP/Webcam/File > FFmpeg open and decode to BGR/YUV & ...
- FFmpeg学习6:视音频同步
在上一篇文章中,视频和音频是各自独立播放的,并不同步.本文主要描述了如何以音频的播放时长为基准,将视频同步到音频上以实现视音频的同步播放的.主要有以下几个方面的内容 视音频同步的简单介绍 DTS 和 ...
- FFmpeg 中AVPacket的使用
AVPacket保存的是解码前的数据,也就是压缩后的数据.该结构本身不直接包含数据,其有一个指向数据域的指针,FFmpeg中很多的数据结构都使用这种方法来管理数据. AVPacket的使用通常离不开下 ...
- FFmpeg + SoundTouch实现音频的变调变速
本文使用FFmpeg + SoundTouch实现将音频解码后,进行变调变速处理,并将处理后的结果保存为WAV文件. 主要有以下内容: 实现一个FFmpeg的工具类,保存多媒体文件所需的解码信息 将解 ...
随机推荐
- Web开发入门知识小总结
原来是写给 http://www.zhihu.com/question/22689579 的答案,也算是学了一学期web课程后的一点小总结,搬运到博客里存一下吧~ ================== ...
- Linux性能工具
Brendan Gregg 目前是 Netflix 的高级性能架构师 ,他在那里做大规模计算机性能设计.分析和调优.他是<Systems Performance>等技术书的作者,因在系统管 ...
- Windows Azure 初体验
最近看到windows azure 在做活动,只需花一块钱就可以体验一个月的windows azure. 于是,我就注册了一个账号也尝试一把云时代,传送门. 注册很简单的,成功后可以看到这个界面. 然 ...
- Vibrator震动
今天又学一招: Android手机中的震动由Vibrator实现.设置震动事件,需要知道其震动的时间长短.震动的周期等. 在 Android Vibrator中,震动的时间以毫秒计算(1/1000秒) ...
- karma+seajs
下面的介绍以karma能正常运行为前提,看karma系列文章:http://www.cnblogs.com/laixiangran/tag/Karma/ 目录结构 步骤 安装 npm install ...
- HTTP缓存了解(一)
引言 HTTP/1.1 200 OK X-Powered-By: Express Content-Type: text/html; charset=utf-8 Content-Length: 3 ET ...
- EOJ 3265 七巧板
模拟. 先判断三边形和四边形的个数. 然后判断$5$个三角形是否都是等腰直角三角形. 然后判断$5$个等腰直角三角形比例是否符合要求. 然后寻找正方形.判断比例是否符合要求. 最后判断四边形是否符合要 ...
- linux下安装Python3.4.1
1.下载linux 版本的 Python 我是在Windows下下载的,然后共享到linux下. 2.解压文件 tar -xvf Python-3.4.1.tar x是解压 v是查看所有过程 f是使用 ...
- Hibernate 条件-分页查询
这里我们继续跟着上一次的节奏继续学习Hibernate的查询. 1.条件查询一(占位符) 按照占位符的方式进行条件查询,这里query有一个setInteger(arg1, arg2)方法,其中第一个 ...
- 什么是P问题、NP问题和NPC问题
为了迎接我的期末考试,认真的看了一下关于NP完全性理论这一章,奈何课本上说的我怎么都看不懂,所以找了个博客认真研究了一下,同样贴出来分享给大家,大牛就是大牛,把问题说的很明白,看完后受益匪浅.其中有一 ...