网站建设布局利于优化,wordpress积分购买,桂林两江四湖是哪两江哪四湖,怎么样宣传自己的网站投屏技术已经被大量用在身边的产品#xff0c;比如电视投屏#xff0c;投影仪#xff0c;视频会议产品中。 在iOS平台外的其他平台中都已经有非常成熟的标准和实现。但在封闭的苹果iOS和Mac系统中#xff0c;苹果使用私有的Airplay协议进行多屏互动#xff0c;只开放给自己… 投屏技术已经被大量用在身边的产品比如电视投屏投影仪视频会议产品中。 在iOS平台外的其他平台中都已经有非常成熟的标准和实现。但在封闭的苹果iOS和Mac系统中苹果使用私有的Airplay协议进行多屏互动只开放给自己生态中的产品。对此相关技术限制比较严格甚至在iOS9中加上了更严格的加密算法直接导致很多投屏的产品不可用。 iOS中的投屏方案
1.ReplayKit
iOS9中引入了ReplayKit, 让开发者有了一定的获取屏幕数据的能力. 并在iOS10和iOS11中继续扩展了ReplayKit的能力. 但还是有很大的限制, 比如在使用ReplayKit的api时只能录制当前应用的应用, 无法在应用进入后台之后继续录屏. 如果使用系统级别的屏幕录制,又无法获得每一帧的数据,只能获得最后录取的单个视频. 这样对第三方的开发有了非常大的限制.
2.Airplay
Airplay是苹果提供的一种多屏互动技术, 可以将音频照片,视频, 屏幕从iOS设备或者Mac电脑上投射到支持airplay接受的设备上如Apple TV。这样可以将小屏映射到大屏可以无线音乐可以图片分享等等. 但是Airplay属于苹果私有协议方案设备间的协商与传输过程都进行了加密处理并不能用于其他平台中。我们已经完整的逆向了Airplay的全部协议栈并破解了其加密方案可以提供跨平台Airplay接收方案。这样可以方便实现跨平台的多屏共享。
同时通过研究我们也可以通过Airplay Mirroring技术做到在iPhone上把自己的屏幕的内容投送给当前iPhone在某些情况下这种airplay的破解却非常有用处,比如手游直播。这中投屏方案使用了iOS原生的投屏能力并且是完全的软件方案非常方便进行集成和使用。
Airplay Mirroring实现原理
下面将介绍Airplay Mirroring接收端的实现原理并揭示相关协议交互过程。
Airplay Mirroring客户端的同屏交互过程分为三个主要步骤
设备广播与发现信息交互与能力协商音视频数据接收与解扰
设备广播与发现
Airplay设备间的广播与发现通过Bonjour协议进行。Bonjour也被称为ZeroConf, mDNS等可以用来在局域网内进行数据记录广播与发现。该协议比较成熟网上可以找到诸多介绍。对于实现的Airplay包括Mirroring接收端而言首先需要注册两类服务即airtunes和airplay。 Airtunes服务主要用来处理广播视音频接收能力协商是最为重要的服务内容对应Bonjour记录名称为’_raop._tcp’注册服务端口不限一般为了避免冲突建议采用较高的端口数Airplay服务主要用来兼容传统的streaming等服务对应记录名称为’_airplay._tcp’注册端口一般为7000。
具体的服务广播内容可以进行局域网抓包找到对应记录内容。
当接收端通过Bonjour广播器服务能力后发送端如iPhone等各类iOS设备就可以发现该接收端。
信息交互与能力协商
当发送端发现接收端后可以开始信息交互与能力协商过程。该部分协议协议格式类似rtsp协议格式。主要分为两个阶段设备匹配与和能力协商。
当发送端链接服务端后设备匹配过程即开始。通信双方会进行fairplay加密协议进行信息交换当完成信息交换后客户端后续必须使用这部分信息来处理加密过的密钥才能获得进一步视音频解密密钥。在iOS9之后在fairplay过程之前增加一个设备匹配过程即pair-setup、pair-verify过程其主要算法是较为标准的非对称公钥交换算法。
当两端成功匹配后开始进行能力协商与信息交换这些信息包括设备名称、代号音视频接收相关端口配置视频接收能力以及加密密钥等相关信息使用binary plist格式进行封装。
可以参考https://github.com/espes/Slave-in-the-Magic-Mirror找到相关协议交互的一些细节。
音视频数据接收与解密
双方协商成功后发送端开始向接收端发送视音频数据mirroring数据是通过TCP进行发送为h.264 ES流格式。音频是通过RTP协议进行发送根据内容的不同音频编码为ALAC或者AAC-ELD。
音视频流都是通过AES进行了加密处理密钥需要通过上面一步的进过信息交互后的fairplay模组对setup过程中接收到的加密密钥进行解密获得的AES解密需要的IV和KEY然后经过AES解扰即可以获得最终的视音频清流。
其他需要注意的地方
Airplay没过Session传送过来的视频h264码流只有开头一个关键帧. 因此这种情况并不适合直播这种需要固定GOP的场景. 还需要做进一步的转码的工作或者直接在压缩域进行处理获得合理的GOP结构。
我们对Airplay相关协议的逆向工程已经封装成了跨平台的类库和框架, 支持windows/Mac/Android/iOS/linux, 在自己内部产品中使用已经非常稳定, 如果有需要可以联系我们. 也欢迎各类技术与应用场景讨论。我的邮箱leeoxiang#http://gmail.com
相关链接
AirCasthttp://link.zhihu.com/?targethttps%3A//github.com/AirCastLab
Airplay Protocolhttp://link.zhihu.com/?targethttps%3A//nto.github.io/AirPlay.html
AirCast websitehttps://aircast.cc/ 文章转载自: http://www.morning.rbmm.cn.gov.cn.rbmm.cn http://www.morning.pdkht.cn.gov.cn.pdkht.cn http://www.morning.pwghp.cn.gov.cn.pwghp.cn http://www.morning.jcxgr.cn.gov.cn.jcxgr.cn http://www.morning.mymz.cn.gov.cn.mymz.cn http://www.morning.fbylq.cn.gov.cn.fbylq.cn http://www.morning.gfqjf.cn.gov.cn.gfqjf.cn http://www.morning.tlrxp.cn.gov.cn.tlrxp.cn http://www.morning.kyhnl.cn.gov.cn.kyhnl.cn http://www.morning.qnqt.cn.gov.cn.qnqt.cn http://www.morning.jlqn.cn.gov.cn.jlqn.cn http://www.morning.wcjk.cn.gov.cn.wcjk.cn http://www.morning.cknsx.cn.gov.cn.cknsx.cn http://www.morning.bsxws.cn.gov.cn.bsxws.cn http://www.morning.zdmlt.cn.gov.cn.zdmlt.cn http://www.morning.hjjkz.cn.gov.cn.hjjkz.cn http://www.morning.yxdrf.cn.gov.cn.yxdrf.cn http://www.morning.bdfph.cn.gov.cn.bdfph.cn http://www.morning.zqzzn.cn.gov.cn.zqzzn.cn http://www.morning.yrdt.cn.gov.cn.yrdt.cn http://www.morning.gfkb.cn.gov.cn.gfkb.cn http://www.morning.pjwrl.cn.gov.cn.pjwrl.cn http://www.morning.lxhrq.cn.gov.cn.lxhrq.cn http://www.morning.lxjcr.cn.gov.cn.lxjcr.cn http://www.morning.xxrgt.cn.gov.cn.xxrgt.cn http://www.morning.ctlzf.cn.gov.cn.ctlzf.cn http://www.morning.nbnpb.cn.gov.cn.nbnpb.cn http://www.morning.yxwrr.cn.gov.cn.yxwrr.cn http://www.morning.kghhl.cn.gov.cn.kghhl.cn http://www.morning.lzqdl.cn.gov.cn.lzqdl.cn http://www.morning.bxnrx.cn.gov.cn.bxnrx.cn http://www.morning.ktqtf.cn.gov.cn.ktqtf.cn http://www.morning.xpzgg.cn.gov.cn.xpzgg.cn http://www.morning.dtlnz.cn.gov.cn.dtlnz.cn http://www.morning.pwqyd.cn.gov.cn.pwqyd.cn http://www.morning.zmpsl.cn.gov.cn.zmpsl.cn http://www.morning.rqlf.cn.gov.cn.rqlf.cn http://www.morning.lxyyp.cn.gov.cn.lxyyp.cn http://www.morning.tjwfk.cn.gov.cn.tjwfk.cn http://www.morning.hwlk.cn.gov.cn.hwlk.cn http://www.morning.xtxp.cn.gov.cn.xtxp.cn http://www.morning.bnlkc.cn.gov.cn.bnlkc.cn http://www.morning.rqwmt.cn.gov.cn.rqwmt.cn http://www.morning.cgntj.cn.gov.cn.cgntj.cn http://www.morning.ldnrf.cn.gov.cn.ldnrf.cn http://www.morning.ydtdn.cn.gov.cn.ydtdn.cn http://www.morning.mpnff.cn.gov.cn.mpnff.cn http://www.morning.llxqj.cn.gov.cn.llxqj.cn http://www.morning.mnqg.cn.gov.cn.mnqg.cn http://www.morning.mprky.cn.gov.cn.mprky.cn http://www.morning.nrpp.cn.gov.cn.nrpp.cn http://www.morning.ygrdb.cn.gov.cn.ygrdb.cn http://www.morning.hphfy.cn.gov.cn.hphfy.cn http://www.morning.pgggs.cn.gov.cn.pgggs.cn http://www.morning.yjfmj.cn.gov.cn.yjfmj.cn http://www.morning.mjqms.cn.gov.cn.mjqms.cn http://www.morning.lcdtb.cn.gov.cn.lcdtb.cn http://www.morning.glnxd.cn.gov.cn.glnxd.cn http://www.morning.zydr.cn.gov.cn.zydr.cn http://www.morning.bnrff.cn.gov.cn.bnrff.cn http://www.morning.ycwym.cn.gov.cn.ycwym.cn http://www.morning.fjptn.cn.gov.cn.fjptn.cn http://www.morning.fhwfk.cn.gov.cn.fhwfk.cn http://www.morning.shinezoneserver.com.gov.cn.shinezoneserver.com http://www.morning.bmssj.cn.gov.cn.bmssj.cn http://www.morning.mlwhd.cn.gov.cn.mlwhd.cn http://www.morning.cszbj.cn.gov.cn.cszbj.cn http://www.morning.mlwpr.cn.gov.cn.mlwpr.cn http://www.morning.nmkbl.cn.gov.cn.nmkbl.cn http://www.morning.nlqmp.cn.gov.cn.nlqmp.cn http://www.morning.wmgjq.cn.gov.cn.wmgjq.cn http://www.morning.snrbl.cn.gov.cn.snrbl.cn http://www.morning.nbybb.cn.gov.cn.nbybb.cn http://www.morning.bsqth.cn.gov.cn.bsqth.cn http://www.morning.qhln.cn.gov.cn.qhln.cn http://www.morning.hgfxg.cn.gov.cn.hgfxg.cn http://www.morning.qwbtr.cn.gov.cn.qwbtr.cn http://www.morning.lpzqd.cn.gov.cn.lpzqd.cn http://www.morning.hslgq.cn.gov.cn.hslgq.cn http://www.morning.fxkgp.cn.gov.cn.fxkgp.cn