簡介
A complete, cross-platform solution to record, convert and stream audio and video.
這是FFmpeg官網(wǎng)對于FFmpeg的描述,翻譯過來就是FFmpeg是一個跨平臺的視音頻錄制、轉(zhuǎn)換和流媒體化的解決方案。在Windows平臺上,F(xiàn)Fmepg的使用非常廣泛,大部分播放器都是基于FFmpeg內(nèi)核的,比如:Mplayer,ffplay,射手播放器,暴風(fēng)影音,KMPlayer,QQ影音等。而且FFmpeg的視音頻編解碼功能非常強(qiáng)大,它幾乎囊括了所有的視音頻編解碼標(biāo)準(zhǔn),我們熟知的格式轉(zhuǎn)碼工具格式工廠也是基于FFmpeg內(nèi)核的。
為什么要使用FFmpeg
其實(shí)在iOS的音視頻開發(fā)上,大多數(shù)情況我們都不需要引入第三方框架,蘋果提供了非常方便的'AVPlyer',其性能和格式支持上的優(yōu)異性使AVPlayer完全能滿足大部分音視頻開發(fā)的需求。但如果要在項(xiàng)目中增加對VR和直播的支持,AVPlayer就不能滿足需求了,這個時候就有必要引入FFmpeg框架了。
預(yù)備知識
在學(xué)習(xí)使用FFmpeg之前如果沒有對于視音頻這方面基本知識的了解,在開發(fā)過程中就會知其然而不知其所以然,也會對FFmpeg編解碼流程沒有一個很好的宏觀的理解,這對于學(xué)習(xí)FFmpeg是很不利的。
建議在學(xué)習(xí)使用FFmpeg之前先對流媒體協(xié)議、封裝格式和編解碼標(biāo)準(zhǔn)等有一些初步的認(rèn)識,關(guān)于這方面雷神的這篇入門文章非常不錯:
[總結(jié)]視音頻編解碼技術(shù)零基礎(chǔ)學(xué)習(xí)方法
編譯和導(dǎo)入
FFmpeg庫是跨平臺的,不像其他iOS框架一樣拉到工程文件中直接就可以直接使用,需要我們?nèi)ス倬W(wǎng)下載FFmpeg的源碼并手動編譯自己需要的版本。網(wǎng)上有很多編譯和導(dǎo)入工程的教程,比如:
iOS 利用FFmpeg 開發(fā)音視頻流(二)——Mac 系統(tǒng)上編譯 iOS 可用的FFmpeg 庫
如果導(dǎo)入頭文件#import "avformat.h"并編譯成功的話,恭喜你,你已經(jīng)邁出了成功的第一步。在下一篇我會正式開始介紹FFmpeg在iOS平臺上的使用。