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