ubuntu20.04 ffmpeg开发环境搭建

电子说

1.2w人已加入

描述

创建目录

  • 在home目录下创建
  • ffmpeg_sources:用于下载源文件
  • ffmpeg_build:存储编译后的库文件
  • bin:存储二进制文件(ffmpeg,ffplay,ffprobe,X264,X265等)
cd ~
mkdir ffmpeg_sources  ffmpeg_build bin

安装依赖

更新

sudo apt-get update

安装需要的组件

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

编译与安装

  • 如果要在多核系统中加快编译速度,可以在每个make命令(例如make -j4)中使用-j选项。建议都使用源码进行安装。
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

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

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

lib264

  • H.264视频编码器。更多信息和使用范例参考H.264 Encoding Guide.
  • 要求编译ffmpeg时配置:--enable-gpl --enable-libx264.
  • 使用源码进行编译
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

libx265

  • H.265/HEVC 视频编码器, 更多信息和使用范例参考H.265 Encoding Guide.
  • 要求编译ffmpeg时配置:--enable-gpl --enable-libx265.
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

libvpx

  • VP8/VP9视频编解码器。更多信息和使用范例参考VP9 Video Encoding Guide.
  • 要求编译ffmpeg时配置:--enable-libvpx.
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 --enable-pic && 
PATH="$HOME/bin:$PATH" make && 
make install

libfdk-aac

  • AAC音频编码器. 更多信息和使用范例参考AAC Audio Encoding Guide
  • 要求编译ffmpeg时配置:--enable-libfdk-aac (如果你已经配置了 --enable-gpl则需要加上--enable-nonfree).
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 CFLAGS=-fPIC --prefix="$HOME/ffmpeg_build"   && 
make && 
make install

libmp3lame

  • Opus音频编解码器.
  • 要求编译ffmpeg时配置:--enable-libopus.
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"  -with-pic&& 
make && 
make install

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" CFLAGS="-O3 -fPIC" ./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-pic 
--enable-shared   
--enable-nonfree && 
PATH="$HOME/bin:$PATH" make && 
make install && 
hash -r
  • 最后,重新登录系统或者在当前shell会话执行如下命令以识别新安装ffmpeg的位置:source ~/.profile现在已经完成编译和安装ffmpeg (also ffplay, ffprobe, lame, x264, & x265) 。该文档剩余章节主要讲如何更新和删除ffmepg。
  • 编译完成后,ffmpeg_build  ffmpeg_sources bin目录的大体情况。
ffmpeg_build:

开发环境

ffmpeg_sources:

开发环境

bin:

开发环境

 

  审核编辑:汤梓红


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分