一、环境介绍
FFMPEG版本: 4.2.2
测试系统:ubuntu18.04
二、示例代码/*
YUYV转QImage格式
*/
QImage YUYV422_TO_QImage(uint8_t *yuyv422,int image_width,int image_height)
{
uint8_t *out_buffer= nullptr;
AVFrame *Input_pFrame= nullptr;
AVFrame *Output_pFrame = nullptr;
struct SwsContext *img_convert_ctx=nullptr; //用于解码后的视频格式转换
/*1. 申请空间*/
Output_pFrame = av_frame_alloc(); //存放RGB数据的缓冲区
Input_pFrame = av_frame_alloc();//存放YUV数据的缓冲区
/*2.设置转码参数*/
img_convert_ctx=sws_getContext(image_width, image_height,AV_PIX_FMT_YUYV422,
image_width, image_height,AV_PIX_FMT_RGB24,
SWS_BICUBIC, nullptr, nullptr, nullptr);
/*3. 申请转码需要空间*/
//获取转码后数据需要的内存空间大小
int numBytes = avpicture_get_size(AV_PIX_FMT_RGB24,image_width,image_height);
//