===================== 最近在进行视频帧类型判断及定位的工作,根据自己的理解写的代码对大部分h264视频进行帧判断都没有问题,因为大部分视频数据有分界符access_unit_delimiter来标志新的picture的开始。 ==================== 没有 access_unit_delimiter 就找开始前缀(0X00 00 00 01 或者 0X00 00 01)。如果是 RTP 格式码流,在对码流的封装文件中有帧边界定位信息(例如用 H.264 编码的 MP4 文件,在文件中本身就包含每帧的长度信息)。 ==================== 昨天在论坛里看了以前大部分有关nalu开始前缀和图像分界的帖子,我现在想找到一种可靠通用的定位一幅图像开始的方法,由于我做的是TS流的解析,PES封装的应该是字节流NAL单元吧,本来看了前面的帖子想用“四字节起始码+nal_unit_type”作为判断图像开始的方法,以前的帖子里也有人很肯定的说JM某版本编码后的流如果分片那么只有第一个slice的开始码是四字节开始码,后续slice开始码只有三字节起始码,如果这个是标准中严格规定的规则的话,用四字节来定位图像开始倒是最好的选择,但是分析了几个码流发现这个根本不是严格遵守的,不管第几个slice其开始码都可以是四字节头,因此四字节作为图像分界判断看来行不通。 ==================== 1、“……如果这个是标准中严格规定的规则的话……” |
|
来自: SamBookshelf > 《H264》