[問題] ffmpeg使用vaapi硬體加速
目前使用ffmpeg搭Qt QOpenGLWidget
想把decode完的frame資料輸出到QOpenGLWidget上
從AVFrame的format讀出來是AV_PIX_FMT_VAAPI_VLD
但目前卡在不知該怎麼處理vaapi的frame
以軟解yuv420p來說
AVFrame的format是AV_PIX_FMT_YUV420P
datas[0]放Y datas[1]放U datas[2]放V
此時AVFrame的data[0]~data[2]分別對應YUV
memcpy(datas[0],pFrame->data[0],m_nWidth*m_nHeight);
memcpy(datas[1],pFrame->data[1],m_nWidth*m_nHeight/4);
memcpy(datas[2],pFrame->data[2],m_nWidth*m_nHeight/4);
而這樣排列可以正常顯示畫面
但AV_PIX_FMT_VAAPI_VLD data[0]~data[2]都是0
在data[3]讀出來的是VASurfaceID
這個東西不知道該怎麼用...
我該怎麼使用這個VASurfaceID呢?
硬解的流程基本上參照
ffmpeg examples內的hw_decode.c範例
最後只差在範例是儲存成file
而我要把它render到QOpenGLWidget
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.115.235.60 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1587043180.A.1F2.html
推
04/18 18:23,
5年前
, 1F
04/18 18:23, 1F
→
04/18 18:42,
5年前
, 2F
04/18 18:42, 2F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章