Ubuntu ffmpeg编译

Ubuntu ffmpeg编译

博主在编译ffmpeg中,踩了好多坑,要么少库,要么有冲突。
根据自身经历,基于Ubuntu整理了一版ffmpeg编译方法,用于x264 x265解码。
在这一过程中,也发现了aptitude这一包管理器的强大之处,能解决库与系统版本之间的冲突,进而安装想要的库。
本文主要参考以下文章,里面有更详细介绍。本文主要介绍编译流程,照着编译基本都可实现

Ubuntu20.04 编译安装 FFmpeg 详细教程
ubuntu ffmpeg6.0开发环境搭建

ffmpeg环境编译

  • ffmpeg源码

    git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg\
    
  • 安装包 apt包管理

    sudo apt update;sudo apt -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;sudo apt install libgmp3-dev;sudo apt install pkg-config;sudo apt install gnutls-bin;
    
  • 安装 aptitude包管理

    sudo apt install aptitude;sudo aptitude install yasm nasm;sudo aptitude install libaom-dev;sudo aptitude install libass-dev;sudo aptitude install libbluray-dev;sudo aptitude install libfdk-aac-dev;sudo aptitude install libmp3lame-dev;sudo aptitude install libopencore-amrnb-dev;sudo aptitude install libopencore-amrwb-dev;sudo aptitude install libopenmpt-dev;sudo aptitude install libopus-dev;sudo aptitude install libshine-dev;sudo aptitude install libsnappy-dev;sudo aptitude install libsoxr-dev;sudo aptitude install libspeex-dev;sudo aptitude install libtheora-dev;sudo aptitude install libtwolame-dev;sudo aptitude install libvo-amrwbenc-dev;sudo aptitude install llibvpx-dev;sudo aptitude install libwavpack-dev;sudo aptitude install libwebp-dev;sudo aptitude install libx264-dev;sudo aptitude install libx265-dev;sudo aptitude install libxvidcore-dev;sudo aptitude install liblzma-dev;
    
  • x264编译

    先进入ffmpeg所在路径

    sudo git clone --depth 1 https://github.com/mirror/x264.git ;cd x264 ;sudo ./configure --prefix="$HOME/FFmpeg_build" --bindir="$HOME/bin" --enable-static --enable-shared --enable-pic  --disable-opencl ;sudo make -j32 ;sudo make install -j32;
    
  • x265编译

    先进入ffmpeg所在路径

    git clone https://gitee.com/mirrors_videolan/x265.git x265;cd x265/build/linux ;sudo cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/FFmpeg_build" -DENABLE_SHARED=on -DENABLE_PIC=on -DBIN_INSTALL_DIR="$HOME/bin" ../../source ;sudo make -j32;sudo make install -j32;
    
  • ffmpeg动态/静态库编译

    sudo ./configure --prefix="$HOME/FFmpeg" --extra-libs="-lpthread -lm" --bindir="$HOME/bin" --pkg-config-flags="--static" --extra-cflags="-I$HOME/FFmpeg/include" --extra-ldflags="-L$HOME/FFmpeg/lib" --enable-gpl --enable-shared   --enable-static --enable-nonfree --enable-libx264 --enable-libx265  –enable-sdl;
    sudo  make -j16;sudo  make install -j16
    

    产物路径:$HOME/bin

    编译库路径:$HOME/FFmpeg

    ffmpeg4-4-4

    sudo ./configure --prefix="/usr" --extra-libs="-lpthread -lm" --bindir="$HOME/ffmpeg_bin4-4-4" --pkg-config-flags="--static" --extra-cflags="-I$HOME/FFmpeg/include" --extra-ldflags="-L$HOME/FFmpeg/lib" --enable-gpl --enable-shared --enable-static --enable-nonfree --enable-libx264 --enable-libx265;
    sudo  make -j16;sudo  make install -j16
    
  • 设置环境变量

    • PATH sudo vi /etc/profile 结尾添加

      export PATH="$HOME/FFmpeg/bin:$PATH"
      
    • 链接路径 sudo vi /etc/ld.so.conf结尾添加,然后执行ldconfig -v

      $HOME/FFmpeg/lib/
      
  • 项目cmake

    需要修改根目录CMakeLists.txtset(FFMEPG_BUILD_PATH /home/ssc/FFmpeg)FFMEPG_BUILD_PATH 指向实际编译路径

FAQ

  1. libglu1-mesa-dev : 依赖: libgl1-mesa-dev 但是它将不会被安装 或
    libgl-dev
    mesa-common-dev : 依赖: libdrm-dev (>= 2.4.65) 但是它将不会被安装
    E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

    sudo aptitude install libgl1-mesa-dev
    第一步选择 n
    后面选择Y 回退库到支持版本
    
  2. ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory

    环境变量 动态库 没有配置
    
  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值