前段時間在翻看電腦裏面資料時,發現了之前作的在嵌入式硬件上面運行以ffmepg爲基礎,以嵌入式硬件解碼的多媒體播放工做,發現都快忘記完了。今日得閒整理溫習了一下ffmpeg在嵌入式上的運用,這裏給你們分享一下,順便作了一下記錄以備之後使用時參考。linux
本文(記錄)與目前網上不少關於ffmpeg的文章相比有兩個特色:程序員
1、重點不在於ffmpeg的解碼部分(這個原本是ffmpeg最大的亮點),爲何?前面說了,這是我之前工做的一個整理。何況關於ffmpeg的解碼相關文章很是多了,若是你們感興趣的話,能夠後面第五部分增長吧。windows
2、本文是不採用其餘第三方的開源多媒體框架而在嵌入式硬件上作多媒體播放項目。第三方的多媒體框架軟件隱藏了一些擴展數據的關鍵處理,不少初學者可能不清楚這些細節問題,因此當ffmepg在本身的解碼移植上沒有問題,真正在用嵌入式硬件進行解碼時會遇到這種問題。微信
本文將分篇來完成,每篇只力求把基本和重要的點講述清楚,其餘細節和不重要的就不詳細描述,具體真實應用在此基礎上展開細化應該不難實現一個基本基於ffmpeg的嵌入式播放器的需求。文章具體分篇以下:微信公衆平臺
(一) FFmpeg基本環境搭建及編譯框架
(二) FFmpeg的解封裝基本處理ui
(三) FFmpeg用於硬件設備解碼的關鍵擴展數據處理spa
(四) FFmpeg用於硬件的track mode基本控制.net
(五) 根據狀況吧。。。。。。prototype
1、虛擬機安裝
因爲是在本身家裏,不是工做環境,電腦仍是裝的windows7系統,因而開始安裝虛擬機,我平時一直都喜歡用VMWare這個虛擬機,上次買了新電腦後一直都沒有安裝,此次必須先安裝上。先是安裝了最新的VMWare Workstation 11 + Ubuntu14.04,發現跑起來巨慢無比,難道是個人電腦落伍了?沒有辦法,也不想去折騰這個事情,仍是老老實實換了一個VMWare Workstation 10.0.1 build-1379776 + Ubuntu-12.04.4-alternate-i386,最好跑起來還湊合。具體虛擬機和Ubuntu的安裝過程就不詳述了,網上文章一大堆。
2、配置並編譯
下載最新版本的ffmpeg,目前穩定版本是ffmpeg-2.6.1。進入虛擬機解壓:
配置:
而後進行make編譯,最後出現錯誤:
原來忽略了直接在windows的共享目錄中,解壓到Linux目錄中便不會出現這個問題了。固然若是咱們編譯的不是共享庫,而是靜態庫,也不會出現這個問題,由於沒有Linux的連接文件。
在Linux目錄下,編譯成功,生成咱們的動態庫:
這樣咱們生產了咱們須要的動態庫和頭文件。
你們可能糊塗了,我如今是在pc上編譯的,不能用於嵌入式設備上。這個我知道,我也沒有辦法,如今我已經沒有之前的那些ARM的編譯環境。你們若是是在實際的交叉環境下,配置ffmpeg的configure時指定交叉編譯參數,估計大概以下面的配置:
./configure --prefix=./install --disable-static --enable-shared --enable-gpl --enable-pthreads --cross-prefix=arm-none-linux-gnueabi- --enable-cross-compile --target-os=linux --extra-cflags="-mcpu=arm9 -W -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -Wall" --arch=armv4l --cpu=arm9
固然這些既是根據具體的環境修改了。這裏就很少說,本文只有在PC上來說解。
第一時間得到博客更新提醒,以及更多技術信息分享,歡迎關注我的微信公衆平臺:程序員互動聯盟(coder_online)
1.直接幫你解答ffmpeg相關疑問
2.第一時間得到業內十多個領域技術文章
3.針對文章內疑點提出問題,第一時間回覆你,幫你耐心解答
4.讓你和原創做者成爲很好的朋友,拓展本身的人脈資源
掃一掃下方二維碼或搜索微信號coder_online便可關注,咱們能夠在線交流。
轉載請註明:http://my.oschina.net/u/2336532/blog/393380