Android Wi-Fi Display(Miracast)介紹

Android Wi-Fi DisplayMiracast)介紹

201211月中旬,Google發佈了Android 4.2。雖然它和Android 4.1同屬Jelly Bean系列,但卻添加了不少新的功能。其中,在顯示部分,Android 4.2Project Butter基礎上再接再礪,新增了對Wi-Fi Display功能的支持。由此也致使整個顯示架構發生了較大的變化。web

本文首先介紹Wi-Fi Display的背景知識,而後再結合代碼對Android 4.2Wi-Fi Display的實現進行介紹。網絡

一背景知識介紹

Wi-Fi Display常常和Miracast聯繫在一塊兒。實際上,MiracastWi-Fi聯盟(Wi-Fi Alliance)對支持Wi-Fi Display功能的設備的認證名稱。經過Miracast認證的設備將在最大程度內保持對Wi-Fi Display功能的支持和兼容。由此可知,Miracast考察的就是Wi-Fi Display(本文後續將再也不區分MiracastWi-Fi Display)。而Wi-Fi Display的核心功能就是讓設備之間經過Wi-Fi無線網絡來分享視音頻數據。以一個簡單的應用場景爲例:有了Wi-Fi Display後,手機和電視機之間能夠直接藉助Wi-Fi,而無需硬連線(如HDMI)就可將手機中的視頻投遞到TV上去顯示[①]。以目前智能設備的發展趨勢來看,Wi-Fi Display極有可能在較短期內幫助咱們真正實現多屏互動。session

從技術角度來講,Wi-Fi Display並不是另起爐竈,而是充分利用了現有的Wi-Fi技術。圖1所示爲Wi-Fi Display中使用的其餘Wi-Fi技術項。架構

1 Miracast的支撐體系結構ide

由圖1可知,Miracast依賴的Wi-Fi技術項[②]有:post

  • Wi-Fi Direct,也就是Wi-Fi P2P。它支持在沒有APAccess Point)的狀況下,兩個Wi-Fi設備直連並通訊。
  • Wi-Fi Protected Setup:用於幫助用戶自動配置Wi-Fi網絡、添加Wi-Fi設備等。
  • 11n/WMM/WPA2:其中,11n就是802.11n協議,它將11a11g提供的Wi-Fi傳輸速率從56Mbps提高到300甚至600MbpsWMMWi-Fi Multimedia的縮寫,是一種針對實時視音頻數據的QoS服務。而WPA2意爲Wi-Fi Protected Acess第二版,主要用來給傳輸的數據進行加密保護。

上述的Wi-Fi技術中,絕大部分功能由硬件廠商實現。而在Android中,對Miracast來講最重要的是兩個基礎技術:編碼

  • Wi-Fi Direct:該功能由Android中的WifiP2pService來管理和控制。
  • Wi-Fi Multimedia:爲了支持MiracastAndroid 4.2MultiMedia系統也進行了修改。

下邊咱們對Miracast幾個重要知識點進行介紹,首先是拓撲結構和視音頻格式方面的內容。加密

Miracast一個重要功能就是支持Wi-Fi Direct。但它也考慮了無線網絡環境中存在AP設備的狀況下,設備之間的互聯問題。讀者可參考如圖2所示的四種拓撲結構。spa

2  Miracast的四種拓撲結構.net

2所示內容比較簡單,此處就再也不詳述。另外,在Wi-Fi Display規範中,還存在着SourceVideoAudio內容分別傳送給不一樣Render Device的狀況。感興趣的讀者可參考Wi-Fi Display技術規範。

另外,Miracast對所支持的視音頻格式也進行了規定,如表1所示。

1  Miracast 視音頻格式支持

分辨率

17 CEA格式,分辨率從640*4801920*1080,幀率從2460

29VESA格式,分辨率從800*6001920*1200,幀率從3060

12種手持設備格式,分辨率從640*360960*540,幀率從3060

視頻

H.264高清

音頻

必選:LPCM 16bits48kHz採樣率,雙聲道

可選:

LPCM 16bits44.1kHz採樣率,雙聲道

Advanced Audio coding

Dolby Advanced Codec 3

最後,咱們簡單介紹一下Miracast的大致工做流程。Miracastsession爲單位來管理兩個設備之間的交互的工做,主要步驟包括(按順序):

  • Device Discovery:經過Wi-Fi P2P來查找附近的支持Wi-Fi P2P的設備。
  • Device Selection:當設備A發現設備B後,A設備須要提示用戶。用戶可根據須要選擇是否和設備B配對。
  • Connection SetupSourceDisplay設備之間經過Wi-Fi P2P創建鏈接。根據Wi-Fi Direct技術規範,這個步驟包括創建一個Group Owner和一個Client。此後,這兩個設備將創建一個TCP鏈接,同時一個用於RTSP協議的端口將被建立用於後續的Session管理和控制工做。
  • Capability Negotiation:在正式傳輸視音頻數據前,SourceDisplay設備須要交換一些Miracast參數信息,例如雙方所支持的視音頻格式等。兩者協商成功後,才能繼續後面的流程。
  • Session Establishment and streaming:上一步工做完成後,SourceDisplay設備將創建一個Miracast Session。然後就能夠開始傳輸視音頻數據。Source端的視音頻數據將經由MPEG2TS編碼後經過RTP協議傳給Display設備。Display設備將解碼收到的數據,並最終顯示出來。
  • User Input back channel setup:這是一個可選步驟。主要用於在傳輸過程當中處理用戶發起的一些控制操做。這些控制數據將經過TCPSourceDisplay設備之間傳遞。
  • Payload Control:傳輸過程當中,設備可根據無線信號的強弱,甚至設備的電量情況來動態調整傳輸數據和格式。可調整的內容包括壓縮率,視音頻格式,分辨率等內容。
  • Session teardown:中止整個Session

經過對上面背景知識的介紹,讀者能夠發現:

  • Miracast本質就是一個基於Wi-Fi的網絡應用。這個應用包括服務端和客戶端。
  • 服務端和客戶端必須支持RTP/RTSP等網絡協議和相應的編解碼技術。
相關文章
相關標籤/搜索