确定FFMPEG AVFrame中数据[0]的大小

5 c++ ffmpeg sizeof memcpy

我对FFMPEG比较陌生,我正在尝试使用以下代码行将视频帧的AVFrame-> data [0]分配给uint8_t *缓冲区:

size_t sizeOfFrameData = mpAVFrameInput->linesize[0] * mpAVFrameInput->height;

memcpy(mFrameData, mpAVFrameInput->data[0], sizeOfFrameData);
Run Code Online (Sandbox Code Playgroud)

我想知道这是否是将帧数据复制到FFMPEG中的uint8_t *变量的正确方法吗?

谢谢

aer*_*tal 3

要获取缓冲区大小:

int avpicture_get_size(enum AVPixelFormat pix_fmt, int width, int height);
Run Code Online (Sandbox Code Playgroud)

复制像素数据:

int avpicture_layout(const AVPicture *src, enum AVPixelFormat pix_fmt,
                     int width, int height,
                     unsigned char *dest, int dest_size);
Run Code Online (Sandbox Code Playgroud)