Ubuntu FFmpeg环境搭建


一、简述

本文主要讲述,在ubuntu环境下,使用源码的方式进行ffmpeg开发环境进行搭建。
本编译安装方式最终生成的都为静态库。


二、环境搭建

1、创建目录

在home目录下创建三个文件夹:ffmpeg_sources、ffmpeg_build、bin。

  • ffmpeg_sources:用于下载源文件;
  • ffmpeg_build: 存储编译后的库文件;
  • bin:存储二进制文件(ffmpeg,ffplay,ffprobe,X264,X265等)。
$ cd ~
$ mkdir ffmpeg_sources ffmpeg_build bin


2、安装依赖的组件

1)更新

$ sudo apt-get update


2)安装组件

$ sudo apt-get -y install \
  autoconf \
  automake \
  build-essential \
  cmake \
  git-core \
  libass-dev \
  libfreetype6-dev \
  libsdl2-dev \
  libtool \
  libva-dev \
  libvdpau-dev \
  libvorbis-dev \
  libxcb1-dev \
  libxcb-shm0-dev \
  libxcb-xfixes0-dev \
  pkg-config \
  texinfo \
  wget \
  zlib1g-dev


3、安装常用第三库


1)NASM

部分库使用过到汇编程序。
如果你系统提供的nasm版本>=2.13,则可以直接使用命令进行安装。否则使用源码进行安装。

使用命令安装

sudo apt-get install nasm


使用源码安装

$ cd ~/ffmpeg_sources && \
wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2 && \
tar xjvf nasm-2.14.02.tar.bz2 && \
cd nasm-2.14.02 && \
./autogen.sh && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \
make && \
make install


2)Yasm

部分库使用过到该汇编库。
如果你系统提供的Yasm版本>=1.2.0,则可以直接使用命令进行安装。否则使用源码进行安装。

使用命令安装

sudo apt-get install yasm


使用源码安装

$ cd ~/ffmpeg_sources && \
wget -O yasm-1.3.0.tar.gz https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz && \
tar xzvf yasm-1.3.0.tar.gz && \
cd yasm-1.3.0 && \
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \
make && \
make install


3)libx264

H.264视频编码器。要求编译ffmpeg时配置:–enable-gpl --enable-libx264。
如果你系统提供的libx264-dev版本 ≥ 118 ,则可以直接使用命令进行安装。否则使用源码进行安装。

使用命令安装

sudo apt-get install libx264-dev


使用源码安装

$ cd ~/ffmpeg_sources && \
git -C x264 pull 2> /dev/null || git clone --depth 1 https://gitee.com/mirrors_addons/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


4)libx265

H.265/HEVC 视频编码器。要求编译ffmpeg时配置:–enable-gpl --enable-libx265。
如果你系统提供的libx265-dev版本 ≥ 68 ,则可以直接使用命令进行安装。否则使用源码进行安装。

使用命令安装

sudo apt-get install libx265-dev libnuma-dev


使用源码安装

$ sudo apt-get install mercurial libnuma-dev && \
cd ~/ffmpeg_sources && \
if cd x265 2> /dev/null; then git pull && cd ..; else git clone https://gitee.com/mirrors_videolan/x265.git; fi && \
cd x265/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


5)libvpx

VP8/VP9视频编解码器。要求编译ffmpeg时配置:–enable-libvpx。
如果你系统提供的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://github.com/webmproject/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


6)libfdk-aac

AAC音频编码器。要求编译ffmpeg时配置:–enable-libfdk-aac ( 如果你已经配置了 --enable-gpl则需要加上–enable-nonfree)。
如果你系统提供的libfdk-aac-dev 版本≥ 1.4.0 ,则可以直接使用命令进行安装。否则使用源码进行安装。

使用命令安装

sudo apt-get install libvpx-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


7)libmp3lame

MP3音频编码器。要求编译ffmpeg时配置:–enable-libmp3lame。
如果你系统提供的libmp3lame-dev版本≥ 3.98.3,则可以直接使用命令进行安装。否则使用源码进行安装。

使用命令安装

sudo apt-get install libmp3lame-dev


使用源码安装

$ cd ~/ffmpeg_sources && \
git clone  --depth 1 https://gitee.com/hqiu/lame.git && \
cd lame && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm && \
PATH="$HOME/bin:$PATH" make && \
make install


8)libopus

Opus音频编解码器。要求编译ffmpeg时配置:–enable-libopuse。
如果你系统提供的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


9)libaom

AV1 视频编解码器。要求编译ffmpeg时配置::–enable-libaom.。


使用源码安装

$ cd ~/ffmpeg_sources && \
git -C aom pull 2> /dev/null || git clone --depth 1 https://github.com/mozilla/aom.git && \
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


4、安装ffmpeg

$ cd ~/ffmpeg_sources && \
wget -O ffmpeg-4.2.1.tar.bz2 https://ffmpeg.org/releases/ffmpeg-4.2.1.tar.bz2 && \
tar xjvf ffmpeg-4.2.1.tar.bz2 && \
cd ffmpeg-4.2.1 && \
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" \
  --bindir="$HOME/bin" \
  --enable-gpl \
  --enable-libass \
  --enable-libfdk-aac \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libvorbis \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libx265 \
  --enable-nonfree && \
PATH="$HOME/bin:$PATH" make && \
make install && \
hash -r


执行如下命令以识别新安装ffmpeg的位置:

$ source ~/.profile


编译完成后,ffmpeg_build、ffmpeg_sources和bin三个文件夹中的文件如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


5、使用ffmpeg


1)查看版本
在这里插入图片描述
在这里插入图片描述


2)播放视频

$ ffplay cctv10.ts

在这里插入图片描述


版权声明:本文为locahuang原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。