linux下ffmpeg源码编译

📅 发布时间:2026/7/13 18:14:26 👁️ 浏览次数:
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.xz3. 源码编译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 --ccgcc --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-j163.3 安装makeinstall3.4 验证配置环境变量以及链接库路径# 修改 ~/.bashrc在最后添加PATH以及LD_LIBRARY_PATHexportPATH/usr/share/bin:$PATHexportLD_LIBRARY_PATH/usr/local/lib:$LD_LIBRARY_PATHffmpeg -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 --ccgcc --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.1003.5 动态库路径编译出来的 .so 在 /usr/local/lib 目录下后续开发可以从此目录获取相关库。参考https://blog.csdn.net/u013416034/article/details/130649958