rtpParse.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. const time = require('./time.js');
  2. function hexStrToBitStr(str){
  3. // 移除0x 以及空格
  4. str = str.replace(/0x/g,'').replace(/\s/g,'');
  5. // 转换为二进制
  6. return parseInt(str,16).toString(2);
  7. }
  8. function parseRtpHeader(hexStr){
  9. let bitStr = hexStrToBitStr(hexStr);
  10. let version = parseInt(bitStr.substr(0,2),2);
  11. let padding = bitStr.substr(2,1);
  12. let extension = bitStr.substr(3,1);
  13. let csrcCount = bitStr.substr(4,4);
  14. let marker = bitStr.substr(8,1);
  15. let payloadType = parseInt(bitStr.substr(9,7),2);
  16. let sequenceNumber = parseInt(bitStr.substr(16,16),2);
  17. let timestamp = parseInt(bitStr.substr(32,32),2);
  18. // 格式化时间戳
  19. let _time = time.timestr(timestamp )
  20. let ssrc = bitStr.substr(64,32);
  21. let csrc = bitStr.substr(96,32);
  22. return {
  23. version,
  24. padding,
  25. extension,
  26. csrcCount,
  27. marker,
  28. payloadType,
  29. sequenceNumber,
  30. timestamp,
  31. ssrc,
  32. csrc,
  33. time: _time
  34. }
  35. }
  36. module.exports = {
  37. parseRtpHeader
  38. }