合理,ffmpeg比opencv難學。版本更新太快,網上也沒有系統的教程資料,只好去大媽們的博客上學習,跑了幾圈受益匪淺。不得不說這個庫非常強大,有完整的視頻編解碼方案,解決了之前生成的視頻文件過大的問題。
因為我用的是opencv封裝的壹些算法,所以每壹幀圖像都用opencv的Mat數據結構。但是ffmpeg編碼的視頻要求輸入是YUV,那麽問題來了,我怎麽把這兩個庫數據結構連接起來呢?我找到了壹些信息。不管妳是什麽數據結構,都要從像素級處理圖像,所以妳可以從內存地址下功夫。這是我的代碼
[cpp]查看普通文本
memcpy(pYuvBuf,Img.data,bufLen*sizeof(無符號字符));
PICT-& gt;data[0]= pYuvBuf;// Y
PICT-& gt;data[1]= pYuvBuf+y _ size;// U
PICT-& gt;data[2]= pYuvBuf+y _ size * 5/4;// V
其中Img是Mat結構。