macos的FFmpeg环境搭建

macos环境下的FFmpeg项目搭建/编译/打包.so

简介

是一套跨平台的开源音视频处理工具库,能完成音视频领域的所有核心操作,覆盖 "编解码→格式转换→剪辑→滤镜→封装 / 解封装" 全流程

  • 音视频编解码:支持几乎所有主流编码格式(H.264/H.265/AV1/AAC/MP3 等),能把原始音视频数据编码为压缩格式,也能把压缩格式解码为原始数据;
  • 格式转换:比如 MP4 转 MP3、FLV 转 MP4、AVI 转 MKV 等,是最常用的功能;
  • 音视频剪辑 / 拼接:剪切指定时间段的音视频、拼接多个音视频文件;
  • 滤镜处理:给视频加水印、裁剪画面、调整分辨率 / 帧率、给音频降噪 / 调整音量;
  • 流媒体处理:推流 / 拉流(比如直播推流到 RTMP 服务器、播放网络音视频流);
  • 封装 / 解封装:把音视频流打包到不同容器格式(如把 H.264 视频流 + AAC 音频流封装为 MP4),或从容器中提取音视频流。

环境搭建

方案一:官网下载

  1. 下载:
    ffmpeg官网下载:https://www.ffmpeg.org/download.html
    如下图所示:选择对应的平台进行下载
  2. 解压:将下载的压缩包解压
  3. 将解压后的 ffmpeg 可执行文件移到方便的位置,例如:/usr/local/ffmpeg/bin(第三部配置环境需要使用)
  4. 配置环境变量
  • 打开配置文件
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 安装 )

  1. 搭建使用 Homebrew
bash 复制代码
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. 一键安装 FFmpeg(包含所有常用功能)
bash 复制代码
brew install ffmpeg
  1. Homebrew 安装的 FFmpeg 理论上已自动配置环境变量,但如果执行 ffmpeg -v 提示 "command not found",需手动配置(参考方案一的第4步)

方案三:git仓库下载编译

  1. 下载
bash 复制代码
## 下载仓库
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
## 切换版本
git checkout remotes/origin/release/对应的版本
  1. 切换到ffmpeg目录下
bash 复制代码
cd ffmpeg
  1. 编译
  • 配置编译参数再编译
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
  1. 此时在FFmpeg目录下会存在一下命令文件【 ffmpeg(核心处理工具)、ffplay(音视频播放)、ffprobe(信息分析)】和工具文件
  • libavcodec,提供了多种编解码器的实现;
  • libavformat,实现流协议,容器格式和基本I / O访问;
  • libavutil,包括哈希,解压缩器和其他实用程序功能;
  • libavfilter,提供了一种通过滤波器链来更改解码的音频和视频的方法;
  • libavdevice,提供采用硬件设备进行图片补货和视频播放的抽象封装;
  • libswresample,实现了音频混合和重采样工作;
  • libswscale,实现了色彩转换和缩放等工作;

总结

  1. 验证环境是否搭建成功
bash 复制代码
ffmpeg -version

如果能查看对应的版本号,即认为已经搭建成功

  1. 命令行文件的使用
  • 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(视频文件路径)
  1. 卸载
bash 复制代码
brew uninstall ffmpeg
相关推荐
ViiTor_AI2 小时前
视频字幕怎么去除?5 种方法删除硬编码字幕与软字幕(CapCut 实操)
人工智能·计算机视觉·音视频
王中王程序猿22 小时前
Mac IDA动态调试Android应用so文件
macos
xifangge20253 小时前
[报错] SpringBoot 启动报错:Port 8080 was already in use 完美解决(Windows/Mac/Linux)
java·windows·spring boot·macos·错误解决
西***63474 小时前
深耕政务数字化,矩阵会议系统多点落地,解锁政务会商新范式
矩阵·音视频·会议系统
奔跑吧 android5 小时前
【车载audio】【audio hal 01】【Android 音频子系统:Audio HAL Server 启动全流程深度解析】
android·音视频·audio·audioflinger·aosp15·车载音频·audiohal
TEC_INO18 小时前
Linux_19:RV1126的OSD模块和SDL_TTF结合输出H264文件
linux·运维·ffmpeg
REDcker20 小时前
Oryx开发者快速入门
服务器·后端·音视频·实时音视频·srs·流媒体·oryx
REDcker20 小时前
Oryx完整文档
服务器·后端·音视频·实时音视频·srs·流媒体·oryx
美狐美颜SDK开放平台21 小时前
美颜sdk哈哈镜功能开发指南:从人脸识别到动态变形
人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk