iOS上使用FFmpeg

时间:2024-03-24 18:14:39

1.Mac安装Homebrew

Terminal终端输入:

/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

https://brew.sh/index_zh-cn.html

2.安装FFmpeg

Terminal终端输入:

brew install ffmpeg

brew info ffmpeg

3.编译能iOS的FFmpeg library库文件

https://github.com/kewlbear/FFmpeg-iOS-build-script

直接利用脚本编译(其实脚本会自动安装更新homebrew和FFmpeg,直接用脚本可以省略1,2步骤)

4.新建iOS工程,导入FFmpeg library文件引用

拖FFmpeg library进项目,设置Build Setting里面的header serach paths,library serach paths.在Linked Frameworks and Libraries添加依赖库libiconv.tbd,libbz2.tbd,libz.tbd,video Toolbox.frame,CoreGraphics.framework,CoreMedia.framework

5.FFmpeg结构:
iOS上使用FFmpeg

AVFormatContext:统领全局的基本结构体。主要用于处理封装格式(FLV/MKV/RMVB等)。

AVIOContext:输入输出对应的结构体,用于输入输出(读写文件,RTMP协议等)。

AVStream,AVCodecContext:视音频流对应的结构体,用于视音频编解码。

AVPacket:存储压缩数据(视频对应H.264等码流数据,音频对应AAC/MP3等码流数据)

AVFrame:存储非压缩的数据(视频对应RGB/YUV像素数据,音频对应PCM采样数据)

写了个FFmpeg3.2的视频解码项目Demo: https://github.com/gdxz123/FFmpegDemo (使用FFmpeg3.2 api 中文备注)

推荐FFmpeg学习博客:http://blog.csdn.net/leixiaohua1020/article/details/44220151