Android Wireshark抓包:分析Miracast流程、解析音视频裸流

本文介绍了Miracast技术的基础知识,包括如何使用adb和tcpdump在Android设备上抓取Miracast投屏的数据包,以及Wireshark的使用方法。通过Wireshark分析了Miracast的RTSP协议流程,并详细探讨了RTP和MPEG2-TS协议。在实践中,文章提到了两种从码流中提取音视频裸流的方法,重点介绍了使用mpeg_packets_dump.lua进行解析并用VLC或Potplayer播放的成功案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

业务中涉及到Miracast,为了知其所以然,这里简单记录下大概流程的认识。

1 tcpdump 抓包

前提:手机需要有root权限
命令:

adb shell tcpdump -i p2p0 -s 0 -w /sdcard/capture.pcap

# "-i any": listen on any network interface 指定p2p0
# "-s 0": capture the entire packet
# "-w": write packets to a file (rather than printing to stdout)

2 Wireshark 基础使用

了解:界面使用、过滤器设置等
参考:wireshark抓包新手使用教程

3 Miracast 流程分析

安利一篇Miracast技术分析系列:
Miracast技术详解-codezjx

3.1 Android WiFi Display

Andorid 源码中DisplayManager封装了Miracast的能力。(注意:一般手机厂商有能力调用这些接口。此接口有的为hide接口,有的内部会校验caller pid是否系统应用,有的有权限要求)
这里通过上面的接口能实现调用MIracast能力。

3.2 RTSP协议

这里先抓包MIracast的投屏流程,导入Wireshark 分析。
根据Miracast技术详解(二):RTSP协议过一遍协议。
标准Miracast rtsp

3.3 RTP & MPEG2-TS

3.3.1 协议部分

参考:Miracast技术详解(三):RTP & MPEG2-TS

3.3.2 从码流中分离音视频裸流

这里网上主要有两种方法:rtp_h264_extractor.lua 和 mpeg_packets_dump.lua。
搜到的主要是第一种方式,但是实测第二种是ok的。

4 参考和推荐

Android多屏互动-安卓端WiFiDisplay原理以及流媒体相关
Miracast技术详解 -协议部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值