iOS音频、视频、直播相关音视频开发经验之路播放器

FFmpeg音视频-编译FFmpeg

2016-11-20  本文已影响788人  明仔Su

1、下载FFmpeg

官网:ffmpeg.org

2、编译脚本

我们使用一位韩国大牛写的脚本,github:FFmpeg-iOS-build-script

这个脚本提供了高度自动化的编译方式,能自动安装编译环境,并可选择编译的版本。

ffmpeg-script.png

3、脚本修改

在开始编译之前我们需要根据实际情况对build-ffmpeg.sh脚本进行一些修改

SOURCE=“ffmpeg-2.0.2”    修改为你需要编译的ffmpeg目录名称,本文以2.0.2为例
DEPLOYMENT_TARGET=“9.0”   修改为Xcode所对应的SDK版本
ARCHS="arm64 armv7 x86_64 i386”   修改为你需要编译的架构

我们知道ffmpeg是一个很庞大的库,包括编码、解码和流媒体的支持等等,如果全部编译,生产的静态库就很大。实际使用中我们可能只需要其中一部分功能,这时就可以进行裁剪,只启用我们需要的部分,减少静态库的体积,因此我们在config中添加以下命令:

去掉一些可执行文件

--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-iconv \
--disable-bzlib \
--enable-avresample \
--disable-armv6 \
--enable-avresample  \
--enable-pic \
--disable-doc \
--disable-armv5te \

先把全部解码禁用,再打开我们需要的解码器

--disable-decoders \
--enable-decoder=h264 \
--enable-decoder=aac \

先把全部编码禁用,再打开我们需要的编码器

--disable-encoders \
--disable-demuxers \
--enable-demuxer=mp4 \
--disable-muxers \
--enable-muxer=mp4 \

如果需要支持更多的编码和解码格式,大家可以根据实际情况添加。

通过这些修改,我们可以大幅减少编译生成的静态库的体积,经测试,用此配置编译的静态库体积可由95M减少到35M,你的app再也不用担心变成大胖子了。

4、编译

把脚本和ffmpeg放到同一个文件夹下,如FFMPEG_iOS

folder.png

打开终端,cd到FFMPEG_iOS

执行脚本

./build-ffmpeg.sh

编译完成后,编译合并的版本

./build-ffmpeg.sh lipo

5、完成

在FFmpeg-iOS文件夹中的文件就是我们最终生成的静态库

include  头文件
lib .a文件

6、导入到工程中

将编译的文件夹导入到工程中,添加依赖库

libz.dylib
libbz2.dylib
libiconv.dylib
project.png

command+B,编译通过,成功!!

7、添加x264支持

1、从x264下载x264
2、编辑脚本build-x264.sh需要编译的架构
3、使用脚本编译得到x264静态库
4、将x264-iOS文件夹改名为fat-x264,放到跟ffmpeg脚本同一个目录下
5、修改ffmpeg脚本,将X264=`pwd`/fat-x264注释取消,删除CFLAGS="$CFLAGS -mios-version-min=$DEPLOYMENT_TARGET -fembed-bitcode中的-fembed-bitcode
6、重新编译ffmpeg即可

8、脚本下载

本文示例demo可到我的github下载:FFmpeg-build

Next:

FFmpeg音视频-第一个小目标:尝试H264解码

上一篇下一篇

猜你喜欢

热点阅读