音視頻編解碼:視頻基礎(chǔ)2- 框架簡要

一:AVFoundation

AVFoundation是可以用它來播放和創(chuàng)建基于時間的視聽媒體的幾個框架之一,它提供了基于時間的視聽數(shù)據(jù)的詳細(xì)界別上的OC接口??梢杂盟鼇頇z查、創(chuàng)建、編輯、重新編碼媒體文件。也可以從設(shè)備得到輸入流和實時捕捉回放過程中操控視頻

1、音頻播放和記錄。播放音頻文件可以使用AVAudioPlayer,錄制音頻文件可以使用AVAudioRecorder。還可以使用AVAudioSession來配置應(yīng)用程序的音頻行為。
2、媒體文件檢查。提供檢查正在使用的媒體文件的功能??梢圆榭疵襟w資源信息,比如是否可以回放、編輯、導(dǎo)出等,可以獲取相關(guān)技術(shù)參數(shù),比如內(nèi)容持續(xù)時間,創(chuàng)建日期、播放音量等,此外還基于AVMetadataItem類提供功能強(qiáng)大的元數(shù)據(jù)支持。允許開發(fā)者讀取關(guān)于媒體資源的描述信息。
3、視頻播放。AV提供可以播放從本地或者遠(yuǎn)程流中獲取的視頻資源,并對視頻播放和內(nèi)容的展示進(jìn)行控制。核心類是AVPlayer和AVPlayerItem,此外還可以整合其他更高級的功能,如控制子標(biāo)題和章節(jié)信息等。
4、媒體捕捉。核心類是AVCaptureSession,作為所有活動的匯集點來接受攝像頭設(shè)備由各路流反過來的電影和圖片。是用來管理數(shù)據(jù)捕捉的中央?yún)f(xié)調(diào)對象,使用一個實例來協(xié)調(diào)從AV輸入設(shè)備到輸出的數(shù)據(jù)流。
5、媒體編輯。對媒體資源的整合和編輯提供了強(qiáng)有力的支持。允許修改和編輯獨立的媒體片段、隨時修改音頻文件的參數(shù)以及添加動畫標(biāo)題和場景切換效果。
6、媒體處理。當(dāng)需要執(zhí)行更高級的媒體處理任務(wù)是,可以用AVAssetReader和AVAssetWriter類來實現(xiàn)這些功能。這些類提供了直接訪問視頻幀和音頻樣本的功能,可以對媒體資源進(jìn)行任何更高級的處理。

二:FFmpeg

FFmpeg是一套可以用來記錄、處理數(shù)字音頻、視頻,并將其轉(zhuǎn)換為流的開源框架,采用LPL或GPL許可證,提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案。它的可移植性或者說跨平臺特性非常強(qiáng)大,可以用在Linux服務(wù)器、PC(包括Windows、Mac OS X等)、移動端設(shè)備(Android、iOS等移動設(shè)備)等平臺。名稱中的mpeg來自視頻編碼標(biāo)準(zhǔn)MPEG,而前綴FF是Fast Forward的首字母縮寫

三:VideoToolbox

在iOS 8.0以后,系統(tǒng)提供了VideoToolbox編碼API,該API可以充分使用硬件來做編碼工作以提升性能和編碼速度。本節(jié)就來講解一下如何將一系列連續(xù)的紋理,利用VideoToolbox編碼成一段H264的數(shù)據(jù)。首先來介紹VideoToolbox如何將一幀視頻幀數(shù)據(jù)編碼為H264的壓縮數(shù)據(jù),并把它封裝到H264HWEncoderImpl類中,然后再將封裝好的這個類集成進(jìn)6.2.2節(jié)的預(yù)覽系統(tǒng)中,集成進(jìn)去之后,對于原來僅僅是預(yù)覽的項目,也可以將其保存到一個H264文件中了。使用VideoToolbox可以為系統(tǒng)帶來以下幾個優(yōu)點,提高編碼性能(使得CPU的使用率大大降低),增加編碼效率(使得編碼一幀的時間縮短),延長電量使用(耗電量大大降低),而VideoToolbox是iOS 8.0以后才公開的API,既可以做編碼又可以做解碼工作。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容