FFMPEG高級編程第一篇:環境搭建及編譯

 前段時間在翻看電腦裏面資料時,發現了以前做的在嵌入式硬件上面運行以ffmepg爲基礎,以嵌入式硬件解碼的多媒體播放工作,發現都快忘記完了。今日得閒整理溫習了一下ffmpeg在嵌入式上的運用,這裏給大家分享一下,順便做了一下記錄以備以後使用時參考。

本文(記錄)與目前網上很多關於ffmpeg的文章相比有兩個特點:

一、重點不在於ffmpeg的解碼部分(這個本來是ffmpeg最大的亮點),爲什麼?前面說了,這是我以前工作的一個整理。況且關於ffmpeg的解碼相關文章非常多了,如果大家感興趣的話,可以後面第五部分增加吧。

二、本文是不採用其他第三方的開源多媒體框架而在嵌入式硬件上做多媒體播放項目。第三方的多媒體框架軟件隱藏了一些擴展數據的關鍵處理,很多初學者可能不清楚這些細節問題,所以當ffmepg在自己的解碼移植上沒有問題,真正在用嵌入式硬件進行解碼時會遇到這種問題。

      本文將分篇來完成,每篇只力求把基本和重要的點講述清楚,其他細節和不重要的就不詳細描述,具體真實應用在此基礎上展開細化應該不難實現一個基本基於ffmpeg的嵌入式播放器的需求。文章具體分篇如下:

(一)   FFmpeg基本環境搭建及編譯

(二)   FFmpeg的解封裝基本處理

(三)   FFmpeg用於硬件設備解碼的關鍵擴展數據處理

(四)   FFmpeg用於硬件的track mode基本控制

(五)   根據情況吧。。。。。。

 

一、虛擬機安裝

      由於是在自己家裏,不是工作環境,電腦還是裝的windows7系統,於是開始安裝虛擬機,我平時一直都喜歡用VMWare這個虛擬機,上次買了新電腦後一直都沒有安裝,這次必須先安裝上。先是安裝了最新的VMWare Workstation 11 + Ubuntu14.04,發現跑起來巨慢無比,難道是我的電腦落伍了?沒有辦法,也不想去折騰這個事情,還是老老實實換了一個VMWare Workstation 10.0.1 build-1379776 + Ubuntu-12.04.4-alternate-i386,最好跑起來還湊合。具體虛擬機和Ubuntu的安裝過程就不詳述了,網上文章一大堆。

二、配置並編譯

      下載最新版本的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

發佈了60 篇原創文章 · 獲贊 13 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章