为什么我用下面的代码想将 AV_PIX_FMT_YUYV422转为AV_PIX_FMT_NV12但是不成功,sws_scale的返回值为603,但是我的原始宽高是1920*1080
void Widget::frameToRgbImage(AVFrame* pDest, AVFrame* frame)
{
// 创建SWS上下文
qDebug() << "frameToRgbImage 0.1 ";
if (m_pSwsContext == nullptr)
{
m_pSwsContext = sws_getContext(frame->width, frame->height, AV_PIX_FMT_YUYV422,\
frame->width, frame->height, AV_PIX_FMT_NV12, \
SWS_BICUBIC, nullptr, nullptr, nullptr); //AV_PIX_FMT_NV12
}
qDebug() << "frameToRgbImage 0.2 ";
//avpicture_fill( )
int ret = sws_scale(m_pSwsContext, (const uint8_t* const*)frame->data, frame->linesize, 0, frame->height, \
pDest->data, pDest->linesize);
qDebug() << "frameToRgbImage ret: " << ret;
qDebug() << "frameToRgbImage 0.3 ";
// av_freep(&pDest->data);
// sws_freeContext(m_pSwsContext);
}
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。