const time = require('../time.js'); function hexStrToBitStr(str){ // 移除0x 以及空格 str = str.replace(/0x/g,'').replace(/\s/g,''); // 转换为二进制 return parseInt(str,16).toString(2); } function parseRtpHeader(hexStr){ // console.log(hexStr); let bitStr = hexStrToBitStr(hexStr); let version = parseInt(bitStr.substr(0,2),2); let padding = bitStr.substr(2,1); let extension = bitStr.substr(3,1); let csrcCount = bitStr.substr(4,4); let marker = bitStr.substr(8,1); let payloadType = parseInt(bitStr.substr(9,7),2); let sequenceNumber = parseInt(bitStr.substr(16,16),2); let timestamp = parseInt(bitStr.substr(32,32),2); // 格式化时间戳 let _time = time.timestr(timestamp ) let ssrc = bitStr.substr(64,32); let csrc = bitStr.substr(96,32); return { version, padding, extension, csrcCount, marker, payloadType, sequenceNumber, timestamp, ssrc, csrc, time: _time } } module.exports = { parseRtpHeader, }