FFmpeg编译出错_img_convert 找不到
問(wèn)題出現(xiàn)在下載的ffmpeg的版本不一樣,在0.4.8以前的版本中還有img_convert這個(gè)函數(shù),新版本中用sws_getContext和sws_scale代替了。簡(jiǎn)單說(shuō)明如下:
新版本的ffmpeg添加了新的接口:libswscale來(lái)處理圖像縮放。
以前使用img_convert來(lái)把RGB轉(zhuǎn)換成YUV12,現(xiàn)在使用新的接口。新接口更加標(biāo)準(zhǔn)和快速,而且里面有了MMX優(yōu)化代碼。換句話說(shuō),它是做縮放更好的方式。
用來(lái)縮放的基本函數(shù)是sws_scale。但一開(kāi)始,必需建立一個(gè)SwsContext的概念。這將進(jìn)行想要的轉(zhuǎn)換,然后把它傳遞給 sws_scale函數(shù)。類似于在SQL中的預(yù)備階段或者是在Python中編譯的規(guī)則表達(dá)式regexp。要準(zhǔn)備這個(gè)上下文,使用 sws_getContext函數(shù),它需要源的寬度和高度,我們想要的寬度和高度,源的格式和想要轉(zhuǎn)換成的格式,同時(shí)還有一些其它的參數(shù)和標(biāo)志。然后我們像使用img_convert一樣來(lái)使用sws_scale函數(shù),唯一不同的是我們傳遞給的是SwsContext。
解決辦法是將原有的img_convert函數(shù)改為sws_scale函數(shù),原來(lái)的函數(shù)調(diào)用為:
img_convert((AVPicture *)pFrameRGB, PIX_FMT_BGR24, (AVPicture*)pFrame,
????pCodecCtx->pix_fmt, pCodecCtx->width, pCodecCtx->height)
修改為
struct SwsContext *pSwsCtx;
pSwsCtx = sws_getContext (pCodecCtx->width,
??? pCodecCtx->height,
??? pCodecCtx->pix_fmt,
??? pCodecCtx->width,
??? pCodecCtx->height,
??? PIX_FMT_BGR24,
??? SWS_BICUBIC,
??? NULL, NULL, NULL);
//反轉(zhuǎn)圖像 ,否則生成的圖像是上下調(diào)到的
???pFrame->data[0] += pFrame->linesize[0] * (pCodecCtx->height - 1);
???pFrame->linesize[0] *= -1;
???pFrame->data[1] += pFrame->linesize[1] * (pCodecCtx->height / 2 - 1);
???pFrame->linesize[1] *= -1;
???pFrame->data[2] += pFrame->linesize[2] * (pCodecCtx->height / 2 - 1);
???pFrame->linesize[2] *= -1;
? //轉(zhuǎn)換圖像格式,將解壓出來(lái)的YUV420P的圖像轉(zhuǎn)換為BRG24的圖像
sws_scale (pSwsCtx, pFrame->data, pFrame->linesize, 0, pCodecCtx->height, pFrameRGB->data, pFrameRGB->linesize);
轉(zhuǎn)載于:https://www.cnblogs.com/mmix2009/p/3585505.html
總結(jié)
以上是生活随笔為你收集整理的FFmpeg编译出错_img_convert 找不到的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数据库访问 mysql连接库--查询
- 下一篇: Android 滑动效果基础篇(四)——