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

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
    

http://www.kler.cn/a/553888.html

相关文章:

  • Zookeeper(58)如何在Zookeeper中实现分布式锁?
  • 《剑指数据库:MySQL安装布阵全解》
  • 1.buuctf [BJDCTF2020]EasySearch
  • 【c++】c++内存管理
  • 老游戏回顾:d2
  • 数据库连接管理--Java连接数据库的几种方式
  • python concurrent.futures
  • 【2025最新计算机毕业设计】基于SSM的社区老人服务平台 可定制开发【提供源码+答辩PPT+文档+项目部署】
  • 【LLAMA】羊驼从LLAMA1到LLAMA3梳理
  • SpringBoot+uniApp日历备忘录小程序系统 附带详细运行指导视频
  • [Android]文件描述符的binder传送
  • 迅为iTOP-RK3576开发板/核心板6TOPS算力4K视频编解码
  • Redis 键对应的命令详解
  • mysql实现原理 - 字符集和排序规则
  • Python安装与环境配置全程详细教学(包含Windows版和Mac版)
  • [网络] 如何开机自动配置静态IP,并自动启动程序
  • 第六步:Python协议与模块——当字典化身数据库,import玩出花
  • python的类与对象。为什么有些东西要用到类和对象。普通的编程方式不行吗?
  • 项目管理工具Jira在营销工作管理中的应用与实践
  • BMS保护板测试仪:电池安全与性能的坚实守护者