FFmpeg AVFrame转yuv420的完整代码
时间: 2023-03-27 22:02:40 浏览: 386
ffmpeg编程读取摄像头信息,保存为裸yuv420p、yuyv422视频流
4星 · 用户满意度95%
以下是FFmpeg AVFrame转yuv420的完整代码:
```
// 初始化AVFrame
AVFrame* frame = av_frame_alloc();
frame->format = AV_PIX_FMT_YUV420P;
frame->width = width;
frame->height = height;
// 分配AVFrame的数据空间
int ret = av_frame_get_buffer(frame, 32);
if (ret < ) {
// 错误处理
}
// 将AVFrame转换为YUV420格式
struct SwsContext* sws_ctx = sws_getContext(
width, height, AV_PIX_FMT_RGB24,
width, height, AV_PIX_FMT_YUV420P,
SWS_BILINEAR, NULL, NULL, NULL);
if (!sws_ctx) {
// 错误处理
}
uint8_t* in_data[1] = { rgb_data };
int in_linesize[1] = { 3 * width };
ret = sws_scale(sws_ctx, in_data, in_linesize, , height, frame->data, frame->linesize);
if (ret < ) {
// 错误处理
}
// 释放SwsContext
sws_freeContext(sws_ctx);
```
阅读全文