来自老陈的 media-server
h265
nal_type = (nalu[0] >> 1) & 0x3f;
判断一个h265 nal单元是否是I帧
// Rec. ITU-T H.265 v4 (12/2016) (p26) // intra random access point (IRAP) picture: // A coded picture for which each VCL NAL unit has nal_unit_type // in the range of BLA_W_LP to RSV_IRAP_VCL23, inclusive. static int mpeg_h265_find_keyframe(const uint8_t* p, size_t bytes) { size_t i; uint8_t type; for (i = 2; i + 1 < bytes; i++) { if (0x01 == p[i] && 0x00 == p[i - 1] && 0x00 == p[i - 2]) { type = (p[i + 1] >> 1) & 0x3f; if (type < 32) return (16 <= type && type <= 23) ? 1 : 0; } } return 0; }