ubuntu ffmpeg开发环境搭建

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 选项。 建议都使用源码进行安装。
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
libx264
        H.264视频编码器。更多信息和使用范例参考 H.264 Encoding Guide
        要求编译ffmpeg 时配置: --enable-gpl --enable-libx264.
        使用源码进行编译:
cd ~/ffmpeg_sources 

git -C x264 pull 2> /dev/null || git clone --depth1 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
        MP3音频编码器 .
        要求编译ffmpeg 时配置: --enable-libmp3lame.
        使用源码进行编译:
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" --enable-nasm --with-pic

PATH="$HOME/bin:$PATH" make

make install

libopus 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
        注意注意:如果要安装debug 版本,请参考第 6 章节 《 6 支持 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) 。该文档剩余章节主要讲如 何更新和删除ffmepg。
        最后使用ffmpeg -verson查看当前支持的库;
        如果出现:ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory。
        这是没有将库lib导入环境变量,解决方法:
//打开
    sudo vi /etc/ld.so.conf
//添加
    /home/tanziliang/ffmpeg_build/lib(ffmpeg中lib的位置,参考文章是将库放在ffmpeg_build下)
//最后启动配置
    sudo ldconfig

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值