Miracast投屏时源设备向远程UDP端口0发送RTCP包的原因
关于Windows 10 Miracast投屏时RTCP包发往UDP端口0的问题分析
问题背景
尝试通过支持RTCP扩展的Miracast协议,将Windows 10电脑屏幕投屏到Android TV,遵循[MS-WFDPE]: Wi-Fi Display Protocol Extension规范的2.8 RTCP章节实现。
交互流程
- RTSP M3阶段:当RTSP M3请求包含
microsoft-rtcp-capability参数时,TV回复支持该扩展,报文如下:
Real Time Streaming Protocol Response: RTSP/1.0 200 OK Status: 200 Date: Sat, 18 Nov 2023 13:19:52 +0000 CSeq: 2 Content-type: text/parameters Content-length: 457 Line-based text data: text/parameters (8 lines) wfd_video_formats: 38 01 01 08 0001ffff 00000000 00000fff 02 0000 0000 13 0780 0438 wfd_audio_codecs: LPCM 00000003 02, AAC 00000003 00 wfd_client_rtp_ports: RTP/AVP/UDP;unicast 1028 0 mode=play wfd_content_protection: none wfd_uibc_capability: input_category_list=HIDC;hidc_cap_list=Keyboard/USB, Mouse/USB, MultiTouch/USB, Gesture/USB, RemoteControl/USB;port=none wfd_display_edid: none wfd_connector_type: 05 microsoft_rtcp_capability: supported
- SETUP阶段:TV在SETUP请求中指定包含RTCP端口的
client_port=1028-1029,报文如下:
Real Time Streaming Protocol Request: SETUP rtsp://192.168.49.235/wfd1.0/streamid=0 RTSP/1.0 Method: SETUP URL: rtsp://192.168.49.235/wfd1.0/streamid=0 Date: Sat, 18 Nov 2023 13:19:53 +0000 CSeq: 2 Transport: RTP/AVP/UDP;unicast;client_port=1028-1029
源设备(Windows 10)回复确认:
Transport: RTP/AVP/UDP;unicast;client_port=1028-1029;server_port=64713-7492;ssrc=866c7a52;rtcp-fb-ssrc=866c7a53
异常现象
完成上述交互后,Windows 10电脑并未向约定的远程UDP端口1029发送含发送方报告的RTCP复合包,反而发往了UDP端口0,导致Android TV无法接收任何RTCP包,且1029端口始终处于不可读状态。预期RTCP通信应在本地7492端口与远程1029端口间建立,现需排查源设备发往UDP端口0的原因。
内容的提问来源于stack exchange,提问作者kgbook
相关产品推荐
相关产品推荐

