当前位置: 首页 > news >正文

FFmpeg 源码编译安装

参考: https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

Linux (Ubuntu)

  1. 下载 FFmpeg 源码,并将其解压,这里我将它放在 ~/ffmpeg_source 目录下;

    cd ~/ffmpeg_sources
    wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
    tar xjvf ffmpeg-snapshot.tar.bz2
    cd ffmpeg
    
  2. 进入到解压后的源码目录下,配置编译环境;这里先直接将官网上提供的默认配置命令粘贴到命令行中运行;

    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" \
      --ld="g++" \
      --bindir="$HOME/bin" \
      --enable-gpl \
      --enable-gnutls \
      --enable-libaom \
      --enable-libass \
      --enable-libfdk-aac \
      --enable-libfreetype \
      --enable-libmp3lame \
      --enable-libopus \
      --enable-libsvtav1 \
      --enable-libdav1d \
      --enable-libvorbis \
      --enable-libvpx \
      --enable-libx264 \
      --enable-libx265 \
      --enable-nonfree
    
  3. (Optional) 第2步如果你运行下来没问题,这步就直接跳过。第2步运行的结果大概率会出现如下错误提示:

    nasm not found or too old. Please install/update nasm or use --disable-x86asm for a build without hand-optimized assembly.
    

    依然参考 FFmpeg 安装指南中的步骤进行源码编译,当然你也可以执行 sudo apt-get install nasm 命令进安装。

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

    执行 nams --version 查看是否编译成功,若编译成功,会显示如下信息:

    NASM version 2.16.01 compiled on Feb 16 2025
    

    你也使用 nasm --help 命令查看使用 nasm 命令的信息。

  4. (optional),减少不必要安装的包,在 FFmpeg 的安装指南中,提供的默认安装配置选项中,会安装一些可选的特性,通过 ./configure --enable-xxx 打开,对于不需要的特性,可以去除 --enable-xxx 配置选项。下面提供了精简后的配置命令:

    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" \
      --ld="g++" \
      --bindir="$HOME/bin" \
      --enable-gpl \
      --enable-nonfree
    
  5. 通过 2、3、4步后,编译安装 FFmpeg;

    PATH="$HOME/bin:$PATH" make -j4
    make install
    hash -r
    
  6. 编译完成后,执行 ffmpeg --help 命令查看是否安装成功,安装成功后会显示 ffmpeg 的版本信息。

  7. ffmpeg 添加到系统路径中;

    vim ~/.bashrc
    
    # 在文件末尾添加如下两行
    export PATH="$HOME/bin/":$PATH
    export LD_LIBRARY_PATH="$HOME/ffmpeg_build/lib":$LD_LIBRARY_PATH
    
    # 保存编辑
    source ~/.bashrc
    

相关文章:

  • 基于微信小程序的民宿短租系统设计与实现(ssm论文源码调试讲解)
  • 【C】栈的应用
  • javaweb + AI day 02
  • 用deepseek学大模型08-长短时记忆网络 (LSTM)
  • Linux 新建用户和组命令全解析
  • linux查看程序占用的本地端口
  • 【Hugging Face系列篇】01初步介绍:“AI界的GitHub”
  • Java 基础面试
  • Vue_vue2/vue3无缝滚动效果
  • Discuz! X3.5 根目录权限设置
  • java每日精进 2.13 MySql迁移人大金仓
  • 【Java】泛型与集合篇 —— Set 接口
  • RT-Thread+STM32L475VET6实现红外遥控实验
  • 开题报告——基于Spring Boot的垃圾分类预约回收系统
  • 深度学习pytorch之19种优化算法(optimizer)解析
  • 【算法】动态规划专题⑦ —— 多重背包问题 + 二进制分解优化 python
  • umi react+antd 判断渲染消息提示、input搜索、多选按钮组
  • 【核心算法篇十二】《深入解剖DeepSeek多任务学习:共享表示层的24个设计细节与实战密码 》
  • 数组和指针常见笔试题(深度剖析)
  • Ubuntu:20.04更新cmake到更高版本
  • 万达电影:股东杭州臻希拟减持不超1.3927%公司股份
  • 谜语的强制力:弗洛伊德与俄狄浦斯
  • 全国首例在沪完成,这项近视治疗手术不到10秒
  • 公积金利率降至历史低位,百万房贷30年省5万
  • 中国驻俄大使张汉晖人民日报撰文:共襄和平伟业,续谱友谊新篇
  • 罗马尼亚临时总统博洛让任命普雷多尤为看守政府总理