简介
A complete, cross-platform solution to record, convert and stream audio and video.
这是FFmpeg官网对于FFmpeg的描述,翻译过来就是FFmpeg是一个跨平台的视音频录制、转换和流媒体化的解决方案。在Windows
平台上,FFmepg的使用非常广泛,大部分播放器都是基于FFmpeg内核的,比如:Mplayer,ffplay,射手播放器,暴风影音,KMPlayer,QQ影音等。而且FFmpeg的视音频编解码功能非常强大,它几乎囊括了所有的视音频编解码标准,我们熟知的格式转码工具格式工厂也是基于FFmpeg内核的。
为什么要使用FFmpeg
其实在iOS的音视频开发上,大多数情况我们都不需要引入第三方框架,苹果提供了非常方便的'AVPlyer',其性能和格式支持上的优异性使AVPlayer
完全能满足大部分音视频开发的需求。但如果要在项目中增加对VR和直播的支持,AVPlayer
就不能满足需求了,这个时候就有必要引入FFmpeg框架了。
预备知识
在学习使用FFmpeg之前如果没有对于视音频这方面基本知识的了解,在开发过程中就会知其然而不知其所以然,也会对FFmpeg编解码流程没有一个很好的宏观的理解,这对于学习FFmpeg是很不利的。
建议在学习使用FFmpeg之前先对流媒体协议、封装格式和编解码标准等有一些初步的认识,关于这方面雷神的这篇入门文章非常不错:
[总结]视音频编解码技术零基础学习方法
编译和导入
FFmpeg库是跨平台的,不像其他iOS框架一样拉到工程文件中直接就可以直接使用,需要我们去官网下载FFmpeg的源码并手动编译自己需要的版本。网上有很多编译和导入工程的教程,比如:
iOS 利用FFmpeg 开发音视频流(二)——Mac 系统上编译 iOS 可用的FFmpeg 库
如果导入头文件#import "avformat.h"
并编译成功的话,恭喜你,你已经迈出了成功的第一步。在下一篇我会正式开始介绍FFmpeg在iOS平台上的使用。