news 2026/4/16 17:59:33

【Miracast 协议详解】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Miracast 协议详解】

Miracast 协议详解

一、Miracast 概述

Miracast 基于 Wi‑Fi Display (WFD) 标准,用于将移动设备屏幕无线投射到显示设备。主要组件:

  1. Wi‑Fi Direct (P2P):建立直连
  2. RTSP:会话控制
  3. RTP/RTCP:音视频传输
  4. UIBC:用户输入回传

二、Miracast 交互流程

阶段1:设备发现与 P2P 连接
Source (手机) Sink (接收端) | | |--- Probe Request (WFD IE) ---->| |<-- Probe Response (WFD IE) ----| | | |--- P2P Device Discovery ------>| |<-- P2P Device Discovery ------| | | |--- P2P GO Negotiation -------->| |<-- P2P GO Negotiation ---------| | | |--- P2P Provisioning ---------->| |<-- P2P Provisioning -----------| | | |--- DHCP (获取IP) ------------->| |<-- DHCP (分配IP) --------------|
阶段2:RTSP 会话建立

RTSP 用于能力协商和会话控制。

2.1 M1 - RTSP Options
Source -> Sink: OPTIONS * RTSP/1.0 CSeq: 1 Require: org.wfa.wfd1.0 User-Agent: WFD/1.0 Sink -> Source: RTSP/1.0 200 OK CSeq: 1 Public: org.wfa.wfd1.0, GET_PARAMETER, SET_PARAMETER
2.2 M2 - Get Parameter (能力查询)
Source -> Sink: GET_PARAMETER rtsp://192.168.49.1/wfd1.0 RTSP/1.0 CSeq: 2 Content-Type: text/parameters Content-Length: <length> wfd_video_formats wfd_audio_codecs wfd_client_rtp_ports wfd_uibc_capability wfd_standby_resume_capability

Sink 响应包含支持的能力:

Sink -> Source: RTSP/1.0 200 OK CSeq: 2 Content-Type: text/parameters Content-Length: <length> wfd_video_formats: 00 00 01 01 00000001 00 00000000 00000000 00 0000 0000 00 none none wfd_audio_codecs: AAC 00000001 00 wfd_client_rtp_ports: RTP/AVP/UDP;unicast 19000 0 mode=play wfd_uibc_capability: input_category_list=HIDC;hidc_cap_list=none
2.3 M3 - Set Parameter (能力协商)

Source 选择参数并发送:

Source -> Sink: SET_PARAMETER rtsp://192.168.49.1/wfd1.0 RTSP/1.0 CSeq: 3 Content-Type: text/parameters Content-Length: <length> wfd_video_formats: 00 00 01 01 00000001 00 00000000 00000000 00 0000 0000 00 none none wfd_audio_codecs: AAC 00000001 00 wfd_client_rtp_ports: RTP/AVP/UDP;unicast 19000 0 mode=play wfd_uibc_setting: enable
2.4 M4 - Setup (建立传输通道)
Source -> Sink: SETUP rtsp://192.168.49.1/wfd1.0 RTSP/1.0 CSeq: 4 Transport: RTP/AVP/UDP;unicast;client_port=19000-19001 Require: org.wfa.wfd1.0 Sink -> Source: RTSP/1.0 200 OK CSeq: 4 Transport: RTP/AVP/UDP;unicast;client_port=19000-19001;server_port=19002-19003 Session: 12345678;timeout=60
2.5 M5 - Play (开始播放)
Source -> Sink: PLAY rtsp://192.168.49.1/wfd1.0 RTSP/1.0 CSeq: 5 Session: 12345678 Sink -> Source: RTSP/1.0 200 OK CSeq: 5 Session: 12345678
阶段3:RTP/RTCP 音视频传输
RTP 包结构
RTP Header (12 bytes): 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V=2|P|X| CC |M| PT | sequence number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | synchronization source (SSRC) identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ RTP Payload: - Video: H.264 NAL units - Audio: AAC frames
RTCP 包结构
RTCP SR (Sender Report): 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V=2|P| RC | PT=SR=200 | length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SSRC of sender | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NTP timestamp, most significant word | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NTP timestamp, least significant word | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RTP timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | sender's packet count | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | sender's octet count | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
阶段4:UIBC (用户输入回传)

UIBC 允许 Sink 将触摸、键盘等输入回传给 Source。

Source -> Sink (M16): SET_PARAMETER rtsp://192.168.49.1/wfd1.0 RTSP/1.0 CSeq: 16 Content-Type: text/parameters Content-Length: <length> wfd_uibc_setting: enable wfd_uibc_capability: input_category_list=HIDC;hidc_cap_list=mouse keyboard

三、WiFi 数据包解析

1. Probe Request/Response (WFD IE)
Probe Request Frame: [802.11 Header] [SSID: "DIRECT-xx"] [Supported Rates] [WFD IE] ← Miracast关键信息 - Device Type (Source/Sink) - Session Management Control Port (7236) - Maximum Throughput - WFD Information Elements

WFD IE 结构:

WFD IE (Information Element): Element ID: 221 (Vendor Specific) Length: Variable OUI: 50-6F-9A (Wi-Fi Alliance) OUI Type: 0x0A (WFD) Sub-elements: - Device Type (0x00) - Session Management Control Port (0x01) - Maximum Throughput (0x02) - WFD Extended Capability (0x03) - Local IP Address (0x04) - Associated BSSID (0x05) - WFD Session Information (0x06) - WFD Alternative MAC Address (0x07)
2. P2P Action Frame
P2P Action Frame: [802.11 Header] [Category: Public Action (0x04)] [Action: P2P (0x7F)] [P2P Attributes] - P2P Capability - P2P Device Info - P2P Group Owner Intent - P2P Configuration Timeout - P2P Listen Channel - P2P Operating Channel
3. RTSP 数据包(TCP)
Ethernet Header (14 bytes) IP Header (20 bytes) TCP Header (20 bytes) RTSP Message: OPTIONS * RTSP/1.0\r\n CSeq: 1\r\n Require: org.wfa.wfd1.0\r\n User-Agent: WFD/1.0\r\n \r\n
4. RTP 数据包(UDP)
Ethernet Header (14 bytes) IP Header (20 bytes) UDP Header (8 bytes) RTP Header (12 bytes) RTP Payload (H.264 NAL or AAC)

四、关键参数说明

视频格式参数 (wfd_video_formats)
格式: 00 00 01 01 00000001 00 00000000 00000000 00 0000 0000 00 none none 解析: - 00 00: Native (1920x1080p60) - 01: Preferred Display Mode - 01: H264 Profile (High) - 00000001: H264 Level (4.0) - 00: CEA Mask (支持的分辨率位图) - 00000000: VESA Mask - 00000000: HH Mask - 00: Latency - 0000: Minimum Slice Size - 0000: Slice Encapsulation - 00: Frame Rate Control - none: 3D Video Formats - none: 3D Video Formats
音频编解码参数 (wfd_audio_codecs)
格式: AAC 00000001 00 解析: - AAC: 音频编解码器 - 00000001: 支持的AAC模式位图 - 00: LPCM模式(不支持)

五、完整交互时序图

Source Sink | | |-- Wi-Fi Probe (WFD IE) ------>| |<-- Wi-Fi Probe Response ------| | | |-- P2P Device Discovery ------->| |<-- P2P Device Discovery ------| | | |-- P2P GO Negotiation -------->| |<-- P2P GO Negotiation --------| | | |-- P2P Provisioning ----------->| |<-- P2P Provisioning ----------| | | |-- DHCP Request --------------->| |<-- DHCP Response (IP分配) -----| | | |-- RTSP OPTIONS -------------->| |<-- RTSP 200 OK --------------| | | |-- RTSP GET_PARAMETER -------->| |<-- RTSP 200 OK (能力列表) -----| | | |-- RTSP SET_PARAMETER -------->| |<-- RTSP 200 OK --------------| | | |-- RTSP SETUP ---------------->| |<-- RTSP 200 OK (端口信息) -----| | | |-- RTSP PLAY ----------------->| |<-- RTSP 200 OK --------------| | | |-- RTP Video Stream ---------->| |-- RTP Audio Stream ---------->| |<-- RTCP SR/RR ----------------| | | |-- RTSP TEARDOWN ------------->| |<-- RTSP 200 OK --------------|
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 15:25:53

SpringBoot使用TraceId日志链路追踪

一次服务调用&#xff0c;在业务中可以一次追查到本次服务调用涉及的本地服务方法&#xff0c;第三方服务接口。实现日志的链路追踪。保证日志的高查找性。实现步骤1、pom.xml 依赖复制代码<dependencies><dependency><groupId>org.springframework.boot<…

作者头像 李华
网站建设 2026/4/16 15:30:04

GSE宏编译器经典版兼容性问题完整解决方案

GSE宏编译器经典版兼容性问题完整解决方案 【免费下载链接】GSE-Advanced-Macro-Compiler GSE is an alternative advanced macro editor and engine for World of Warcraft. It uses Travis for UnitTests, Coveralls to report on test coverage and the Curse packager to b…

作者头像 李华
网站建设 2026/4/16 15:25:04

16、PSAD:网络安全监测与主动响应的利器

PSAD:网络安全监测与主动响应的利器 一、PSAD基础特性 1.1 扫描数据筛选 PSAD 在工作时十分谨慎,不会将源自 RFC 1918 地址或因 /etc/psad/auto_dl 中危险等级设置为零而应被忽略的地址的扫描数据纳入其中。 1.2 DShield 报告功能 1.2.1 启用建议 虽然 PSAD 默认未启…

作者头像 李华
网站建设 2026/4/16 13:54:01

19、fwsnort:Snort规则转换与网络安全防护

fwsnort:Snort规则转换与网络安全防护 1. 攻击目标与IDS检测 当针对Microsoft IIS Web服务器的攻击指向Apache Web服务器时,攻击不会对目标造成损害。如果入侵检测系统(IDS)检测到此类攻击,其事件严重程度应远低于针对真实IIS服务器的攻击。 2. fwsnort的特性 轻量级资…

作者头像 李华
网站建设 2026/4/16 15:28:52

18、Kubernetes存储与有状态应用管理全解析

Kubernetes存储与有状态应用管理全解析 1. Kubernetes存储管理 1.1 Ceph存储集成 Ceph是一种分布式存储系统,在Kubernetes中有不同的使用方式。Ceph RBD支持ReadWriteOnce和ReadOnlyMany访问模式。若Ceph集群已配置CephFS,则可轻松将其分配给Pod,且CephFS支持ReadWriteMa…

作者头像 李华
网站建设 2026/4/15 19:19:25

ANSYS Workbench摩擦磨损模拟终极教程:5步快速掌握Archard模型

ANSYS Workbench摩擦磨损模拟终极教程&#xff1a;5步快速掌握Archard模型 【免费下载链接】ANSYSWorkbench摩擦磨损实例教程 本资源提供了一份详实的ANSYS Workbench摩擦磨损模拟实例教程&#xff0c;名为《Archard Wear》。教程以简单易懂的方式&#xff0c;逐步讲解如何在AN…

作者头像 李华