支持视音频和图片无线传屏以及屏幕镜像的Airplay的前世今生

    AirPlay初期命名为AirTunes,它是由苹果公司在2004年发布,意在将iTunes上的流音频文件通过无线技术传输至扬声器(扬声器与AirPort Express连接)。2010年乔布斯将AirTunes更名为AirPlay。当时苹果已为AirPlay扩展了播放视频/相片流的功能,并将其整合到Apple TV中。虽然iTunes已经可以在Apple TV上重播流音频和视频文件,但还是无法从其它应用上获取音、视频流。加上AirPlay本身具有对流媒体数据加密的程序,所以第三方开发者通常很难把数据发送至AirPlay的设备上。

    苹果的AirPort Express既是一款迷你WiFi路由,同时也是一个无线音乐终端。利用它内置的音频输出接口连接音箱,用户即可直接播放电脑iTunes曲库或苹果授权第三方软件软件(AirTunes)、iOS设备(AirPlay)上的音乐,直接输出到音箱。也就是说早的时候想试用Airplay要么使用AirPort Express硬件,要么得到苹果授权。不过人民的力量是无穷的,国外牛人开发者James Laird帮我们搞定了这个,其女友由于搬家,AirPort Express远程播放音乐的方案无法继续使用。他原本认为自己编写一个AirPort Express模拟器,就可以在电脑上用软件的方式接收流媒体信号播放。但结果令人失望,因为苹果对AirPort Express加了密。James Laird却迎难而上,通过拆解AirPort Express,读取其ROM数据进行反向工程,他拿到了AirPort Express的私有密钥,将其公之于众,并很快写出了自己的虚拟流媒体终端软件ShairPort。其实我们现在使用的基于安卓平台的Airplay就是利用的James Laird公布的AirPort Express的私有密钥,一般的安卓智能盒子的解决方式是使用WaxRain开发的Airplay DMR安装在盒子里面,然后安卓手机平板使用DLNA,IOS设备使用Airplay。Airpaly DMR里面就是使用James Laird公布的AirPort Express的私有密钥,所以他的软件是免费的,这也就造福了我们这些用户。

    2011的WWDC苹果推出作为IOS 5的一个非常重要功能也就是AirPlay的升级功能AirPlay Mirroring(Airplay镜像输出),利用它通过Apple TV硬件将iPhone4s/iPad 2上画面镜像输出到TV上。它将iPad变成一个强大的电视应用平台,能在电视上渲染任何应用,同时允许用户使用其触摸屏设备来浏览、选择、导航,诸如此类。想要完全利用这种能力,开发者需要创造“DualScreenApps”,这些应用能感知到AirPlay服务、TV(显示器)、本地iOS屏幕。基于iPad有丰富的互动界面,同时又能在电视上渲染输出媒体内容,这个是非常好的一种体验方式,通过TV大屏幕看电影、玩游戏是当时很多设备基本不能实现的一个功能。

    实现Airplay Mirroring对于硬件也是有要求的,目前只有A5处理器以上的iOS设备iPhone 4s、iPad2、new ipad 和新推出的iphone5才可以支持。Mac OSX 10.8 Mountain Lion的AirPlay镜像功能允许用户通过AppleTV(第2、3代),将他们的整个Mac桌面无线转移至TV上。AirPlay的镜像功能支持以下Mac设备:iMac(2011年中及以后)、Macmini(2011年中及以后)、MacBook Air(2011年中及以后)以及MacBook Pro (2011年初及以后)。AirPlay 镜像功能要求 GPU 能够进行 H.264 编码,或者在设备的图形处理芯片上压缩视频的能力,而无需 CPU 参与这部分运算。如果缺少物理硬件的支持,画面镜像会吃掉大量 CPU 资源,也就意味着系统性能会降到苹果公司无法容忍的程度。对于A5处理器芯片组而言,苹果编写了自己的驱动,以便访问 GPU 内置的 H.264 编码功能,既然屏幕上显示的一切内容都已存于显卡的帧缓冲区中,苹果需要做的就只是进行比例缩放(这是 AirPlay镜像中最有价值的部分,正因为此,AirPlay镜像的最佳分辨率是1:1),以及色彩空间转换(H.264视频需要YUV色彩空间),以及GPU上进行的实际编码处理。然后,苹果只需将这个轻微编码后的视频传输到Apple TV即可。而且苹果在这个过程中使用了不同于已经被James Laird破解公布的AirPort Express私有密钥的其他密钥。

    就是因为这个新的私钥没有被破解,一直很少有什么比较稳定可用的实现AirPlay Mirroring功能的第三方应用,目前市面出售的各种盒子,如小米盒子、快播大屏幕,等等,都只能支持AirPlay的视音频图片共享,而不支持屏幕镜像功能。国外有reflector、AirServer等软件可以支持,不知道从哪搞到的协议。也有一些APP软件可以实现无线传屏的功能,但几乎无一例外都需要ios系统越狱,这不科学。。。安卓系统除了Miracast协议以外,有不少的开源软件可以支持屏幕镜像功能,相对来说简单很多,这也是这一大堆盒子都很好地支持安卓系统的原因。

    期待尽快出现能完美支持android/ios/windows等多种系统屏幕共享的产品。。。

你可能感兴趣的:(支持视音频和图片无线传屏以及屏幕镜像的Airplay的前世今生)