- 前言
凡是用到視訊音頻的地方,都用到ffmpeg。根據用到的CODEC不同,編譯有很大差異。吾有兩個初等、中午編譯的博文,這個是全編譯博文。
全編譯有什麼好處?把庫打包之後,可以直接在别的機器上使用。
備份建議:編譯後把整個編譯目錄打包備份;使用虛拟機編譯,然後備份。
- 準備工作
apt update
apt install gcc make cmake
apt install autoconf subversion git wget g++ pkg-config
# libtool libtool libogg-devel nasm
apt install autopoint
- 下載下傳編譯libtool
- 下載下傳編譯OpenAL
- 下載下傳編譯openh264
- 下載下傳編譯x264
- 下載下傳編譯x265
- 下載下傳編譯iLBC
- 下載下傳編譯g729
- 下載下傳編譯libgsm
- 下載下傳編譯opencore-amr
- 下載下傳編譯vo-amrwbenc
- 下載下傳編譯libopus
- 下載下傳編譯libyuv
- 下載下傳編譯libvpx
- 載編譯Which
- 下載下傳編譯YASM
- (字型相關)下載下傳編譯libfreetype
- (字型相關)下載下傳編譯FriBidi
- (字型相關)下載下傳編譯libxml2
- (字型相關)下載下傳編譯gperf
- (字型相關)下載下傳編譯fontconfig
- (字型相關)下載下傳libass
- 下載下傳編譯faac
- 下載下傳編譯zlib
- 下載下傳編譯libpng
- 下載下傳編譯jpeglib
- 下載下傳編譯SDL2
- 下載下傳編譯vorbis
- 下載下傳編譯libogg
- 下載下傳編譯theora
- 下載下傳編譯libspeex/libspeexdsp
- 下載下傳編譯nasm
- 下載下傳編譯lame
- 下載下傳編譯ffmpeg
BUILD_LIBS=${HOME}/build_libs
./configure \
--prefix=${BUILD_LIBS} \
--extra-cflags="-fPIC" \
--extra-cflags="-I${BUILD_LIBS}/include" \
--extra-ldflags="-L${BUILD_LIBS}/lib" \
--bindir="${BUILD_LIBS}/bin" \
--enable-pic --enable-pthreads \
--enable-shared --disable-static \
--disable-network --enable-pthreads \
--disable-ffmpeg --disable-ffplay --disable-ffprobe \
--enable-gpl --enable-nonfree \
--enable-libx264 --enable-encoder=libx264 --enable-decoder=h264 \
--disable-debug
# ./configure --pkg-config-flags="--static" --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
# --enable-memalign-hack
# --disable-ffserver
make
make install
cp libavfilter/motion_estimation.h ${BUILD_LIBS}/include/libavfilter