https://blog.youkuaiyun.com/asahinokawa/article/details/80596655 YUV存储格式
// QImage 的构造:QImage image(rgb_buffer, 1920, 1080, QImage::Format_RGB32);
void writeRGB32BufferToYuv420P(QImage& image)
{
// image的尺寸
int imageWidth = image.width();
int imageHeight = image.height();
// 计算AV_PIX_FMT_RGB32格式化 imageWidth*imageHeight大小的image,所占内存大小,并分配缓冲区rgbBuffer保存image.bits()
int numbytes = av_image_get_buffer_size(AV_PIX_FMT_RGB32, imageWidth, imageHeight, 1);//1920*1080*4
uint8_t *rgbBuffer = (uint8_t*)av_malloc(numbytes*sizeof(uint8_t));
// 分配一帧内存,并关联到rgbBuffer,pRgbFrame->data[0]保存image.bits(),pRgbFrame->linesize[0]保存image的一行内存大小
uint8_t* rgbDataBuffer[4];
int rgbDataLinesize[4];
int ret = av_image_fill_arrays(rgbDataBuffer, rgbDataLinesize, rgbBuffer, AV_PIX_FMT_RGB32,imageWidth,imageHeight,1);
rgbDataBuffer[0]=image.bits();// 内存拷贝
qDebug