歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 在 Mac OS X 環境中從源代碼編譯安裝 FFmpeg

在 Mac OS X 環境中從源代碼編譯安裝 FFmpeg

日期:2017/2/28 13:56:06   编辑:Linux教程

最近因為一個項目要求,需要開發實時視頻編解碼功能,准備采用 FFmpeg 以 x264 方式進行實時的視頻編解碼。Windows 以及 Linux 環境下的 FFmpeg 動態庫、頭文件等資源都非常容易獲得,編譯環境也容易構建,但 Mac OS X 下的開發編譯環境就不那麼容易了。因為 FFmpeg 默認沒有提供 Mac OS X 下的已經編譯好的動態鏈接庫(甚至連靜態庫都沒有提供),而網上找到的多是編譯好的單獨的 FFmpeg 可執行程序,滿足不了開發過程中對 FFmpeg 動態庫(或靜態庫)的編譯連接要求,因此考慮自己動手從源代碼編譯安裝 FFmpeg,以獲得 Mac OS X 下的 FFmpeg 動態鏈接庫(以及靜態庫)版本,並構建好開發編譯環境。

首先要確保 Mac OS X 下已經具備編譯開發環境,一般都是安裝 XCode 以及對應的 Command line tools。

然後,從 FFmpeg 官方網站下載 FFmpeg 最新版本的源代碼,可直接下載打包好的源代碼壓縮文件,也可以通過 git 獲取完整源代碼鏡像,推薦用 git,命令如下:

git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg

這時不要急著馬上開始進行編譯配置!因為首先要明白一點,FFmpeg 是一個編解碼框架,能夠支持各種不同的編解碼器,並采用統一的 api 去調用。但其默認只提供了針對各種媒體格式的解碼器(基本上涵蓋得比較全了),而編碼器默認提供很少的幾個開源的格式(或者已經無需專利保護的格式)。所以,如果你需要 FFmpeg 具備支持多種媒體格式的編碼能力,你需要額外下載並安裝那些編碼器(主要是通過安裝這些編碼器獲得它們的頭文件、動態庫及靜態庫用於 FFmpeg 編譯),才能保證在 FFmpeg 編譯時載入這些編碼器的二進制代碼,使 FFmpeg 具備這些編碼功能。經過對比分析,就我這個項目需求而言,基本上編碼器需要先額外下載並安裝這幾個:x264、fdk-aac、libvpx、libvorbis、LAME(mp3)就足夠了。

接著,分別下載 x264、fdk-aac、libvpx、libvorbis、LAME 的源代碼,然後分別編譯安裝。注意在執行各自的 configure 創建編譯配置文件時,最好都強制帶上 --enable-static 和 --enable-shared 參數以確保生成靜態庫和動態庫。另外因為是在 Mac OS X 環境下編譯,因此在各自編譯完後,都要執行 sudo make install,安裝到默認的 /usr/local 目錄下相應位置(Mac OS X 下不推薦 /usr),因此不要在 configure 時指定 --prefix,就用默認的 /usr/local 目錄前綴即可。

在安裝完上述編碼器後,就可以開始編譯安裝 FFmpeg 了。進入 FFmpeg 的源代碼目錄,執行以下命令:

./configure --prefix=/usr/local --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libmp3lame --enable-libvorbis --enable-libvpx --enable-libx264 --enable-static --enable-shared

make

sudo make install

即可完成編譯安裝,FFmpeg 的頭文件將會復制到 /usr/local/include 下面相應位置,靜態庫及動態庫會被復制到 /usr/local/lib 目錄下,FFmpeg 的可執行程序(ffmpeg、ffprobe、ffserver)會被復制到 /usr/local/bin 目錄下,這樣 FFmpeg 的開發環境就構建好了。補充說明一點,因為默認情況下 Mac OS X 沒有 SDL,所以 FFmpeg 編譯時檢測不到 SDL 支持,就不會編譯 ffplay 這個可執行程序了。

Linux下編譯FFmpeg之下載源文件並編譯 http://www.linuxidc.com/Linux/2012-02/54565.htm

Linux 編譯升級 FFmpeg 步驟 http://www.linuxidc.com/Linux/2013-08/88190.htm

CentOS 5.6 上安裝 FFMPEG http://www.linuxidc.com/Linux/2011-09/42793.htm

在Ubuntu下安裝FFmpeg http://www.linuxidc.com/Linux/2012-12/75408.htm

Ubuntu 12.04下編譯ffmpeg http://www.linuxidc.com/Linux/2013-02/78857.htm

Ubuntu 14.04下PPA安裝FFmpeg 2.2.2 http://www.linuxidc.com/Linux/2014-05/101322.htm

FFmpeg 的詳細介紹:請點這裡
FFmpeg 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved