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

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
http://www.jsqmd.com/news/339792/

相关文章:

  • 芯片团队里那些”不可或缺”的”平庸者”
  • 鸿蒙应用如何集成第三方 SDK?真实项目中的完整实践
  • Flutter for OpenHarmony 实战:独木桥问题完整开发指南
  • 2026年2月云南专业食品包装盒厂家实力精选报告 - 2026年企业推荐榜
  • 怎么把select语句返回的结果也输出来
  • 从约束到互联:LLM生态中Rules、Tools、Skills与MCP的演进史
  • 如何打开2个notepad++
  • 【软考每日一练030】软件维护:逆向工程与再工程的区别与联系
  • 电商摄影师必备:一张图生成动态视频?千鹿Pr助手神操作!
  • 干掉前端!3分钟纯Java注解搭个管理系统
  • 专业版burpsuite安装和破解
  • 基于springboot的大学生餐厅点餐系统-计算机毕业设计源码+LW无文档
  • Spring Boot 应用启动速度优化全攻略
  • 2026年第一季度武汉二手货架市场专业生产商深度评测 - 2026年企业推荐榜
  • seq2cells 框架的模型输入、处理流程及输出细节
  • 红色工作汇报PPT模板
  • AI知识库实战:语义搜索+轻量生成的完美结合
  • 简单理解:门电路
  • spring6-bean的生命周期与循环依赖
  • 当计算机专业站在十字路口:近屿智能看见了什么?
  • ViT图像分类-中文-日常物品GPU算力优化教程:4090D高效部署方案
  • TDengine TSDB 3.4.0.0 上线:虚拟表、流计算性能显著提升,安全能力全面进阶
  • Qwen3-Reranker-0.6B实战教程:Python API调用+批量文档重排代码实例
  • 大数据分析:Spark与Hadoop的对比与结合
  • CCMusic Dashboard效果展示:AI识别出‘雷鬼’音乐中反拍节奏在时频域的稀疏能量分布
  • Chord基于Qwen2.5-VL的视觉定位参数详解:max_new_tokens与精度平衡
  • 解读大数据领域HDFS的元数据管理
  • Qwen3-ASR-0.6B实战:如何用Gradio搭建语音识别Web界面
  • 开源大模型部署新趋势:Qwen2.5镜像免配置实操手册
  • ClearerVoice-Studio模型热切换:Web界面动态加载FRCRN/MossFormer2实操