這個問題要說清楚還是有點復雜:首先判斷 NALU 類型是否是 5,如果是,那么以后連續出現的 NALU 類型為 5 的 NALU 就屬于 IDR 幀(一種特殊的 I 幀);如果 NALU 不是 5,則要進一步判斷 slice_type 是否是 7,如果是,那么連續出現的 slice_type = 7 的 slice 就屬于 I 幀;如果 slice_type = 2,那么就要判斷與當前 slice 同屬一幀的 slice 是否都是 I slice,如果都是,那么這些 slice 就屬于一個 I 幀。當然這必須是在碼流沒有錯誤的情況下才可行。
實際應用中,碼流中一般不會出現復雜的情況,所以可以直接判斷 slice_type?? 是否等于 2 或 7 就可以了。