多屏互动/无线投屏的标准协议之一的miracast/widi(wi-fi display technical specification)在2017/4/21发布了2.0版本(release 2 final version), 在2017/7/31发布了2.1版本
此次修改,增加了不少内容,本文将对此梳理一下.
改动1:增加了新的发现方式.
原来的接收端要寻找接收端是通过wifi-p2p进行发现的, version 2版本增加了mdns发现方式, mdns底层需要bss(ap)/ip网支持. mdns在很多领域都有应用,其中airplay的发现过程就是使用的mdns.
mdns的机制我们不在这里详述,有兴趣的同学可以访问
改动2:连接建立过程
在版本1中, rtsp tcp的建立是由sink端建立的, 而版本2中,如果走mdns/ip方式, 则tcp的建立是source端发起,并发送tcp syn包至sink, 通过协商, 再确定rtsp tcp的链接方式, 再由sink端发起rtsp tcp链接
改动3:媒体传输方式
在版本2中,承载音频和视频的rtp可以通过tcp和udp进行传输,而且可以随时切换, 并且为了音视频的传输质量, 特意增加了几个rtsp信令,用于调节buffer缓存, 分别是:
wfd2-transport-switch/wfd2-buffer-length/wfd2-audio-playback-status/wfd2-video-playback-status
改动3:媒体协商
版本2中,增加了很多媒体格式,所有协商过程变动更加复杂
改动4:增加视频格式
版本1中,视频大小支持1080p/h264, 版本2中,支持最高到4kp60, 格式增加h265
改动5:增加辅流
版本1中是没有辅流选项的, 辅流格式主要有png/jpeg/h264
改动6:增加音频格式
增加cta audio/aac-eldv2格式
改动7:增加音频格式
增加了不少命令, 其中有一个wfd2-direct-streaming-mode比较有意思, 他是从source发往sink的,用于表示主流是否在激活状态. 此命令还没有实测,实际效果不知如何
总体来讲, miracast/widi新版本的修改主要目的就是增加音视频传输的质量, 其中mdns和tcp的增加,主要借鉴airplay, p2p的性能太依赖网卡质量导致有些场景p2p传输质量较差的问题.
也增加了流量控制方面命令,用于再网络情况较差的情况下,调整传输码流
当然更重要的是支持了h265, 在当前,在同等质量下, h265是能够显著的降低码流的唯一手段
更多多屏互动/无线投屏的软件凯发官方的解决方案,可访问//www.bijienetworks.com/wirelessdisplay-sdk/