AirPlay
AirPlay 是苹果开发的一种无线技术,可以通过WiFi将iPhone 、iPad、iPod touch 等iOS 设备上的包括图片、音频、视频通过无线的方式传输到支持AirPlay 设备。
DLNA
DNLA,DigitalLiving Network Alliance,是索尼、英特尔、微软等发起的一套 PC、移动设备、消费电器之间互联互通的协议。它们的宗旨是“随时随地享受音乐、照片和视频”。据说苹果当时也是DLNA联盟的成员,而后来退出了并自立门户。
Miracast
2012年11月中旬,Google发布了Android4.2。虽然它和Android 4.1同属Jelly Bean系列,但却添加了很多新的功能。其中在显示部分,Android 4.2在Project Butter基础上再接再厉,新增了对Wi-Fi Display功能的支持。由此也导致整个显示架构发生了较大的变化。
Miracast是由Wi-Fi联盟于2012年所制定,以Wi-Fidirect为基础的无线显示标准。支持此标准的设备可通过无线方式分享视频画面,例如手机可通过Miracast将影片或照片直接在电视或其他装置播放而无需受到连接线缆长度的影响。
Miracast一个重要功能就是支持Wi-Fi Direct。但它也考虑了无线网络环境中存在AP设备的情况下,设备之间的互联问题。如下图所示的四种拓扑结构。
Miracast的大体工作流程:
Miracast以session为单位来管理两个设备之间的交互的工作
主要步骤包括(按顺序):
· Device Discovery:通过Wi-Fi P2P来查找附近的支持Wi-Fi P2P的设备。
· Device Selection:当设备A发现设备B后,A设备需要提示用户。用户可根据需要选择是否和设备B配对。
· Connection Setup:Source和Display设备之间通过Wi-Fi P2P建立连接。根据Wi-Fi Direct技术规范,这个步骤包括建立一个Group Owner和一个Client。此后,这两个设备将建立一个TCP连接,同时一个用于RTSP协议的端口将被创建用于后续的Session管理和控制工作。
· CapabilityNegotiation:在正式传输视音频数据前,Source和Display设备需要交换一些Miracast参数信息,例如双方所支持的视音频格式等。二者协商成功后,才能继续后面的流程。
· SessionEstablishment and streaming:上一步工作完成后,Source和Display设备将建立一个Miracast Session。而后就可以开始传输视音频数据。Source端的视音频数据将经由MPEG2TS编码后通过RTP协议传给Display设备。Display设备将解码收到的数据,并最终显示出来。
· User Input backchannel setup:这是一个可选步骤。主要用于在传输过程中处理用户发起的一些控制操作。这些控制数据将通过TCP在Source和Display设备之间传递。
· Payload Control:传输过程中,设备可根据无线信号的强弱,甚至设备的电量状况来动态调整传输数据和格式。可调整的内容包括压缩率,视音频格式,分辨率等内容。
· Session teardown:停止整个Session。
通过对上面背景知识的介绍,读者可以发现:
· Miracast本质就是一个基于Wi-Fi的网络应用。这个应用包括服务端和客户端。
服务端和客户端必须支持RTP/RTSP等网络协议和相应的编解码技术。
Miracast 视音频格式支持
分辨率 | 17种 CEA格式,分辨率从640*480到1920*1080,帧率从24到60 29种VESA格式,分辨率从800*600到1920*1200,帧率从30到60 12种手持设备格式,分辨率从640*360到960*540,帧率从30到60 |
视频 | H.264高清 |
音频 | 必选:LPCM 16bits,48kHz采样率,双声道 可选: LPCM 16bits,44.1kHz采样率,双声道 Advanced Audio coding Dolby Advanced Codec 3 |
Wi-Fi Direct标准是指允许无线网络中的设备无需通过无线路由器即可相互连接。
与蓝牙技术类似,这种标准允许无线设备以点对点形式互连,而且在传输速度与传输距离方面则比蓝牙有大幅提升
DLNA与Airplay区别:
DLNA与苹果的AirPlay功能比较类似,协议也大体相同,他们都可以让你手机中的媒体内容投放到电视屏幕里。不同的是手机上的DLNA 并没有类似Apple TV的AirPlay 的镜像功能,也没有Apple TV 所支持的双屏体游戏体验。目前DLNA更多只是能将手机的照片和视频投送到大屏幕中。
DLNA和Miracast区别:
DLNA是基于文件的,媒体文件可能有各种各样的编码格式,播放器这端必须能够处理这么多种编码格式。通常为了比较好的播放体验,DLNA会先缓存一小段时间。
Miracast是实时的,它可以实时传输源端(Source)的输出。源端任何屏幕的操作都会被传输到接收(Sink)端。如果源端是播放媒体文件,源端负责先对媒体文件解码,然后再编码成H.264的格式。接收端只需要做H.264的解码就可以了。相对DLNA,Miracast对于WiFi通路的要求要更高一些。与DLNA不同的是,Miracast 也有类似于AirPlay 的镜像功能,可以将手机中屏幕内容直接投放到高清电视屏幕里,这样你也可以通过电视屏幕来玩游戏了。