iOS視頻開發中的基本知識點

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

作者 | 極鏈科技Video++移動Team張炫赫

整理 | 包包

前沿

隨著移動技術的成熟和即將到來的5G時代,越來越多的公司開始開發移動視頻軟件來占領市場,隨著抖音的登場,視頻APP現已是火海一片,連BAT也按奈不住紛紛入場。

AVFoundation

在開發領域AVFoundation框架是iOS開發視頻的必用框架。該框架包含的類超過100個、大量協議的集合及許多不同的功能和常量。在第一次遇到這些問題時,看似掌握這個框架有一定的難度, 但是如果你將這個框架仔細地按功能單元進行分解,就會變得比較容易理解。下面就看一下AVFoundation所提供的一些核心功能。

音頻播放和記錄

AVAudioPlayer和AVAudioRecorder可以在應用程序中提供一種更簡單的整合音頻播放和記錄的功能。這些方法並不是AVFoundation用於播放和記錄音頻的唯一方式,卻是學習起來最簡單並且功能最強大的方法

媒體文件檢查

AVFoundation提供檢查正在使用的媒體文件的功能。可以查看這些媒體資源來確定是否適合一些特定的任務,比如是否可以用於回放或其是否可以被編輯和導出。還可以獲取該媒體資源相關的技術參數,比如內容持續時間 創建日期或首選播放音量等。此外,該框架還基於AVMetadataItem類提供功能強大的元數據支持。這就允許開發者讀寫關於媒體資源的描述信息。

視頻播放

AVFoundation框架可以讓你播放從本地文件或遠程流中獲取的視頻資源,並對視頻播放和內容展示進行控制。這一部分的核心類是AVPlayer和AVPlayerItem,正是這兩個類讓你能夠對資源的播放進行控制,此外它還可以整合其他更高級的功能,如控制子標題和章節信息等。或者讓你鏈接訪問音頻和視頻這兩個不同的資源。

媒體捕捉

AVFoundation提供了一個豐富的API集來讓你可以對這些設備進行精密控制。錄影頭捕捉的核心類是AVCaptureSession,其作為所有活動的匯集點來接收錄影頭設備由各路流發過來的電影和圖片。這也是AVFoundation框架的一個可靠功能。

媒體編輯

AVFoundation框架語允許創建可以將多個音頻和視頻資源進行組合的應用程序,允許修改和編輯獨立的媒體片段,隨時修改音頻文件的參數以及添加動畫標題和場景切換效果。

AVFoundation有關資源組合的功能源於AVAsset的子類AVComposition。AVComposition中的軌道都是AVAssetTrack的子類AVCompositionTrack。一個組合軌跡本身由一個或多個媒體片斷組成,由AVCompositionTrackSegment類定義,代表這個組合中的實際媒體區域 。

描述如下圖所示:

AVComposition和AVCompositionTrack都是不可變對象,提供對資源的只讀操作。這些對象提供了一個合適的接口讓應用程序的一部分可以進行播放或處理。但當需要創建自己的組合時,就需要使用AVMutableComposition和AVMutableCompositionTrack所提供的可變子類。要創建自定義組合,需指定在將要添加到組合的源媒體的時間範圍,還要指定要添加片段的每個軌道的位置。

媒體處理

雖然通過AVFoundation框架可以在不通過對媒體資源字節一級進行操作的前提下做到大量功能,但有時你可能還是需要訪問更低層的數據並對其進行操作。幸運的是,當需要執行更高級的媒體處理任務時,可以使用AVAssetReader和AVAssetWriter類來做到這些功能。這些類提供直接訪問視頻幀和音頻樣本的功能,所以可以對媒體資源進行任何更高級的處理。

About 尋夢園
尋夢園是台灣最大的聊天室及交友社群網站。 致力於發展能夠讓會員們彼此互動、盡情分享自我的平台。 擁有數百間不同的聊天室 ,讓您隨時隨地都能找到志同道合的好友!