如何实现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 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 协商请求进行握手

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

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

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

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

有问题QQ交流:453267798

 

 

 

 

 

 

 

 

 

 

 

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值