這幾天安裝FFmpeg搞得很頭疼,直接用apt-get安裝工具安裝會比較方便,可是想要自定義編解碼器就比較麻煩了。因此編譯安裝FFmpeg倒成了一個比較靠譜的作法。git
FFmpeg版本:github
平臺: Ubantu 12.0 64位編程
sudo git clone https://github.com/FFmpeg/FFmpeg.git工具
sudo ./configure --prefix=/usr/local/ffmpeg --enable-shared --enable-nonfree --enable-gpl --enable-pthreads --disable-yasm --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-libvpx --enable-x11grab --extra-cflags=-I/usr/local/ffmpeg/include/ --extra-ldflags=-L/usr/local/ffmpeg/lib --enable-version3 --extra-version=syslin spa
--prefix=PREFIX 設置的是ffmpeg安裝目錄orm
--enable-shared 設置容許編譯共享庫server
--enable-nonfree --enable-gpl 設置對License的限制,分別爲容許使用付費代碼和gpl代碼。get
--disable-yasm 禁用匯編程序input
--enable-lib* 設置可能會用到的編解碼器源碼
--enable-x11grab 容許錄製屏幕,須要安裝libxfixes庫。
--extra-ldflags 設置動態連接庫目錄(後面還會提到)
若是設置系統沒安裝的編解碼器,上面命令就會報錯。例如,系統中沒有 libfaac,而上述命令中包含enable-libfaac,上述命令就會執行錯誤。
ERROR: libfaac not found
只要安裝libfaac就能夠解決了。執行
sudo apt-get install libfaac-dev
上述配置前,須要執行一個安裝編解碼器的操做。
sudo apt-get install libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libvpx-dev libx264-dev libxvidcore-dev libxfixes-dev
sudo make
sudo make install
安裝完成後,若是咱們直接運行ffmpeg程序,會報錯:
ffmpeg: error while loading shared libraries: libavdevice.so.55: cannot open shared object file: No such file or directory
這是由於還有一些動態連接庫沒有註冊到系統中。第4步執行註冊動態連接庫。
咱們設置了動態連接庫的目錄,須要註冊到系統中。
echo "/usr/local/ffmpeg/lib" > /etc/ld.so.conf.d/ffmpeg.conf
ldconfig -v
進入ffmpeg的安裝目錄,運行ffmpeg,能夠發現是正常的。而後經過設置鏈接設置快捷方式。
cd /usr/local/bin
ln -sf /usr/local/ffmpeg/ffmpeg
ln -sf /usr/local/ffmpeg/ffserver
ln -sf /usr/local/ffmpeg/ffprobe
這樣ffmpeg就安裝完成了。
Unknown input or output format: x11grab -- 安裝時未設置容許錄製屏幕
error while loading shared libraries: libavdevice.so.55 -- 未註冊動態連接庫
ERROR: libfaac not found -- 編解碼器不存在