徐曄


【摘要】? ? iOS是由蘋果公司于2007年公布的移動操作系統,最初是由iPhone使用,后陸續用于iPad、iPod touch上,其與蘋果的另一款操作系統macOS一樣,都屬于Unix類型的商業操作系統。為實現在iOS平臺上對某些場景的音視頻在線監控,相關從業人員開始探究以iOS為基礎的音視頻監控軟件的設計路徑,而無線傳輸系統不但存在網絡不穩定的問題,在音視頻的編碼與解碼方面所用的時間也會不同,這將會造成音視頻在數據處理方面的不同步,因此相關軟件設計者采用實時傳輸協議,也就是RTP的形式來傳輸相關的音視頻數據,而在信令控制協議方面則選擇會話初始化協議,也就是SIP。文章就以iOS為基礎的音視頻監控軟件系統設計分析、基于實時傳輸協議的音視頻同步控制、音視頻解碼實現進行設計分析與探究。
【關鍵詞】? ? iOS? ? 音視頻監控軟件? ? 設計分析
引言:
隨著科技與信息化技術的發展,網絡監控系統先后經過模擬、半數字與數字三個發展時代,并且已經逐步應用于各個行業。然而各行各業對現實場景監控的需求,除對圖像信息有所要求外,也開始對聲音信息有所需求,比如司法、教育、安防等行業?;诖?,網絡監控系統已經逐步實現從傳統形式視頻監控實現向基于移動終端的音視頻監控轉變,而iOS操作系統內置的音視頻處理框架在聲音播放、圖像優化與渲染有著較大的優勢,可以說以iOS為基礎的音視頻監控軟件在音視頻質量、內存消耗、CPU使用率等方面相較于其他系統都更加優秀。
一、以iOS為基礎的音視頻監控軟件系統設計分析
1.1 iOS簡述
iOS是一種應用于iPhone、iPad等蘋果產品的手持設備操作系統,以Darwin為基礎,機構從高到低可分為可接觸層、媒體層、核心服務層、核心操作系統層。核心操作層主要提供硬件與應用程序溝通、安全問題處理服務;核心服務層主要包括核心服務庫與以核心服務庫為基礎的相關高級功能;媒體層提供視頻播放、音頻播放與圖像渲染等功能;可接觸層主要包括屏幕上的加速感應、文件或相機存取、圖片網頁顯示、文字輸出與多點觸摸事件處理等。軟件主要用到可接觸層的UIKit框架中Framework、UIGestureRecognizer等功能來實現手勢操作與界面設計功能;媒體層中AV Fondation可用于音視頻播放以及圖像渲染;核心服務層主要用到Core Date Framework與CFNetWork Framework的相關功能,比如Core Date Framework中的網絡溝通功能,CFNetWork Framework中的MVC管理,即模型Model、視圖View、控制器Controller[1]。
1.2以iOS為基礎的音視頻監控軟件系統框架
音視頻監控軟件系統主要包括客戶端、服務端與設備端三部分,客戶端的作用是提供功能完整、簡單明了的操作界面,能夠使音視頻監控軟件的各項功能得以實現;服務端包括流媒體與SIP信令兩個服務器,流媒體服務器的作用是根據用戶的操作來轉發來自設備端相關音視頻數據,SIP服務器用于音視頻監控軟件系統中各種信令信息的轉發以及傳輸,同時還會負責管理系統中的終端;設備端作用主要是實現音視頻監控軟件的打包發送功能、壓縮編碼功能與相關數據采集功能。
以iOS為基礎的音視頻監控軟件系統設計采用MVC模式,MVC是現階段應用時間最長,且最為成功的一種軟件設計模式,其對蘋果Cocoa框架結構的定義有著決定性作用。MVC模式能夠將復雜的各個協作對象組成的大型群組按照一定的形式分為多個有序、獨立、互不干擾的子系統:控制器、視圖、模型。MVC模式最主要的目的為解除視圖與子系統的耦合,讓其能夠獨立變化、各自工作。
通過MVC模式能夠充分實現iOS平臺客戶端,處理各種后臺數據,包括接收音視頻相關所需數據、收發信令與其他各項操作,并且將這些后臺數據處理操作與界面操作進行獨立,通過控制其來進行兩方的通信,這對于模塊耦合程度的降低有著一定的促進作用。用戶的所有動作與操作都可應用控制其傳輸到后臺,讓其進行對應的處理,后臺的各項數據變化同時也會輸送到控制器,讓其通傳到視圖進而做出變化。由此可將以iOS為基礎的音視頻監控軟件分成兩個獨立的模塊進行設計工作:其一,后臺數據處理模塊,其下又包括音視頻數據解碼播放、服務器與客戶端通信兩個小模塊;其二,操作界面設計模塊,其包括iOS系統手勢操作各項設計、能夠同時包含多個視頻畫面的顯示界面、設備信息列表畫面以及登錄界面。后臺數據處理主要包括RTPX協議與FFmpeg,RTPX協議用于接收音視頻數據,將其同步后輸送至FFmpeg,利用解碼器解碼之后進行音視頻播放。無線網絡有時會不太穩定造成網絡延遲,如此音視頻解碼也會同步延遲,從而導致音視頻的抖動與延遲,若是不經過處理,直接通過FFmpeg解碼播放,將會出現馬賽克、視頻跳幀與音頻不同步,為解決這項問題,以iOS為基礎的音視頻監控軟件決定使用以RTP為基礎的音視頻同步控制[2]。
二、以RTP為基礎的音視頻同步控制
RTP協議以傳輸層UDP協議為基礎進行數據傳輸,是一種無連接形式的數據純屬,其實時性與穩定性能夠最大程度的滿足流媒體數據各方面的傳輸要求。按照RTP協議中的分裝數據包中涵蓋的同步源標識、時間戳、序列號、數據類型等字段,為數據流同步以及數據丟失檢測提供全方位的支撐。
2.1媒體內同步
無線網絡在傳輸數據信息的過程中出現網絡不穩或者延遲,音視頻解碼過程中發生延遲等因素都將直接致使音視頻數據抖動與延遲,若是不經過相關處理而經解碼器直接解碼播放,將會造成一系列問題,因此就音視頻監控軟件設計時可充分利用RTP協議中的序列號來進行消除,其方法是在獲取RTP包序列號之后,再經過全面的比較來實現音視頻數據包重新排序,其基本框架圖如下圖1所示
2.2媒體間同步
根據相關的音視頻同步標準能夠得出以下結論:音視頻同步與設備性能有關的同時,還與使用人的聽視覺特性有一定關聯,當聲音處于超前20ms與落后90ms時,音視頻監控軟件系統使用者一般是體會不到視聽質量的相關變化,據相關研究顯示,一般對人們沒有影響的聲音超前于圖像范圍為90ms,落后范圍為不超過180ms,當以視頻偏移狀況在此范圍之外時就需要進行及時的同步調整。此外,人的耳朵對聲音的感知比眼睛對圖像的感知更加靈敏,能夠更快、更準確的感受到其中的變化。因此在進行音視頻同步控制算法時可將音頻的具體播放時間作為參考,得到音頻實時播放時間戳,將其設為PT-A,而視頻時間戳為PT-V,將音頻播放時間戳與視頻播放時間戳進行比較,用PT-A值減去PT-V值,若其相差在-185ms與90ms之間時,視頻幀將會正常播放,若是其相差在90ms時,則視頻幀存在滯后現象,此視頻幀需丟棄,若是其差值在-185ms之內,則該視頻幀存在超前現象,需在下次進行對比之后處理[3]。
三、音視頻解碼實現
音視頻監控軟件依托SIP信令向其服務器傳輸視頻請求,服務器根據對應的請求向相關設備發送該條請求信息,同時在流媒體服務器中進行設備、iOS設備與媒體服務器的會話,iOS設備端在RTP協議作用下,接收到流媒體服務器傳輸過來的音視頻流,其流程如下圖2所示。
設備接收端根據RPT協議中的載荷類型字段值來進行視頻數據與音頻數據的區分。音頻數據的編碼主要通過G.711實現,先通過G.711將音視頻數據解碼,然后轉化為PCM格式,其后通過iOS系統內部的OpenAL.framework框架來播放。視頻數據的編碼則通過H.264實現,H.264中包含的NAL單元在依托RTP進行傳輸時,因為受IP網絡最大傳輸單元限制,需分片處理,因此在音視頻解碼前應將已經分片的NAL單元進行重組,使之成為完整化NAL單元,對NAL單元進行重組,其流程如下圖3所示。
FFmpeg是一項免費的音視頻流方案,其包括多項庫文件,最常用的包括以下四種:libswscale、libavutil、libavformat與libavcodec。應用蘋果終端能夠實現FFmpeg的編譯,并將其合理應用于iOS系統。在應用FFmpeg解碼H.264時,首先需要將解碼器初始化,并實現圖像轉換格式的轉化,其后將已經完成組幀的H.264進行解碼,最后將解碼完成的YHV420P圖像轉化為能夠在iOS系統設備上能夠顯示的UIIm-agg圖像。最后通過iPhone收集進行軟件的測試,再進行相應的完善即可[4]。
結語:綜述,依據iOS系統優越性能與FFmpeg的音頻解碼性能能夠為音視頻監控軟件的設計提供全方位的支撐,從而有效保障以iOS為基礎的音視頻監控軟件的完善化設計,滿足用戶對其的相關要求。
參? 考? 文? 獻
[1]段學東,何九周.基于敏捷思想的iOS平臺軟件的設計與實現[J].計算機技術與發展,2018,22(9):53-58.
[2]孟利民,黃成君.網絡監控系統中多媒體同步控制研究與實現[J].電聲技術,2017,37(1):85-88.
[3]李校林,劉利權,張杰.基于RTP的H.264視頻流實時打包傳輸的研究[J].計算機工程與科學,2017,24(5):168-171.
[4]何圓圓,何凱.基于FFmpeg的H.264視頻解碼器的研究與實現[J].電腦知識與技術,2018,35(8):8519-8521.