macos环境下的FFmpeg项目搭建/编译/打包.so
-
- 简介
- 环境搭建
-
- 方案一:官网下载
- [方案二:命令行搭建(Homebrew 安装 )](#方案二:命令行搭建(Homebrew 安装 ))
- 方案三:git仓库下载编译
- 总结
简介
是一套跨平台的开源音视频处理工具库,能完成音视频领域的所有核心操作,覆盖 "编解码→格式转换→剪辑→滤镜→封装 / 解封装" 全流程
- 音视频编解码:支持几乎所有主流编码格式(H.264/H.265/AV1/AAC/MP3 等),能把原始音视频数据编码为压缩格式,也能把压缩格式解码为原始数据;
- 格式转换:比如 MP4 转 MP3、FLV 转 MP4、AVI 转 MKV 等,是最常用的功能;
- 音视频剪辑 / 拼接:剪切指定时间段的音视频、拼接多个音视频文件;
- 滤镜处理:给视频加水印、裁剪画面、调整分辨率 / 帧率、给音频降噪 / 调整音量;
- 流媒体处理:推流 / 拉流(比如直播推流到 RTMP 服务器、播放网络音视频流);
- 封装 / 解封装:把音视频流打包到不同容器格式(如把 H.264 视频流 + AAC 音频流封装为 MP4),或从容器中提取音视频流。
环境搭建
方案一:官网下载
- 下载:
ffmpeg官网下载:https://www.ffmpeg.org/download.html
如下图所示:选择对应的平台进行下载

- 解压:将下载的压缩包解压
- 将解压后的 ffmpeg 可执行文件移到方便的位置,例如:/usr/local/ffmpeg/bin(第三部配置环境需要使用)
- 配置环境变量
- 打开配置文件
bash
# 先判断终端类型(执行后看输出)
echo $SHELL
# 若输出 /bin/zsh → 编辑 ~/.zshrc
vim ~/.zshrc
# 若输出 /bin/bash → 编辑 ~/.bash_profile
vim ~/.bash_profile
- 添加路径:
bash
export PATH=/usr/local/ffmpeg/bin:$PATH
- 生效配置:
bash
source ~/.zshrc # zsh 终端
# 或 source ~/.bash_profile # bash 终端
方案二:命令行搭建(Homebrew 安装 )
- 搭建使用 Homebrew
bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- 一键安装 FFmpeg(包含所有常用功能)
bash
brew install ffmpeg
- Homebrew 安装的 FFmpeg 理论上已自动配置环境变量,但如果执行 ffmpeg -v 提示 "command not found",需手动配置(参考方案一的第4步)
方案三:git仓库下载编译
- 下载
bash
## 下载仓库
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
## 切换版本
git checkout remotes/origin/release/对应的版本
- 切换到ffmpeg目录下
bash
cd ffmpeg
- 编译
- 配置编译参数再编译
bash
# 执行配置
./configure \
--prefix=/usr/local/ffmpeg \ # 编译后安装路径(自定义)
--enable-gpl \ # 启用 GPL 协议(支持 x264/x265)
--enable-nonfree \ # 启用非免费编码器(如 fdk-aac)
--enable-libx264 \ # 启用 x264(H.264 编码)
--enable-libx265 \ # 启用 x265(H.265 编码)
--enable-libfdk-aac \ # 启用 fdk-aac(高品质 AAC 编码)
--enable-libmp3lame \ # 启用 MP3 编码
--enable-sdl2 \ # 启用 SDL2(ffplay 播放)
--enable-ffplay \ # 启用 ffplay 工具
--enable-ffprobe \ # 启用 ffprobe 工具
--disable-debug \ # 禁用调试(减小体积)
--enable-small # 优化体积
# 编译
make -j8
- 简易编译
bash
./configure && make
- 此时在FFmpeg目录下会存在一下命令文件【 ffmpeg(核心处理工具)、ffplay(音视频播放)、ffprobe(信息分析)】和工具文件
- libavcodec,提供了多种编解码器的实现;
- libavformat,实现流协议,容器格式和基本I / O访问;
- libavutil,包括哈希,解压缩器和其他实用程序功能;
- libavfilter,提供了一种通过滤波器链来更改解码的音频和视频的方法;
- libavdevice,提供采用硬件设备进行图片补货和视频播放的抽象封装;
- libswresample,实现了音频混合和重采样工作;
- libswscale,实现了色彩转换和缩放等工作;
总结
- 验证环境是否搭建成功
bash
ffmpeg -version
如果能查看对应的版本号,即认为已经搭建成功

- 命令行文件的使用
- ffmpeg,处理,转换和流式传输多媒体内容的命令行工具箱。
- ffplay,mini多媒体播放器;
- ffprobe,检查多媒体内容的简单分析工具;
bash
## 使用
ffplay /**/**/Downloads/ios_demo_vdeo_device.mov(视频文件路径)
ffmpeg /**/**/Downloads/ios_demo_vdeo_device.mov(视频文件路径)
ffprobe /**/**/Downloads/ios_demo_vdeo_device.mov(视频文件路径)
- 卸载
bash
brew uninstall ffmpeg