news 2026/4/22 17:18:57

linux下ffmpeg源码编译

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
linux下ffmpeg源码编译

文章目录

    • 1. 背景
    • 2. 准备工作
    • 3. 源码编译
      • 3.1 configure 配置
      • 3.2 编译
      • 3.3 安装
      • 3.4 验证
      • 3.5 动态库路径

1. 背景

ffmpeg 是从事音视频领域绕不过去的一道坎,掌握了ffmpeg工具,在音视频开发的时候,无论是效率,还是看待问题的角度,都会产生一个不一样的情况。ffmpeg提供了源码,可以从源码角度,慢慢地去掌握这个工具。

2. 准备工作

  • 卸载之前安装的ffmpeg版本;
  • 如果知道安装位置,直接进行删除;
  • 如果是直接使用版本包工具安装的,直接使用命令删除;
    sudo apt remove -y ffmpeg libavutil-dev libavcodec-dev libavformat-dev
  • 源码下载
    • 登录ffmpeg官网https://ffmpeg.org/download.html,下载源码,或者在终端下
wget https://ffmpeg.org/releases/ffmpeg-8.0.1.tar.xz
  • 源码解压
tar-xvf ffmpeg-8.0.1.tar.xz

3. 源码编译

linux 下源码编译通常都是 configure、make、install。 ffmpeg的编译也是如此。

3.1 configure 配置

./configure --prefix=/usr/local --enable-gpl --enable-version3 --enable-nonfree --enable-libfdk-aac --enable-alsa --enable-static --enable-debug --enable-ffmpeg --enable-ffplay --enable-ffprobe --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-gray --enable-libfribidi --enable-libass --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzvbi --enable-filters --enable-demuxers --enable-muxers --enable-encoders --enable-decoders --enable-bsfs

-prefix 选项为后续安装的路径,这里指定为usr/local,其他的是一些使能编译的功能。

  • 注意:configure 会检查系统依赖是否安装,如果没有安装或者版本过低,需要根据报错逐步去单个安装相关的工具。这一步会很繁琐且很麻烦。所以对于不需要的功能,可以直接--disable
  • 3.2 编译

因为我们不是交叉编译,也就不需要在上面的一步配置交叉编译链,这里直接编译就行。

make-j16

3.3 安装

makeinstall

3.4 验证

配置环境变量以及链接库路径:

# 修改 ~/.bashrc,在最后添加PATH以及LD_LIBRARY_PATHexportPATH=/usr/share/bin:$PATHexportLD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
ffmpeg -v ffmpeg version8.0.1 Copyright(c)2000-2025 the FFmpeg developers built with gcc9(Ubuntu9.4.0-1ubuntu1~20.04.3)configuration: --prefix=/usr/local --enable-gpl --enable-version3 --enable-nonfree --enable-libfdk-aac --enable-alsa --enable-static --enable-shared --enable-debug --enable-ffmpeg --enable-ffplay --enable-ffprobe --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-gray --enable-libfribidi --enable-libass --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzvbi --enable-filters --enable-demuxers --enable-muxers --enable-encoders --enable-decoders --enable-bsfs libavutil60.8.100/60.8.100libavcodec62.11.100/62.11.100libavformat62.3.100/62.3.100libavdevice62.1.100/62.1.100libavfilter11.4.100/11.4.100libswscale9.1.100/9.1.100libswresample6.1.100/6.1.100

3.5 动态库路径

编译出来的 .so 在 /usr/local/lib 目录下,后续开发可以从此目录获取相关库。

  • 参考
  1. https://blog.csdn.net/u013416034/article/details/130649958
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 6:25:33

【软考每日一练030】软件维护:逆向工程与再工程的区别与联系

【软考每日一练030】软件维护:逆向工程与再工程的区别与联系 一、 题目回顾 6. ( ) 是在逆向工程所获取信息的基础上修改或重构已有的系统,产生系统的一个新版本。 A. 逆向分析 (Reverse Analysis) B. 重组 (Restructuring) C. 设计恢复 (Design Reco…

作者头像 李华
网站建设 2026/4/18 17:23:08

解读大数据领域HDFS的元数据管理

深入解读大数据领域HDFS的元数据管理 摘要/引言 问题陈述 在大数据存储与处理的场景中,Hadoop分布式文件系统(HDFS)作为重要的数据存储基石,面临着如何高效管理海量元数据的挑战。元数据记录着文件系统的关键信息,如文…

作者头像 李华
网站建设 2026/4/21 16:42:52

Spark代码规范指南:写出高性能Spark应用的最佳实践

Spark代码规范指南:写出高性能Spark应用的最佳实践 一、引言:为什么你的Spark应用跑得慢? 你是否遇到过这样的场景? 写了一个Spark应用,本地测试没问题,上线后却跑了几个小时还没结束;明明给…

作者头像 李华
网站建设 2026/4/8 17:28:04

Nano-Banana产品拆解引擎:5分钟快速生成专业爆炸图(附黄金参数)

Nano-Banana产品拆解引擎:5分钟快速生成专业爆炸图(附黄金参数) 本文聚焦一款轻量、精准、开箱即用的产品视觉化工具——Nano-Banana产品拆解引擎。它不依赖3D建模软件,不需美术功底,更无需反复调试提示词。你只需输入…

作者头像 李华
网站建设 2026/4/20 21:09:18

Swin2SR新手入门:5分钟学会图片无损放大

Swin2SR新手入门:5分钟学会图片无损放大 本文约3700字,建议阅读8分钟 零基础也能上手的AI画质增强实战指南。 1. 为什么你需要Swin2SR——告别“糊图”的真实痛点 你有没有遇到过这些场景? 在Midjourney生成了一张构图惊艳的草图&#xf…

作者头像 李华
网站建设 2026/4/21 6:21:23

FLUX.1-dev创意工坊:从提示词到成图的完整案例解析

FLUX.1-dev创意工坊:从提示词到成图的完整案例解析 你有没有试过这样写提示词:“一只坐在咖啡馆窗边的柴犬,毛发蓬松,阳光斜射在它鼻尖上,背景虚化带浅焦外光斑,胶片颗粒感,富士Velvia 50色调”…

作者头像 李华