rtsp中的base64

在这里插入图片描述
sprop-parameter-sets 包含了H.264解码所必需的序列参数集(SPS)​​ 和图像参数集(PPS)​,它们以逗号分隔,并采用 ​Base64​ 编码。

一、将Base64字符串解码成十六进制

解码后,我们得到原始的字节序列:

  1. SPS (Z00AHoqKUCgC3TZAAAD6AAAw1AE=)​

    • Base64 解码后(十六进制):67 4d 00 1e 8a 8a 50 28 02 dd 36 40 00 00 fa 00 00 30 d4 01
    • 注意:H.264的NALU起始码 00 00 00 0100 00 01 通常不包含在内,这里的字节流是纯粹的SPS有效载荷。
  2. PPS (aO48gA==)​

    • Base64 解码后(十六进制):68 ee 3c 80

二、为什么用Base64编码?

1. ​SDP协议的文本安全性要求

SDP(Session Description Protocol)是一个纯文本协议,所有字段都必须是可打印的ASCII字符。

原始SPS/PPS数据的问题:​

  • 包含大量的控制字符​(如NULL字符 0x00
  • 包含非打印字符​(如 0x1B, 0xFF 等)
  • 这些字符在文本协议中会导致:
    • 解析错误
    • 传输截断(NULL字符可能被误认为字符串结束)
    • 编码混乱

示例:​​ 一个典型的SPS可能包含:67 4D 00 1E 8A 8A 50 28 02 DD 36 40 00 00 ...
其中的 00 在文本中就是NULL字符,会破坏SDP的完整性。

2. ​Base64的优势

Base64将二进制数据编码为仅包含64个安全ASCII字符:

  • 大写字母 A-Z
  • 小写字母 a-z
  • 数字 0-9
  • 符号 +/
  • 填充符 =

这样确保了SDP的纯文本特性不受破坏。

三、关于"压缩"的严重误解

Base64不是压缩算法,反而会膨胀!​

这是一个关键点:​Base64编码会增加数据大小,而不是减少。​

压缩比例计算:

编码原理:​

  • 每3个字节(24位)的二进制数据 → 编码为4个Base64字符
  • 编码膨胀率:4/3 ≈ 1.333,即数据量增加约33.3%​
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值