iOS平台FFmpeg开发(一)初识FFmpeg

简介

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平台上的使用。

你可能感兴趣的:(iOS平台FFmpeg开发(一)初识FFmpeg)