如何实现Miracast多个设备同时连接投屏

不知道大家对无线同屏技术有了解多少,目前无线投影技术已经普及起来,市面已经出现终端设备支持无线投影比如:机顶盒 智能电视 智能办公投影设备等 , 那目前支持投屏的技术有哪些呢?下面是目前三种主流同屏技术的介绍:DLNA、AirPlay Miracast。DLNA与苹果的AirPlay功能比较类似,协议也大体相同,他们都可以让你手机中的媒体内容投放到电视屏幕里。不同的是手机上的DLNA 并没有类似Apple TV的AirPlay的镜像功能,也没有Apple TV 所支持的双屏体游戏体验。目前DLNA更多只是能将手机的照片和视频投送到大屏幕中,Miracast功能跟AirPlay类似支持镜像功能,不过AirPlay是苹果公司开发的技术,真正无线投影技术走进大家视线的是应该是google开发的Miracast技术,伴随着Android的流行 Miracast技术慢慢的被大家所熟知。这里重点介绍下Miracast相关技术:

Miracast建立在其他几项Wi-Fi联盟所发展的基础技术之上,包括无线传输技术802.11n(相容于未来其他传输规格如802.11ac)、点对点连接技术的Wi-Fi Direct与TDLS(Tunneled Direct Link Setup)、安全性方面的WPA2(Wi-Fi Protected Access 2)加密以及方便使用者配置网路的WPS技术。当然也涉及Miracast无线投屏技术也称为Wifi-display,是WIFI联盟开发的一套规范 官网可以查看具体技术细节。这里推荐一篇文章深入理解P2P:https://blog.csdn.net/ztguang/article/details/51015976 先理解下Android Wifi P2P技术细节。

回到主题如何实现多个设备同时连接呢?  要实现多个Miracast sink端设备连接, 首先底层要实现建立多个物理链路 即实现WIFI P2P多个设备连接,其中一个设备做Group Owner管理其余的Group client设备,可以把Group Owner当成AP功能 其余设备是STA设备一个站点。查看下图是WIFI P2P官网1:n个逻辑图。

 

如何实现Miracast多个设备同时连接投屏_第1张图片

Miracast sink端做P2P Group Owner,其余Miracast source端设备做 P2P Group Client 端,当手机端设备需要投屏时首先搜索Sink端设备然后发起P2P连接,其次是上层rtsp rtp等相关握手协议交互数据等。当其中2个连接成功后另外的几个设备只能搜索到做Group Owner的设备,做Group Client端的设备是无法被发现的,所以要实现多个设备同时连接的关键是成为Group Owner 成为P2P Group Owner呢?2个P2P设备连接中协商谁成为Group Owner,如下图首先发起GO 协商请求进行握手

如何实现Miracast多个设备同时连接投屏_第2张图片

上图只是协商GO封包过程,其中谁成为GO Owner还涉及到一个 Group Owner intent值从下图可以得知谁的Intent 值高就成为GO, 如果Intent值相同就需要判断请求封包Tie breaker位,如果2个设备都强制做Group Owner则这次协商失败。

如何实现Miracast多个设备同时连接投屏_第3张图片

当Sink端成为Group Owner后其它设备如何发现这个设备的呢? 成为GO设备后 会发出beacon当对方发出request请求封包时会回复beacon封包让对方可见,如下图。所以支持多个设备连接关键是让sink变成Group Owner设备。

如何实现Miracast多个设备同时连接投屏_第4张图片

Wifi P2P底层支持多个设备连接后接下来就是上层协议的实现:比如RTSP RTCP RTP协议等 这个只需要实现单个协议连接即可多个设备连接就类似一个list功能保存多个连接即可,我们看下RTSP部分如下图,这里不做具体详细介绍,网络可以搜索到大量相关协议技术细节。

如何实现Miracast多个设备同时连接投屏_第5张图片

剩下RTP RTCP协议从网络可以找到很多文档,这里不做介绍,总之实现Miracast多个设备同时投屏连接需要首先P2P连接剩下的就是Miracast上层协议,Miracast上层协议可以从WIFI 无线联盟官网下载Wifi-Display Spec

有问题QQ交流:453267798

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Wifi,Miracast)