1.安装第三方库不需要所有的都安装 ,只需要安装自己用到的就好,如果后期需要其他三方库 只需要安装第三库, 在把FFmpeg从新编译安装即可 !(./configure –enable-libvpx里加上对应第三方库)
2.注意一下贴出来的‘引用部分’。
1.获取依赖关系
1.1获取编译所需的软件包
sudo apt-get update -qq && sudo apt-get -y install \
autoconf \
automake \
build-essential \
cmake \
git-core \
libass-dev \
libfreetype6-dev \
libgnutls28-dev \
libsdl2-dev \
libtool \
libva-dev \
libvdpau-dev \
libvorbis-dev \
libxcb1-dev \
libxcb-shm0-dev \
libxcb-xfixes0-dev \
meson \
ninja-build \
pkg-config \
texinfo \
wget \
yasm \
zlib1g-dev
注意:服务器用户可以省略ffplay和x11grab依赖项:libsdl2-dev libva-dev libvdpau-dev
libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev。
1.2创建一个新目录,以将所有源代码和二进制文件放入:
mkdir -p ~/ffmpeg_sources ~/bin
2.编译与安装
第三方库安装,
仔细阅读:如果不需要某些功能,则可以跳过相关部分(如果不需要),然后./configure在FFmpeg中删除相应的选项。例如,如果不需要libvpx,请跳过该部分,然后–enable-libvpx从“安装FFmpeg”部分中删除。
2.1. NASM 安装
如果您的存储库提供的nasm版本≥2.13,则可以安装该版本而不是进行编译:
sudo apt-get install nasm
否则,您可以编译:
cd ~/ffmpeg_sources && \
wget https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.bz2 && \
tar xjvf nasm-2.15.05.tar.bz2 && \
cd nasm-2.15.05 && \
./autogen.sh && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \
make && \
make install
2.2. libx264 H.264视频编码器安装
如果您的存储库提供的libx264-dev版本≥118,则可以安装该版本而不是进行编译:
sudo apt-get install libx264-dev
否则,您可以编译:
cd ~/ffmpeg_sources && \
git -C x264 pull 2> /dev/null || git clone --depth 1 https://code.videolan.org/videolan/x264.git && \
cd x264 && \
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --enable-pic && \
PATH="$HOME/bin:$PATH" make && \
make install
2.3. libx265 H.265 / HEVC视频编码器安装
如果您的存储库提供的libx265-dev版本≥68,那么您可以安装该版本而不是进行编译:
sudo apt-get install libx265-dev libnuma-dev
警告:目前,与其他库不同,您必须获取完整的libx265存储库(因此,请删除–depth 1git
clone中的参数)。确实,它会更长一些,但是有必要允许生成x265.pc文件,这是使用构建ffmpeg所必需的–enable-libx265。没有这个,ffmpeg构建将被破坏。如果不能,或者不想获得完整的libx265存储库,请改用提供的版本apt。
否则,您可以编译:
sudo apt-get install libnuma-dev && \
cd ~/ffmpeg_sources && \
git -C x265_git pull 2> /dev/null || git clone https://bitbucket.org/multicoreware/x265_git && \
cd x265_git/build/linux && \
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off ../../source && \
PATH="$HOME/bin:$PATH" make && \
make install
2.4. libvpx VP8 / VP9视频编码器/解码器安装
如果您的存储库提供的libvpx-dev版本≥1.4.0,则可以安装该版本而不是进行编译:
sudo apt-get install libvpx-dev
否则,您可以编译:
cd ~/ffmpeg_sources && \
git -C libvpx pull 2> /dev/null || git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git && \
cd libvpx && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm && \
PATH="$HOME/bin:$PATH" make && \
make install
2.5. libfdk-aac AAC音频编码器安装
如果您的存储库提供了,libfdk-aac-dev那么您可以安装它而不是编译它:
sudo apt-get install libfdk-aac-dev
否则,您可以编译:
cd ~/ffmpeg_sources && \
git -C fdk-aac pull 2> /dev/null || git clone --depth 1 https://github.com/mstorsjo/fdk-aac && \
cd fdk-aac && \
autoreconf -fiv && \
./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
make && \
make install
2.6. libmp3lame MP3音频编码器安装
如果您的存储库提供的libmp3lame-dev版本≥3.98.3,则可以安装该版本而不是进行编译:
sudo apt-get install libmp3lame-dev
否则,您可以编译:
cd ~/ffmpeg_sources && \
wget -O lame-3.100.tar.gz https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz && \
tar xzvf lame-3.100.tar.gz && \
cd lame-3.100 && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm && \
PATH="$HOME/bin:$PATH" make && \
make install
2.7 libopus Opus音频解码器和编码器安装
如果您的存储库提供的libopus-dev版本≥1.1,则可以安装该版本而不是进行编译:
sudo apt-get install libopus-dev
否则,您可以编译:
cd ~/ffmpeg_sources && \
git -C opus pull 2> /dev/null || git clone --depth 1 https://github.com/xiph/opus.git && \
cd opus && \
./autogen.sh && \
./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
make && \
make install
2.8.libaom AV1视频编码器/解码器安装
cd ~/ffmpeg_sources && \
git -C aom pull 2> /dev/null || git clone --depth 1 https://aomedia.googlesource.com/aom && \
mkdir -p aom_build && \
cd aom_build && \
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off -DENABLE_NASM=on ../aom && \
PATH="$HOME/bin:$PATH" make && \
make install
2.9. libsvtav1 AV1视频编码器/解码器安装
cd ~/ffmpeg_sources && \
git -C SVT-AV1 pull 2> /dev/null || git clone https://gitlab.com/AOMediaCodec/SVT-AV1.git && \
mkdir -p SVT-AV1/build && \
cd SVT-AV1/build && \
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DCMAKE_BUILD_TYPE=Release -DBUILD_DEC=OFF -DBUILD_SHARED_LIBS=OFF .. && \
PATH="$HOME/bin:$PATH" make && \
make install
2.10. libdav1d AV1解码器安装,要比libaom提供的解码器快得多。
如果您的存储库提供libdav1d-dev,则可以安装它而不是进行编译:
sudo apt-get install libdav1d-dev
否则,您将需要从源代码构建。发行版本未提供足够新版本meson(0.49.0或更高版本)的用户将需要安装最新版本。通过Python Package Index可以很容易地做到这一点:
sudo apt-get install python3-pip && \
pip3 install --user meson
AVX-512支持需要NASM 2.14版或更高版本。有关如何安装/构建的信息,请参见NASM部分。或者,使用禁用Meson设置中的AVX-512 -Denable_avx512=false。
cd ~/ffmpeg_sources && \
git -C dav1d pull 2> /dev/null || git clone --depth 1 https://code.videolan.org/videolan/dav1d.git && \
mkdir -p dav1d/build && \
cd dav1d/build && \
meson setup -Denable_tools=false -Denable_tests=false --default-library=static .. --prefix "$HOME/ffmpeg_build" --libdir="$HOME/ffmpeg_build/lib" && \
ninja && \
ninja install
2.11. libvmaf 图书馆计算VMAF视频质量度量。需要使用进行配置
cd ~/ffmpeg_sources && \
wget https://github.com/Netflix/vmaf/archive/v2.1.1.tar.gz && \
tar xvf v2.1.1.tar.gz && \
mkdir -p vmaf-2.1.1/libvmaf/build &&\
cd vmaf-2.1.1/libvmaf/build && \
meson setup -Denable_tests=false -Denable_docs=false --buildtype=release --default-library=static .. --prefix "$HOME/ffmpeg_build" --bindir="$HOME/bin" --libdir="$HOME/ffmpeg_build/lib" && \
ninja && \
ninja install
最后安装编译FFmpeg
仔细阅读:如果不需要某些功能或者未编译安装第三方某些第三方的库,则可以跳过相关部分(如果不需要),然后./configure在FFmpeg中删除相应的选项。例如,如果不需要libvpx,请跳过该部分,然后–enable-libvpx从“安装FFmpeg”部分中删除
cd ~/ffmpeg_sources && \
wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \
tar xjvf ffmpeg-snapshot.tar.bz2 && \
cd ffmpeg && \
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 -lm" \
--ld="g++" \
--bindir="$HOME/bin" \
--enable-gpl \
--enable-gnutls \
--enable-libaom \
--enable-libass \
--enable-libfdk-aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libopus \
--enable-libsvtav1 \
--enable-libdav1d \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
--enable-nonfree && \
PATH="$HOME/bin:$PATH" make && \
make install && \
hash -r
现在,为当前的shell会话重新登录或运行以下命令,以识别新ffmpeg位置:
source ~/.profile
3.安装完成
文档不修改路径的情况下 。安装路径在:
/root/bin
4.使用命令 :
后面补充
1.转载地址:文档