ios airplay mirroring镜像

要实现airPlay的镜像Server端功能,要从以下几个方面来考虑

 

1.发现过程

 

 

2.协商过程

 

 

 

3.视频传输

 

 

4.解密过程

 

 

发现过程

使用Bonjour,可以参考mDNSResponder,jmdns,注册两个服务:airtunes和airplay,AirplayTxt以及RaopTxt照着demo填写就可以了,也可以根据自己的要求修改其中的值,

需要注意的如下:

airtunes:   “12345@wirelessdisplay” , ”_raop._tcp.”

airplay:    “wirelessdisplay” , ”_airplay._tcp.”

参数中”_airplay._tcp.”和’’_raop._tcp.”不可修改。

发布了服务之后,ios设备中应该就可以搜索到Server端了

 

主要有以下协商过程

c-s: pair-setup

 ios airplay mirroring镜像_第1张图片

s-c: xxx

 ios airplay mirroring镜像_第2张图片

c-s: pair-verify

 ios airplay mirroring镜像_第3张图片

s-c: xxx

 ios airplay mirroring镜像_第4张图片

c-s: fp-setup

 ios airplay mirroring镜像_第5张图片

s-c: xxx

 ios airplay mirroring镜像_第6张图片

c-s: fp-setup

 ios airplay mirroring镜像_第7张图片

s-c: xxx

 ios airplay mirroring镜像_第8张图片

setup

 ios airplay mirroring镜像_第9张图片

setup response

 ios airplay mirroring镜像_第10张图片

setup

 ios airplay mirroring镜像_第11张图片

setup respnose

 ios airplay mirroring镜像_第12张图片

 

pair-setup,pair-verify配对验证,Server端根据收到的信息进行回复,格式类似RTSP

fp-setup(第一次和第二次),Fairplay相关。

第一次setup阶段会收到一大串数据,是按照plist格式生成的,用相应的方法进行解析可以得到ekey和eiv等信息,用于后续的解密。

第二次setup阶段获得type,通过type来判断视频数据或音频数据,通知接收端建立传输通道准备进行音视频数据的发送,加密过的屏幕镜像数据通过指定的端口(一般为7100)发送到接收端。

接收端收到发送过来的数据后进行解密,解密后的数据就可以进行播放了。

中间也可能会有GET_PARAMETER,SET_PARAMETER来调整音量等信息。

 

关于解密部分目前主要有两种方法:

1.从apptv或macOS获取。

2.从市面上已有的可投屏产品中获取。

 

 技术交流有兴趣请加:
 音视频技术交流群:308601278
 无线投屏技术交流群:582349005
 
 详情可访问我司官网 必捷网络|因必捷而简单
 商务合作请至邮件[email protected]

你可能感兴趣的:(AirPlay)