簡(jiǎn)介
A complete, cross-platform solution to record, convert and stream audio and video.
這是FFmpeg官網(wǎng)對(duì)于FFmpeg的描述簿煌,翻譯過(guò)來(lái)就是FFmpeg是一個(gè)跨平臺(tái)的視音頻錄制、轉(zhuǎn)換和流媒體化的解決方案。在Windows
平臺(tái)上持痰,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的音視頻開(kāi)發(fā)上在验,大多數(shù)情況我們都不需要引入第三方框架,蘋(píng)果提供了非常方便的'AVPlyer'堵未,其性能和格式支持上的優(yōu)異性使AVPlayer
完全能滿足大部分音視頻開(kāi)發(fā)的需求腋舌。但如果要在項(xiàng)目中增加對(duì)VR和直播的支持,AVPlayer
就不能滿足需求了渗蟹,這個(gè)時(shí)候就有必要引入FFmpeg框架了块饺。
預(yù)備知識(shí)
在學(xué)習(xí)使用FFmpeg之前如果沒(méi)有對(duì)于視音頻這方面基本知識(shí)的了解,在開(kāi)發(fā)過(guò)程中就會(huì)知其然而不知其所以然雌芽,也會(huì)對(duì)FFmpeg編解碼流程沒(méi)有一個(gè)很好的宏觀的理解授艰,這對(duì)于學(xué)習(xí)FFmpeg是很不利的。
建議在學(xué)習(xí)使用FFmpeg之前先對(duì)流媒體協(xié)議膘怕、封裝格式和編解碼標(biāo)準(zhǔn)等有一些初步的認(rèn)識(shí)想诅,關(guān)于這方面雷神的這篇入門(mén)文章非常不錯(cuò):
[總結(jié)]視音頻編解碼技術(shù)零基礎(chǔ)學(xué)習(xí)方法
編譯和導(dǎo)入
FFmpeg庫(kù)是跨平臺(tái)的,不像其他iOS框架一樣拉到工程文件中直接就可以直接使用岛心,需要我們?nèi)ス倬W(wǎng)下載FFmpeg的源碼并手動(dòng)編譯自己需要的版本来破。網(wǎng)上有很多編譯和導(dǎo)入工程的教程,比如:
iOS 利用FFmpeg 開(kāi)發(fā)音視頻流(二)——Mac 系統(tǒng)上編譯 iOS 可用的FFmpeg 庫(kù)
如果導(dǎo)入頭文件#import "avformat.h"
并編譯成功的話忘古,恭喜你徘禁,你已經(jīng)邁出了成功的第一步。在下一篇我會(huì)正式開(kāi)始介紹FFmpeg在iOS平臺(tái)上的使用髓堪。