【发布时间】:2020-07-02 09:21:07
【问题描述】:
H264 比特流有一个三字节或四字节的起始码,0x000001 或 0x00000001。
0x000001(3字节)和0x00000001(4字节)有什么区别?
谢谢!
【问题讨论】:
标签: h.264
H264 比特流有一个三字节或四字节的起始码,0x000001 或 0x00000001。
0x000001(3字节)和0x00000001(4字节)有什么区别?
谢谢!
【问题讨论】:
标签: h.264
3 字节占用更少的空间,因此是可取的,但不要包含足够的信息来检测字节对齐。如果您在一个字节的中间加入一个位流,您可以通过查找 31 个零位后跟一个 1 位来找到 4 个字节的起始码。 1 之后的第一位是字节的开始。构造良好的 NALU 中不可能出现 31 个连续的零。
这就是为什么 4 字节变体一般只用在适合随机访问的 NALU 之前,例如 AUD、SPS、PPS 和 IDR。
然而,这个特性并不常用,因为网络协议经常处理字节对齐,而广播协议通常有一个容器,比如 TS,它有一个类似的方法。
【讨论】: