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等网络协议和相应的编解码技术。