米爾i.MX6UL/i.MX6ULL開發(fā)板,該開發(fā)板被米爾稱之為經(jīng)典王牌產(chǎn)品。也是是一款嵌入式linux入門級的開發(fā)板。本次測試目標(biāo)是在此開發(fā)板上進(jìn)行視頻工具ffmpeg的移植與測試開發(fā),測試ffmpeg在此開發(fā)板上進(jìn)行視頻應(yīng)用測試。
一、FFmpeg簡介
FFmpeg是一套開源的音視頻代庫,具有非常強(qiáng)大的功能包括視頻采集功能、視頻格式轉(zhuǎn)換、視頻抓圖、給視頻加水印等
FFmpeg視頻采集功能非常強(qiáng)大,不僅可以采集視頻采集卡或USB攝像頭的圖像,還可以進(jìn)行屏幕錄制,同時還支持以RTP方式將視頻流傳送給支持RTSP/RTMP 的流媒體服務(wù)器,支持直播應(yīng)用。 采用LGPL或GPL許可證。它提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案。它包含了非常先進(jìn)的音頻/視頻編解碼庫libavcodec,具有高可移植性和編解碼質(zhì)量。它幾乎實現(xiàn)了所有當(dāng)下常見的數(shù)據(jù)封裝格式、多媒體傳輸協(xié)議以及音視頻編解碼器。
很多Linux桌面環(huán)境中的開源播放器VLC、MPlayer,Windows下的KMPlayer、暴風(fēng)影音以及Android下幾乎全部第三方播放器都是基于FFMPEG的,可見它的應(yīng)用非常廣泛,也是嵌入式系統(tǒng)中音視頻使用最多的代碼庫。
Ffmpeg工程的幾個主要目錄:
libavformat:用于各種音視頻封裝格式的生成和解析,包括獲取解碼所需信息以生成解碼上下文結(jié)構(gòu)
和讀取音視頻幀等功能;
libavcodec:用于各種類型聲音/圖像編解碼;
libavutil:包含一些公共的工具函數(shù);
libswscale:用于視頻場景比例縮放、色彩映射轉(zhuǎn)換;
libpostproc:用于后期效果處理;
ffmpeg:該項目提供的一個工具,可用于格式轉(zhuǎn)換、解碼或電視卡即時編碼等;
ffsever:一個 HTTP 多媒體即時廣播串流服務(wù)器;
ffplay:是一個簡單的播放器,使用ffmpeg 庫解析和解碼,通過SDL顯示
通過從這次在MYD-Y6ULL開發(fā)板上進(jìn)行ffmpeg的移植編譯與應(yīng)用開發(fā)測試過程看,ffmpeg在該開發(fā)板上移植非常容易,而且基本上代碼不做任何改動,能夠一次編譯通過。也說明了該開發(fā)板的c/c++的開發(fā)工具與庫支持比較完善,對這樣復(fù)雜的工程也有很好的支持。
這也大大方便了試用該方案進(jìn)行音視頻開發(fā)的可能性,能夠利用開源社區(qū)大量的音視頻應(yīng)用資源,開發(fā)出多種嵌入式的音視頻應(yīng)用。