Android下的Miracast傳屏技術
Android下的Miracast傳屏技術
實際上,Miracast是Wi-Fi聯盟(Wi-FiAlliance)對支持Wi-FiDisplay功能的設備的認證名稱。通過Miracast認證的設備將在最大程度內保持對Wi-FiDisplay功能的支持和兼容。由此可知,Miracast考察的就是NM-FiDisplay(木文后續將不再區分Miracast和V^nFiDisplay)。而WiFiDisplay的核心功能就是讓設備之間通過Wi-Fi無線網絡來分享視音頻數據。

Miracas的支撐體系結構:11n/WMM/WPA2—WiFi_ProtectSetup—WiFi_Direct—WiFi_Miracast
WiFi_Direct:即Wi-FiP2P,支持在沒有AP(AccessPoint)的情況下,兩個Wi-Fi設備直連并通信。
WiFi_ProtectSetup:用于幫助用戶自動配置Wi-Fi網絡、添加Wi-Fi設備等。
11n/WMM/WPA2:其中lln指802.11n協議:WMM即Wi-FiMultiMedia,是一種針對實時視咅頻數據的QoS服務:而WPA2即Wi-FiProtectedAccess第二版,主要用來給傳輸的數據進行加密保護。
上述技術展,絕大部分功能由硬件廠商實現,而在Android中,對Miracast來說最重要的是兩個基礎技術:
一是Wi-FiDirect,該功能由Android中的WifiP2pService宋管理和控制;
二是Wi-FiMultiMedia,為了支持Miracast,Android4.2對MultiMedia系統也進行了修改。
Miracast以session為單位來管理兩個設崙之間的交互工作,主要步驟包括(按順序):

DeviceDiscovery:通過Wi-FiP2P來査找附近支持Wi-FiP2P的設備。
DeviceSelection:當設備A發現設備B后,A設備浠要提示用戶》用戶可根據蘺要選擇是否和設備BSi對。
ConnectionSetup:Source和Display設格之間通過Wi-FiP2P速立連接》根據Wi-FiDirect技術規范,這個步驟括建立一個GroupOwner和一個Client。此后,這兩個設備將建立一個TCP連接,同時一個用于RTSP協議的端U將被創違用于后續的Session管理和控制工作。
CapabilityNegotiation:在正式傳輸視咅頻數據前,Source和Display設備滿要交換一些Miracast參數位總,如雙方所支持的視咅頻格式,二#協商成功后,才能繼續后面的流程。
SessionEstablishmentandStreaming:上一步工作完成后,Source和Display設備將速立一個MiracastSession,ifil后就可以開始傳輸視咅頻數據。Source端的視咅頻數據將經由MPEG2TS編碼后通過RTP協議傳給Display設備,Dispiay設備將解碼收到的數據并顯示出來。
UserInputbackchannelset叩:這是一個可選步驟,主要用于在傳輸過程中處理用戶發起的一些控制操作,這些控制數據通過TCP在Source和Display設備之間傳遞。
PayloadComrol:傳輸過程中,設備可根據無線倍號的強弱,甚至設備的電S狀況來動態調整傳輸數據和格式??烧{笹的內容包括壓縮率,視齊頻格式,分辨率等內容。
Sessionteardown:停止整個Session。
綜上所述,Miracast本質上就是一個包栝服務端和客戶端的基Wi-Fi的網絡應用,服務端和客戶端必須支持RTP/RTSP等網絡協議和相應的編解碼技術。
