1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- 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,
- }
|