用UE(Ultraedit)打开h.263的码流,以16进制方式编辑。
帧数据的起始码为00 00 8x,x的值可以是0,1,2,3。
找到起始码之后,在起始码数字8后面连续读8比特,这8比特代表图片时间戳。
然后再读取1比特,该比特为图片类型的标记,其值必须为1,否则该标记无效;
再读取1比特,该比特为h.263 id,其值必须为0,否则为无效的ID。
接下来的三比特跳过。
然后再读3比特,这3比特描述图片的分辨率,即宽,高的大小。
接下来的比特,就是帧的类型。若其值为0,则是I帧;若其值是1,则是P帧。
直接判断帧类型,采用以下方法:
判断帧类型,需要利用起始码之后,第2个字节的数据的倒数第二位来判断,若其值为0,则是I帧;
若其值是1,则是P帧。
比如00 00 80 02 10 08....
起始码后的第2个字节是10,二进制表示0001 0000,倒数第二位为0,所以是I帧。
而00 00 80 0A 12 08....
起始码后的第2个字节是12,二进制表示为0001 0010,倒数第二位是1,所以是P帧。