音视频处理 ffmpeg下载、编译和安装

创建文件夹

  • ffmpeg_sources  存放源文件
  • ffmpeg_build       构建文件并安装库
  • bin                       存放二进制可执行文件

安装依赖环境  整体安装

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
  • 如果在安装上述文件时,有些包没有成功安装,可以单独指定命令进行安装
  • sudo apt-get install xx

安装依赖环境  单独安装

NASM

  • 注意版本要 ≥ 2.13。本文安装版本是 2.15.05
  • 安装方式
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

libx264

  • H.264 视频编码器。版本要 ≥ 118
  • 需要 ffmpeg 编译选项配置 --enable-gpl 和 --enable-libx264
  • sudo apt-get install libx264-dev

libx265

  • H.265/HEVC 视频编码器。版本 ≥ 68
  • 需要 ffmpeg 编译选项配置 --enable-gpl 和 --enable-libx265
  • sudo apt-get install libx265-dev libnuma-dev

libvpx

  • VP8/VP9 视频编码、解码器。版本 ≥ 1.4.0
  • 需要 ffmpeg 编译选项配置 --enable-libvpx
  • sudo apt-get install libvpx-dev

libfdk-aac

  • AAC 音频编码器
  • 需要 ffmpeg 编译选项配置 --enable-libfdk-aac
  • 如果配置包含了 --enable-gpl 需要同时添加 --enable-nonfree
  • sudo apt-get install libfdk-aac-dev

libmp3lame

  • mp3 音频编码器。版本 ≥ 3.98.3
  • 需要 ffmpeg 编译选项配置 --enable-libmp3lame
  • sudo apt-get install libmp3lame-dev

libopus

  • Opus音频解码器和编码器。版本 ≥ 1.1
  • 需要 ffmpeg 编译选项配置 --enable-libopus
  • sudo apt-get install libopus-dev

libunistring-dev

  • sudo apt-get install libunistring-dev

libdav1d

  • AV1 解码器,比libaom 快得多
  • 需要 ffmpeg 编译选项配置 --enable-libdav1d
  • 通过 Python 包索引完成
  • 要求0.49.0版本以上
  • sudo apt-get install python3-pip
  • sudo pip3 install --user meson
  • 问题:meson_options.txt:1:0: ERROR: Unknown type feature.错误是由于meson版本不匹配导致的
  • 解决办法:1,卸载apt 安装的meson;2,pip3 install --user meson;3,修改path路径使得pip安装的meson优先于系统meson被搜索到  export PATH=~/.local/bin:$PATH
  • 检测:分别在普通用户和root用户下使用命令 meson -v 检测版本,验证是否一致
  • 上述操作无误之后,继续执行
git clone --depth=1 https://code.videolan.org/videolan/dav1d.git && \
cd dav1d && \
mkdir build && cd build && \
meson --bindir="/usr/local/bin" .. && \
ninja && \
ninja install

libsvtav1

  • AV1 视频解码器和编码器。FFmpeg 只支持编码器,因此编译不支持解码器
  • 需要 ffmpeg 编译选项配置 --enable-libsvtav1
git clone --depth=1 https://github.com/OpenVisualCloud/SVT-AV1
cd SVT-AV1
cd Build
cmake .. -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release
make -j $(nproc)
sudo make install

编译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-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

结果验证 

参考链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值