ffmpeg的ubuntu的編譯過程(編譯靜態庫和動態庫)
第一步源碼下載
通過git下載
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
或者直接下載
wget http://ffmpeg.org/releases/ffmpeg-3.3.tar.bz2
如果是下載的ffmpeg-3.3.tar.bz2 需要進行解壓
tar -jxvf ffmpeg-3.3.tar.bz2
如果國外網站訪問速度慢,也可以到www.ffmpeg.club 中下載,可以在windows中下載後再復制到linux中。
第二步安裝編譯依賴環境
sudo apt-get update
sudo apt-get -y install autoconf automake build-essential \
libass-dev libfreetype6-dev libsdl2-dev libtheora-dev \
libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev \
libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev
sudo apt-get install yasm
第三步安裝可選依賴庫
X264安裝
sudo apt-get install libx264-dev
如果選擇編譯要添加
--enable-gpl --enable-libx264
如果安裝失敗可以選擇源碼安裝
wget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2tar xjvf last_x264.tar.bz2cd x264-snapshot*PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --disable-openclPATH="$HOME/bin:$PATH" makemake install
AAC
sudo apt-get install libfdk-aac-dev
如果選擇編譯添加 --enable-libfdk-aac
如果加了 --enable-gpl 需要加--enable-nonfree
MP3
sudo apt-get install libmp3lame-dev
如果選擇編譯添加 --enable-libmp3lame
opus
sudo apt-get install libopus-dev
如果選擇編譯添加 --enable-libopus
VPXVP8 Video Encoding Guide
sudo apt-get install libvpx-dev
如果選擇編譯添加 --enable-libvpx
第四步編譯為靜態庫
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
--prefix="$HOME/ffmpeg_build" \
--pkg-config-flags="--static" \
--extra-cflags="-I$HOME/ffmpeg_build/include" \
--extra-ldflags="-L$HOME/ffmpeg_build/lib" \
--bindir="$HOME/bin" \
--enable-gpl \
--enable-libass \
--enable-libfdk-aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libopus \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-nonfree
PATH="$HOME/bin:$PATH" make
make install
hash -r
編譯完成就可以在ffmpeg_build中看到(生成的頭文件、靜態庫文件)
bin include lib share
ffmpeg工具還在源碼目錄下面
快速編譯為動態庫方法
下載源碼後之直接進入源碼目錄
./configure --enable-shared --prefix=/usr/local/ffmpeg
make
make install
其中--enable-shared表示編譯為動態庫,--prefix表示安裝的路徑
編譯完成後就可以看到/usr/local/ffmpeg目錄中有頭文件和動態鏈接庫文件。如果為了項目編譯運行方便,可以直接把動態鏈接庫復制到 /usr/lib目錄下,這樣運行就不用指定庫路徑了。
編譯項目時候要註意,庫路徑要設置到/usr/lib 防止有老版本沖突,很多軟件安裝的時候會把ffmpeg安裝進去,比如安裝opencv也會把ffmpeg安裝進去,有可能造成版本沖突。
更多的資料也可以關註我51CTO上的視頻課程
手把手教您開發視頻播放器
http://edu.51cto.com/course/course_id-8059.html
本文出自 “夏曹俊” 博客,請務必保留此出處http://xiacaojun.blog.51cto.com/12016059/1923603
ffmpeg的ubuntu的編譯過程(編譯靜態庫和動態庫)