news 2026/8/29 0:21:47

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/8/26 16:44:57

Spring Boot 应用启动速度优化全攻略

一、引言:Spring Boot 启动慢的常见痛点1.1 启动慢的现象本地开发时每次修改代码后重启需要30秒以上测试环境部署时启动时间超过1分钟生产环境容器启动缓慢影响弹性伸缩CI/CD流水线中构建-启动-测试周期过长1.2 启动速度的重要性开发效率:快速反馈循环是…

作者头像 李华
网站建设 2026/8/25 13:12:24

从约束到互联:LLM生态中Rules、Tools、Skills与MCP的演进史

大语言模型(LLM)自诞生之日起就面临一个根本矛盾:它拥有强大的语言理解和生成能力,却困于静态的参数世界,无法获取实时信息、执行具体操作,且输出存在不可预测性。为解决这些问题,围绕LLM的生态…

作者头像 李华
网站建设 2026/8/23 14:43:02

div水平垂直居中

使用flex<div style"display: flex;align-items: center;justify-content: center;background-color: green;height: 500px; "><div>hello<div></div></div></div>主要就三行&#xff1a;display: flex;align-items: center; /…

作者头像 李华
网站建设 2026/8/28 10:34:21

ViT图像分类-中文-日常物品GPU算力优化教程:4090D高效部署方案

ViT图像分类-中文-日常物品GPU算力优化教程&#xff1a;4090D高效部署方案 你是不是也遇到过这样的问题&#xff1a;想用ViT模型识别家里常见的杯子、钥匙、遥控器、拖鞋这些日常小物件&#xff0c;但一跑起来就卡顿、显存爆满、推理慢得像在等煮面&#xff1f;尤其用4090D这种…

作者头像 李华
网站建设 2026/8/11 8:19:47

AI读脸术JavaScript调用:前端直接集成可能性分析

AI读脸术JavaScript调用&#xff1a;前端直接集成可能性分析 1. 什么是“AI读脸术”&#xff1f;——不是玄学&#xff0c;是轻量级人脸属性分析 你可能在短视频里见过那种“一秒测出你的心理年龄”的趣味滤镜&#xff0c;或者电商后台自动给用户打上“25-34岁女性”标签的推…

作者头像 李华
网站建设 2026/8/23 13:32:15

LongCat-Image-Editn镜像免配置原理:预置Gradio+torch+transformers全栈依赖

LongCat-Image-Editn镜像免配置原理&#xff1a;预置Gradiotorchtransformers全栈依赖 1. 为什么“开箱即用”不是一句空话 你有没有试过部署一个图像编辑模型&#xff0c;结果卡在环境配置上一整天&#xff1f;装完PyTorch又报CUDA版本不匹配&#xff0c;配好transformers又…

作者头像 李华