1. 程式人生 > >ffmpeg的ubuntu的編譯過程(編譯靜態庫和動態庫)

ffmpeg的ubuntu的編譯過程(編譯靜態庫和動態庫)

ffmpeg

第一步源碼下載

通過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的編譯過程(編譯靜態庫和動態庫)