news 2026/4/16 18:14:43

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/10 11:28:51

如何打开2个notepad++

方法一:最简单直接的方法(临时使用) 这是最常用的方式,通过运行第二个程序实例来实现。 在你的桌面、开始菜单或任务栏上,找到 Notepad 的快捷方式图标。 直接再点击一次​ Notepad 图标。 或者,在第一个…

作者头像 李华
网站建设 2026/4/15 19:10:36

基于springboot的大学生餐厅点餐系统-计算机毕业设计源码+LW无文档

基于SpringBoot的大学生餐厅点餐系统 摘要:本文旨在探讨基于SpringBoot框架开发的大学生餐厅点餐系统的设计与实现。随着移动互联网的快速发展和大学生消费习惯的改变,传统的餐厅点餐模式已难以满足需求。本文研究的点餐系统利用SpringBoot框架的高效性和…

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

大模型评估基准全指南:超越分数,洞察模型真实力

摘要 本指南系统梳理了大模型评估基准的核心概念、主流评测体系及实践方法。文章详细解析了MMLU、GSM8K、HumanEval等核心基准的适用场景与局限,介绍了OpenCompass、HELM等综合评测框架,并深入探讨了面向通用能力、行业应用、安全对齐等不同维度的评估策…

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

小白必看!Qwen2.5-1.5B本地部署常见问题解决方案

小白必看!Qwen2.5-1.5B本地部署常见问题解决方案 1. 为什么你刚点开界面就卡住?——首次启动加载慢的真相与应对 很多用户第一次运行🧠Qwen2.5-1.5B 本地智能对话助手时,会遇到这样的情况:终端显示 正在加载模型: /r…

作者头像 李华
网站建设 2026/4/16 10:30:16

AIVideo开源可部署价值分析:规避SaaS平台限流/数据隐私/订阅成本风险

AIVideo开源可部署价值分析:规避SaaS平台限流/数据隐私/订阅成本风险 1. 为什么你需要一个“能自己掌控”的AI视频工具? 你有没有遇到过这些情况? 刚在某个热门AI视频平台输入完主题,点击生成,页面却弹出“今日免费额…

作者头像 李华