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功能的支持。由此也導致整個顯示架構發生了較大的變化。

本文首先介紹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極有可能在較短時間內幫助我們真正實現多屏互動。

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

1 Miracast的支撐體系結構

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

  • 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所示的四種拓撲結構。

2  Miracast的四種拓撲結構

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等網絡協議和相應的編解碼技術。

 

http://blog.csdn.net/innost/article/details/8474683







發佈了369 篇原創文章 · 獲贊 587 · 訪問量 533萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章