支持的 Miracast 特定功能
Windows 客户端提供符合标准的 Miracast 源实现。 此外,我们还添加了对多个扩展的支持,以改善整体体验。 构建 Miracast 接收器的制造商应支持以下功能、扩展和技术,以提供高质量的 Miracast 体验。
Wi-Fi 功能
遥测的 WPS 信息元素 (IE) 属性的实现:Windows 捕获有关当今市场上数百种 Miracast 接收器型号中 Miracast 连接成功或失败的信息。 通过设置几个简单的属性,Windows 可以识别 Windows 客户端连接到的设备类型。 这样,如果我们发现不兼容或质量突然下降,我们能够联系到你这个硬件合作伙伴。
需要你在 WPS 中填写以下 WPS 信息元素 (IE) 属性。 我们在 Windows 上使用的具体映射是:
WPS:Manufacturer:请输入制造商的名称,可以是 OEM 或 OEM + 芯片集 IHV,例如:Microsoft
WPS:Model:这是设备的唯一模型,例如:MWDA
WPS:Model-Number:用于存储固件版本,例如:1.3.8350
EAPOL 关键帧中的 IP 地址分配:在 EAPOL 关键帧内实现 IP 寻址分配,通过将 IP 地址包含在 Wi-Fi Direct 交换本身中,减少连接所需的时间。 建立连接后,电脑无需执行 DHCP 地址分配,因此连接速度会更快。
扩展通道切换公告 (eCSA):在几乎所有情况下,如果 Windows 10 设备连接到 Miracast 接收器,它也会同时连接到 Wi-Fi 接入点进行 Internet 连接。 在许多情况下,接收器和 Wi-Fi 接入点将位于不同的无线信道上。 这种类型的多通道模式通常会导致视频质量下降;无线设备必须持续在通道之间进行,以保持两个终结点同时的连接性。 Windows 客户端有时可以确定多通道条件,并使用 eCSA 将多通道条件转换为单通道条件。
支持持久性配置文件:Windows 支持持久性 P2P 组。 接收器支持持久性 P2P 组时,Windows 将执行重新连接而不是配对,因此可以更快速地连接到接收器。 如果接收器不支持持久性配置文件,Windows 10 将在每次尝试连接时执行新的配对,从而导致在流式传输开始之前延迟的时间更长。
连接期间 TCP 重试优化:在建立 RTSP 会话期间,使 TCP 重试间隔保持在非常低的水平。 如果必须重新传输单个消息,则在周期的早期执行指数回退会导致较长的连接时间。
GC 与 GO 确定:Windows 客户端会在连接协商期间自动调整其角色。 由于 Miracast 使用 Wi-Fi Direct 连接,Windows 客户端可以动态地承担多个 Wi-Fi Direct 角色之一。 请务必注意,尽管 Windows 客户端希望充当 Wi-Fi Direct GO(意向 14),但它也完全可以充当 GC 或 Auto-GO。
直接关联:如果 Miracast 接收器充当 GO,对等方可能会尝试重新与你连接。 在这种情况下,你将直接从该对等方收到关联请求。 如果不再具有该对等机的配置文件,请使用关联响应帧使关联响应失败,该帧包括状态为(8 - 失败;未知的 P2P 组)的 P2P IE;Windows 10 将使用新的配对请求重试连接。
UIBC 优化:如果计划在 Miracast 接收器上实现 UIBC,请禁用 Nagle 算法,因为它在发送前对帧进行排队。 对光标和键盘帧排队会导致延迟,用户会将其视为迟钝或延迟。 这些类型的数据包应尽快发送,无需排队。
通过现有 Wi-Fi 网络投影:接收器支持通过基础结构网络进行连接时,Windows 10 客户端将首选该连接方法,并基于基础结构建立流式传输。 如果不支持通过现有 W-Fi 网络进行投影或连接尝试失败,Windows 客户端将回退为使用传统 Miracast。
图形功能
支持硬件光标:鼠标光标的移动会显著影响感知到的 Miracast 会话端到端 (E2E) 延迟。 E2E 延迟是指用户移动鼠标与在 Miracast 显示器上呈现移动之间所花费的时间。 在硬件光标出现之前,鼠标是编码视频流的一部分,它与 Miracast 流具有相同的 E2E 延迟。 通常,此延迟超过 100 毫秒。 硬件光标增加了将鼠标外观和坐标直接发送到接收器的功能,以通过 Miracast 流合成它们。 从 Miracast 流发送带外鼠标数据可使鼠标延迟降至 30 毫秒以下。
媒体功能
Microsoft 的 Miracast RTSP 堆栈经过扩展,可以在诊断 Miracast 故障的同时提供扩展功能、更好的流质量、更好的端到端延迟和有用的信息。
诊断功能
Microsoft Miracast 堆栈实现了 MS-WFDPE 中详细介绍的许多第一方和第三方扩展功能。 其中一些扩展功能在诊断 Miracast 故障和创建报告时非常有用。 这些扩展功能包括:
支持 Intel 友好名称:Microsoft Miracast 接收方支持 Intel 的扩展,用于实现友好的(人类可读)接收器名称。 这有助于诊断和报告故障。
支持 Intel 的接收器设备 URL:Microsoft Miracast 接收器支持 Intel 的扩展,用于为 Miracast 接收器提供产品信息 URL。 这有助于诊断和报告故障。
支持 Intel 的接收器制造商徽标:Microsoft Miracast 接收器支持 Intel 的扩展,用于指定代表 Miracast 接收器制造商的图像。 这有助于诊断和报告故障。
支持 Intel 的接收器制造商名称:Microsoft Miracast 接收器支持 Intel 的扩展,用于指定 Miracast 接收器制造商的名称。 这有助于诊断和报告故障。
支持 Intel 的接收器型号名称:Microsoft Miracast 接收器支持 Intel 的扩展,用于指定 Miracast 接收器制造商的型号名称。 这有助于诊断和报告故障。
支持 Intel 的接收器版本:Microsoft Miracast 接收器支持 Intel 的扩展,用于指定 Miracast 接收器的固件。 这有助于诊断和报告故障。
支持增强的诊断:Microsoft Miracast 源支持增强的诊断协议扩展,该扩展使 Miracast 接收器能够向 Miracast 源报告错误和原因代码。
支持源接收器版本:Microsoft Miracast 接收器支持显示源标识,该标识允许使用 Miracast 源的版本号,并允许为当前 Miracast 会话使用唯一的标识符。 这些属性有助于诊断和报告故障。
支持 IDR 请求:Microsoft Miracast 源支持在 RTSP M13 消息期间发送即时解码器 (IDR) 刷新请求。 如果丢弃的包过多,或者 Miracast 接收器本身无法请求 IDR 帧,IDR 可以改进视频流。
支持其他视频格式:Microsoft Miracast 源支持其他视频格式,包括:
- 带扩展的 CEA 分辨率和刷新率
- 带扩展的 VESA 分辨率和刷新率
- 带扩展的显示屏本机分辨率和刷新率
- 带扩展的配置文件位图
- 带扩展的级别位图
- 4K 和 HEVC 编码(如果可用)
性能增强功能
Microsoft 支持扩展,这使 Miracast 接收器在某些情况下性能更佳。 这些扩展包括:
帧结束标记:Microsoft Miracast 源重新利用 RTP 包头的 M 位来表示 RTP 包中帧的末尾。 寻找 M 位的 Miracast 接收器可以通过开始解码 RTP 包中包含的帧来节省时间,而不是等待下一个 RTP 包带着下一帧的标头到达。
延迟管理:在提供更高的流质量与实现更低的延迟之间总是需要进行权衡。 交互式内容受益于最低的延迟,可能会在质量上有所妥协。 相反,媒体内容在具有高质量的流时效果最佳;在延迟方面做出妥协是可以接受的。 Microsoft 使接收器能够动态响应用户正在执行的操作。 通过引入延迟角色,Miracast 接收器可以根据用户的意图调整延迟。
值 | 说明 |
---|---|
低 | 指定 Wi-Fi 显示接收器应将延迟保持在 50 毫秒以下。 |
正常 | 指定 Wi-Fi 显示接收器应将延迟保持在 100 毫秒以下。 |
高 | 指定 Wi-Fi 显示接收器应缓冲其他帧以确保流畅播放,只要延迟保持在 500 毫秒以下即可。 |
流增强功能
Microsoft Miracast 源支持可生成更好流质量的扩展。 这些扩展包括:
支持 CABAC:Microsoft Miracast 源增加了对上下文自适应二进制算术编码 (CABAC) 的支持,该技术用于 AVC (H264) 基线配置文件和高配置文件。 这会生成更有效的编码,因此可以使用较少的带宽来传输 Miracast 流。
动态切换分辨率和帧速率 动态分辨率和刷新速率扩展允许 Miracast 源更改视频流的视频分辨率或视频刷新率,而无需向 Miracast 接收器发送额外的实时流式处理协议 (RTSP) 消息。 如果支持,Miracast 接收器会监视 H.264 流中的序列参数集/图片参数集 (SPS/PPS),用于获取对视频分辨率或视频帧速率的更改。 接收器适应此类变化,而不会显示任何可见的变化,例如闪烁或黑屏。
扩展的功能
Microsoft 支持扩展,这使 Miracast 接收器在某些情况下性能更佳。 这些扩展包括:
UIBC 支持:用户输入返回通道 (UIBC) 是一项可选功能,用于将输入命令从 Miracast 接收器发送到 Miracast 发送器进行处理。 然后,用户可以自然地与 Miracast 接收器的外围设备进行交互。 例如,连接到 Miracast 接收器的键盘/鼠标/触控板/笔输入可以作为 Miracast 源的输入。
Microsoft 实时比特率调制:Microsoft Miracast 源支持使用 RTCP 跟踪用户的当前网络条件。 如果将 RTCP 中的包信息与格式更改功能结合使用,Microsoft Miracast 源将调制比特率以提供流畅的流式传输体验,即使在网络不佳的情况下也是如此。 此外,如果用户的网络条件良好,则比特率会增加,从而提供质量更好的流。
通过现有 Wi-Fi 网络进行无线投影
自创意者更新发布以来,Windows 已更新为支持通过现有 Wi-Fi 网络进行无线投影。 这项功能已在运行创意者更新的所有 Windows 设备上实现,包括 Windows、Surface Hub、Surface Hub 2S 和 Xbox。
基于基础结构功能的 Windows 无线投影利用和构建于 Miracast 最初提供的功能,例如使用 Wi-Fi Direct 进行发现和使用 RTSP 传输视频流,但包含一个单独的机制,用于通过现有网络连接标识到接收器的路由。
接收器制造商清单
功能 | OS 支持 | 依赖于驱动程序支持 | 接收器支持 |
---|---|---|---|
遥测的 WPS 信息元素属性 | Windows 10 | 空值 | 必须 |
EAPOL 关键帧中的 IP 地址分配 | Windows 10 | 空值 | 建议 |
扩展通道切换公告 | Windows 10 | Wi-Fi 驱动程序 | 建议 |
通过现有 Wi-Fi 网络进行无线投影 | Windows 10 创意者更新 | 空值 | 强烈推荐 |
硬件光标 | Windows 10 | 空值 | 建议 |
Microsoft 实时比特率调制,支持其他视频格式 | Windows 10 周年更新 | 空值 | 建议 |
延迟切换、动态分辨率/帧速率、帧结束标记、CABAC 支持、UIBC 支持、动态切换分辨率和帧速率;支持 IDR 请求;支持源接收器版本;支持增强的诊断;支持 Intel 的接收器版本;支持 Intel 的接收器模型名称;支持 Intel 的接收器制造商名称;支持 Intel 的接收器制造商徽标;支持 Intel 的接收器设备 URL;支持 Intel 友好名称 | Windows 10 | 空值 | 可选 |