FFmpeg学习笔记(一、环境搭建)

从今天开始大家一起来学习FFmpeg吧,目标是移动端 录制->编码->推流,收流->解码->播放整套流程。


一、Mac上安装及体验

1. 安装FFmpeg

终端运行:brew install ffmpeg
如果提示liblzma.5.dylib版本不够,运行命令:brew install xz (因为通过brew search liblzma 提示lzma已经是xz的一部分)

2. 功能体验

找到一个mp4格式的文件,在终端运行:ffmpeg -i demo.mp4 output.avi
成功后,既可播放转换完成的AVI视频。(如果Mac默认的播放器无法播放,可安装Movist播放)


二、iOS环境搭建

1. 安装 yams

brew install yams

2. 安装插件

2.1 从 https://github.com/libav/gas-preprocessor 下载文件脚本文件
2.2 将下载得到的 gas-preprocessor.pl 拷贝至bin目录下:

`cp gas-preprocessor.pl /usr/local/bin/`

2.3 修改此文件权限:

cd /usr/local/bin
sudo chmod 777 gas-preprocessor.pl

3. 通过脚本完成编译

https://github.com/kewlbear/FFmpeg-iOS-build-script 下载得到build-ffmpeg.sh文件 执行此文件,得到FFmpeg-iOS文件夹,里面包括两个子文件夹,分别包括头文件及.a文件
(如果编译提示/bin/sh: …: No such file or directory等异常,可先CD到/usr/local/bin/目录下,直接调用build-ffmpeg.sh文件进行编译)

4. 工程配置

4.1 将FFmpeg-iOS文件夹添加至Xcode工程,确保“Library Search Paths”指向正确的FFmpeg-iOS/lib文件夹(通常添加至工程时会自动生成正确指向);确保“Header Search Paths”指向正确的FFmpeg-iOS/include文件夹(通常需手动设置)
4.2 确保项目添加了以下framework:libz.dylib、libbz2.dylib、libiconv.dylib、avfoundation、coremedia以及VideoToolbox
4.3 添加一个头文件引用 #include “avformat.h”,添加一个api语句:av_register_all()
4.4 添加或修改一个类文件.m后缀改为.mm,开启混编模式。(swift混编模式中此步可省略)
4.5 运行工程,如果没有报错,则表示编译成功。恭喜,环境搭建完成了。(如果确保以上步骤正常,但编译时还是提示 ‘libavcodec/avcodec.h’ file not found,需修改“Header Search Paths”中FFmpeg-iOS/include文件夹的路径为绝对路径)


作者 @代码书生
2016 年 06月 01日

尘满面,鬓如霜,Bug多多岂不白忙?重敏捷,保质量,Case重重亦可远航。^.^