ubuntu16.04 FFmpeg4.2开发环境搭建笔记

配置环境 ubuntu desktop 16.04 + ffmpeg 4.2

1创建目录

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

cd ~
mkdir ffmpeg_sources ffmpeg_build bin

2安装依赖

更新
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

3编译与安装

如果不需要某些功能,则可以跳过相关小节(如果不需要),然后在FFmpeg中删除相应的./configure
选项。例如,如果不需要libvpx,请跳过该小节,然后从“ 安装FFmpeg”部分中删除–enable-libvpx。
提示:如果要在多核系统中加快编译速度,可以在每个make命令(例如make -j4)中使用-j选项。
建议都使用源码进行安装。

3.1 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
./configure --prefix=“$HOME/ffmpeg_build” --bindir=“$HOME/bin”
make -j4
make install

3.2 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 CFLAGS=“-fPIC” CPPFLAGS=“-fPIC” --prefix=“$HOME/ffmpeg_build” --bindir=“$HOME/bin”
make
make install

3.3 libx264

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

cd ~/ffmpeg_sources
git clone --depth 1 https://github.com/mirror/x264.git
cd x264
PKG_CONFIG_PATH=“$HOME/ffmpeg_build/lib/pkgconfig” ./configure --prefix=“$HOME/ffmpeg_build” --bindir=“$HOME/bin” --enable-static --enable-shared --enable-pic
make
make install

3.4 libx265

H.265/HEVC 视频编码器, 更多信息和使用范例参考H.265 Encoding Guide。
要求编译ffmpeg时配置:–enable-gpl --enable-libx265.
使用源码进行编译:

cd ~/ffmpeg_sources
git clone https://gitee.com/mirrors_videolan/x265.git
cd x265/build/linux
cmake -G “Unix Makefiles” -DCMAKE_INSTALL_PREFIX=“$HOME/ffmpeg_build” -DENABLE_SHARED=on -DENABLE_PIC=on -DBIN_INSTALL_DIR=“$HOME/bin” …/…/source
make
make install

3.5 libvpx

VP8/VP9视频编解码器。 更多信息和使用范例参考VP9 Video Encoding Guide 。
要求编译ffmpeg时配置: --enable-libvpx
使用源码进行编译:

cd ~/ffmpeg_sources
git clone --depth 1 https://github.com/webmproject/libvpx.git
cd libvpx
./configure --prefix=“$HOME/ffmpeg_build” --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm --enable-pic --enable-shared
make
make install

3.6 libfdk-aac

AAC音频编码器. 更多信息和使用范例参考AAC Audio Encoding Guide。
要求编译ffmpeg时配置:–enable-libfdk-aac ( 如果你已经配置了 --enable-gpl则需要加上–enable-nonfree).
使用源码进行编译:

cd ~/ffmpeg_sources
git clone --depth 1 https://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
autoreconf -fiv
./configure CFLAGS=“-fPIC” CPPFLAGS=“-fPIC” --prefix=“$HOME/ffmpeg_build” --bindir=“$HOME/bin”
make
make install

3.7 libmp3lame

MP3音频编码器.
要求编译ffmpeg时配置:–enable-libmp3lame.
使用源码进行编译:

cd ~/ffmpeg_sources
git clone --depth 1 https://gitee.com/hqiu/lame.git
cd lame
./configure --prefix=“$HOME/ffmpeg_build” --bindir=“$HOME/bin” --enable-nasm --with-pic
make
make install

3.8 libopus

Opus音频编解码器.
要求编译ffmpeg时配置:–enable-libopus.
使用源码进行编译:

cd ~/ffmpeg_sources
git clone --depth 1 https://github.com/xiph/opus.git
cd opus
./autogen.sh
./configure --prefix=“$HOME/ffmpeg_build” -with-pic
make
make install

4FFmpeg

4.1编译安装

注意注意:如果要安装debug版本,请参考文章末尾 《支持FFmpeg 代码 Debug》配置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) 。
编译完成后,ffmpeg_build ffmpeg_sources bin目录的大体情况
~/ffmpeg_build: include lib share
~/ffmpeg_sources:fdk-aac lame-3.100.tar.gz opus yasm-1.3.0.tar.gz
ffmpeg-4.2.1 libvpx x264
ffmpeg-4.2.1.tar.bz2 nasm-2.14.02 x265
lame nasm-2.14.02.tar.bz2 yasm-1.3.0
~/bin:ffmpeg ffplay ffprobe lame nasm ndisasm vsyasm x264 yasm ytasm

4.2测试ffmpeg命令

终端输入
ffmpeg -version
正常显示ffmpeg版本信息,以及编译配置信息。

如果报以下错误(找不到so库)
在这里插入图片描述
需要将ffmpeg lib加入到环境变量。步骤如下所述:
编辑和修改/etc/ld.so.conf
在这里插入图片描述
使环境变量生效
sudo ldconfig
sudo vim /etc/profile
然后加上
export PATH=$PATH:/home/yuan/bin
记得
source /etc/profile
使得环境变量生效

4.3测试ffplay是否可以使用

(需要在Ubuntu图形方式进行测试,不能在类似xshell终端测试)
ffplay http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4
部署成功视频截图

5支持FFmpeg 代码 Debug

刚才的工程可以运行,但不能debug。解决此问题,首先认定一点,生成的可执行程序中,ffmpeg 不包
含调试信息,调试信息在 ffmpeg_g 中,debug 要选择 ffmpeg_g。
另外,./config选项也是确定包含调试信息的核心,需要在config中添加:
-–enable-debug=3:开启debug调试
-–disable-asm:禁用 asm 优化
–disable-optimizations:禁用优化,以便调试时按函数顺序执行。
–-disable-stripping:禁用剥离可执行程序和共享库,即调试时可以进入到某个函数进行单独调
试。
采用以下命令重新config:
先clean
再重新config
make clean
./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
–enable-debug=3
–disable-optimizations
–disable-asm
–disable-stripping &&
PATH=“$HOME/bin:$PATH” make &&
make install &&
hash -r

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值