Ⅰ 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 :
這些流媒體協議各自具有獨特的功能和應用場景,共同構成了流媒體傳輸和控制的重要基礎。