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

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

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