簡介
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平臺上的使用。