qsv的像素格式转换

这篇博客介绍了如何使用ffmpeg进行GPU到CPU的像素格式转换,具体是从QSV(Intel Quick Sync Video)格式转换到NV12。通过av_hwframe_transfer_data函数,将GPU上的数据转移到CPU的AVFrame中,详细说明了AV_PIX_FMT_ALIGN_*的不同对齐方式,并指出在QSV解码后,praw_frame的格式变为AV_PIX_FMT_NV12。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

av_hwframe_transfer_data

一种方法:
AVFrame *src_frame, *dst_frame;
AVPixelFormat src_fmt, dst_fmt;

//设置源和目标帧的像素格式
src_fmt = AV_PIX_FMT_RGB24;
dst_fmt = AV_PIX_FMT_YUV420P;

//初始化源和目标帧
av_hwframe_get_buffer(src_frame, src_fmt);
av_hwframe_get_buffer(dst_frame, dst_fmt);

//转换数据
av_hwframe_transfer_data(dst_frame, src_frame, 0);

av_image_get_buffer_size(AV_PIX_FMT_NV12, 1280, 720, );
AV_PIX_FMT_ALIGN_NONE:不进行对齐;AV_PIX_FMT_ALIGN_4:每行的字节数必须是4的倍数;AV_PIX_FMT_ALIGN_8:每行的字节数必须是8的倍数;AV_PIX_FMT_ALIGN_16:每行的字节数必须是16的倍数;AV_PIX_FMT_ALIGN_32:每行的字节数必须是32的倍数。

一般情况下,使用AV_PIX_FMT_ALIGN_NONE即可,只有在特殊情况下,比如使用DSP进行图像处理时,才需要使用其他对齐方式。

av_hwframe_transfer_data(sw_pframe, praw_frame, 0);
这个函数把gpu上的praw_frame转换到cpu的sw_pframe中,那么

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

、、、、南山小雨、、、、

分享对你有帮助,打赏一下吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值