我使用ffmpeg在C++中提取視頻幀。我想在C++中獲得框架的array<unsigned char>
,但是我從此行代碼中獲得AVFrame
。將AVPicture轉換爲數組<unsigned char>
avcodec_decode_video2(codecContext, DecodedFrame, &gotPicture, Packet);
所以我用sws_scale
轉換AVFrame
到AVPicture
而且我不能接到框架array<unsigned char>
。
sws_scale(convertContext, DecodedFrame->data, DecodedFrame->linesize, 0, (codecContext)->height, convertedFrame->data, convertedFrame->linesize);
因此,誰能幫我AVFrame
或AVPicture
到array<unsigned char>
轉換?
解碼的幀通常是YUV,並且圖像以平面形式存儲在AVFrame.data [0-2]中。對於使用swscale後的RGB轉換,這將會有所不同,但仍然是AVFrame.data []中的像素數據。 AVFrame.linesize []通常與寬度不同,所以請記住。 – WLGfx