Ⅰ WebRTC 浏览器端如何抓取和解密 SRTP
WebRTC默认使用SRTP加密传输,导致抓包时无法直接查看明文数据,影响问题排查。针对此情况,有以下两种解决方法:
首先,可以尝试下载开发版或金丝雀版浏览器,关闭加密选项,前提是通信对端需支持。其次,开启浏览器的debug模式mp选项,SRTP解密后的RTP数据将被打印到日志中,便于后续处理。具体步骤如下:
在Windows环境下,关闭所有浏览器实例后,使用如下命令启动浏览器:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --enable-logging --v=1 --force-fieldtrials=WebRTC-Debugging-RtpDump/Enabled/
浏览器将根据该选项,在RTP、RTCP加密前和SRTP、SRTCP解密后共四处mp明文数据,这些数据将被打印到日志中。
接下来,通过命令行操作提取日志中的RTP数据,进行进一步的解析与处理。具体操作包括:
grep RTP_DUMP chrome_debug.log > in.txt
text2pcap -D -u 1000,2000 -t %H:%M:%S. in.txt out.pcap
使用Wireshark打开并解析出的out.pcap文件,通过设置【编辑】->【首选项】->【协议】中的选项,可以将RTP协议转换为可以查看的格式,如OPUS等。
此外,可借助开源项目h264extractor或opus_muxer工具,将提取的H.264和OPUS文件转换为媒体格式,方便后续播放或分析。
对于关闭SRTP加密的方法,需要使用Chromium、开发版Chrome或金丝雀版Chrome,并通过选项--disable-webrtc-encryption来实现。这种方式需要通信对端也支持不加密传输,通常在调试第三方系统时可能难以实现。
综上所述,通过上述方法,可以在WebRTC浏览器端获取和处理加密后的音视频数据,为问题排查和调试提供了便利。此外,这些思路同样适用于点播或直播场景,将音视频数据在HTTPS(TLS)解密后或H5 video标签播放前mp出来进行分析。
Ⅱ 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
流媒体协议介绍:
RTP :
RTCP :
RTSP :
RTMP/RTMPS:
MMS :
HLS :
这些流媒体协议各自具有独特的功能和应用场景,共同构成了流媒体传输和控制的重要基础。