news 2026/5/11 6:12:04

【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/5/9 5:03:07

网络编程代码解析

C 网络编程代码解析&#xff08;更新了poll和epoll多路复用&#xff09; 客户端代码&#xff08;client.cpp&#xff09; #include "../myhead.h" #define SER_IP "xxx" // 服务器IP地址 #define SER_PORT 8888 // 服务器端口号 …

作者头像 李华
网站建设 2026/4/28 12:27:24

告别模组安装噩梦:Wabbajack如何用自动化技术拯救游戏玩家

告别模组安装噩梦&#xff1a;Wabbajack如何用自动化技术拯救游戏玩家 【免费下载链接】wabbajack An automated Modlist installer for various games. 项目地址: https://gitcode.com/gh_mirrors/wa/wabbajack 还在为复杂的模组安装步骤头疼吗&#xff1f;每次重装系统…

作者头像 李华
网站建设 2026/5/10 22:17:56

如何快速掌握Intel One Mono字体:开发者的完整配置指南

如何快速掌握Intel One Mono字体&#xff1a;开发者的完整配置指南 【免费下载链接】intel-one-mono Intel One Mono font repository 项目地址: https://gitcode.com/gh_mirrors/in/intel-one-mono 在现代软件开发中&#xff0c;选择合适的编程字体对提升编码效率和减少…

作者头像 李华
网站建设 2026/5/8 8:47:52

基于Springboot酒店管理系统的设计与实现c12044zy(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。

一、系统程序文件列表 二、开题报告内容 基于Spring Boot的酒店管理系统的设计与实现 开题报告 一、选题背景与意义 1.1 选题背景 随着旅游业的快速发展和互联网技术的普及&#xff0c;酒店行业对信息化管理的需求日益迫切。传统酒店管理方式&#xff08;如手工记录、单机…

作者头像 李华
网站建设 2026/5/1 23:43:40

[天机学堂]-04我的课表2

开发接口 添加课程到课表 需求分析: 用户购买课程后&#xff0c;交易服务会通过MQ通知学习服务&#xff0c;学习服务将课程加入用户课表中 接下来&#xff0c;我们来分析一下添加课表逻辑的业务流程。首先来对比一下请求参数和数据库字段&#xff1a; 一个userId和一个cours…

作者头像 李华
网站建设 2026/5/9 4:17:21

WatchAlert 轻量级AI日志告警 - Docker安装部署

全面兼容主流可观测技术栈监控类型 支持的数据源Metrics Prometheus、VictoriaMetricsLogs Loki、ElasticSearch、VictoriaLogs、ClickHouse、SLS&#xff08;阿里云日志服务&#xff09;、TLS&#xff08;火山云日志服务&#xff0c;开发中&#xff09;、CLS&#xff08;腾讯云…

作者头像 李华