3.1 KiB
3.1 KiB
编译ffmpeg
省略下载步骤,下载内容见FFmpeg官方编译Wiki
编译需要的容器
docker run -it -d --privileged=true --name centos7 -p 2333:22 centos:7 /usr/sbin/init
docker exec -it centos7 bash
# 编译需要的环境
yum install autoconf automake bzip2 bzip2-devel freetype-devel gcc gcc-c++ git libtool make pkgconfig zlib-devel
# 解压源码
tar xzvf ffmpeg_sources.tar.gz
cd ~/ffmpeg_sources
tar xjvf nasm-2.15.05.tar.bz2
tar xzvf yasm-1.3.0.tar.gz
tar xzvf lame-3.100.tar.gz
tar xzvf opus-1.3.1.tar.gz
tar zxvf libvpx.tar.gz -m
tar zxvf ffmpeg-4.4.tar.gz
tar zxvf x264-stable.tar.gz
mv x264-stable x264
tar zxvf x265_git.tar.gz
tar zxvf fdk-aac.tar.gz
# 手动安装cmake
./cmake-3.21.3-linux-x86_64.sh --prefix=/usr/local
mv /usr/local/cmake-3.21.3-linux-x86_64 /usr/local/cmake
# 添加到环境变量并生效
echo "export PATH=\$PATH:/usr/local/cmake/bin" >> ~/.bashrc
source ~/.bashrc
# 编译nasm
cd ~/ffmpeg_sources/nasm-2.15.05
./autogen.sh
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make -j6 && make install
# 编译yasm
cd ~/ffmpeg_sources/yasm-1.3.0
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make -j6 && make install
# 编译x264
cd ~/ffmpeg_sources/x264
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
make -j6 && make install
# 编译x265
cd ~/ffmpeg_sources/x265_git/build/linux
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
make -j6 && make install
# 编译fdk-aac
cd ~/ffmpeg_sources/fdk-aac
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make -j6 && make install
# 编译lame
cd ~/ffmpeg_sources/lame-3.100
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm
make -j6 && make install
# 编译opus
cd ~/ffmpeg_sources/opus-1.3.1
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make -j6 && make install
# 编译vpx
cd ~/ffmpeg_sources/libvpx
./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm
make -j6 && make install
# 编译ffmpeg
cd ~/ffmpeg_sources/ffmpeg-4.4
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" \
--extra-libs=-lpthread \
--extra-libs=-lm \
--bindir="$HOME/bin" \
--enable-gpl \
--enable-libfdk_aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libopus \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
--enable-nonfree \
--enable-shared
make -j6 && make install
编译opencv
# wget -DCMAKE_INSTALL_PREFIX=/usr/local/
mkdir build && cd build
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DWITH_FFMPEG=ON ../
make -j6 && make install