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