Как обнаружить I / P / B кадр из RTP-пакета H264

Я получил H264 RTP пакет из потока RTSP. Поэтому я хочу определить, является ли кадр I-кадровым или нет. И ниже - первый пакет, который я получил из первого открытого потока. Поэтому я считаю, что это I-кадр (сначала я покажу вам 160 байт).

packet:
00 00 00 01 67 4D 00 1F 95 A8 14 01 6E 40 00 00 00 01 68 EE 3C 80 00 00 00 01 06 E5 01 33 80 00 00 00 01 65 B8 00 00 08 52 90 9F F6 BE D6 C6 9C 3D F6 D4 2F 49 FB F7 13 F2 A9 C7 27 2D A4 75 59 6C DB FF 35 27 A4 C7 B6 E7 69 A2 E0 FB 0E FF 2D 0E E0 6F 25 43 78 BF B9 69 22 1B 24 E3 CA 60 56 44 16 6C 15 44 DA 55 29 C2 39 24 86 CE D6 75 BB E0 0C F4 F4 EC C5 76 E4 7B 59 B9 40 2D B3 ED 19 E4 1D 94 B7 54 9B B3 D0 8F 24 58 CD 3C F3 FA E0 D4 7D 88 70 0E 49 79 12 B2 14 92 BA B6 9C 3A F7 8D 13 78 6B 4C CD C0 CC C8 39 6A AC BE 3D AA 00 9A DB D2 68 70 5F C4 20 B7 5C FC 45 93 DB 00 12 9F 87 5A 66 2C B2 B8 E7 63 C4 87 0B A4 AA 2E 6D AB 42 3F 02 C2 A6 F9 41 E5 FE 80 64 49 14 38 3D 52 4B F6 B2 E7 53 DD 3E F6 BB A8 EB 13 23 BB 71 B1 C9 90 06 92 3E 5F 15 F2 C0 39 43 EA 24 5A 86 AE 11 27 D4 C5 4B 5C CD 6C 90 2B 44 80 18 76 95 6E 16 DF 5D 86 49 25 5A B6 66 23 E6 40 D4 25 6B CE A2 4C EE 13 DD 7B 88 FF A0 64 EC 33 44 B1 DC B7 0B 89 5B 8F 85 68 3C 65 3E 55 0F 41 4B 32 C9 C8 56 78 1A 15 14 8C C7 F5 17 40 D4 EC BC 5B 62 8A 24 66 6A C3 7E 3B DB 44 A8 EC D8 EE 37 E0 DE ...........

Затем я использовал приведенный ниже фрагмент кода, чтобы определить кадр

public static bool isH264iFrame(byte[] paket)
    {
        int RTPHeaderBytes = 0;

        int fragment_type = paket[RTPHeaderBytes + 0] & 0x1F;
        int nal_type = paket[RTPHeaderBytes + 1] & 0x1F;
        int start_bit = paket[RTPHeaderBytes + 1] & 0x80;

        if (((fragment_type == 28 || fragment_type == 29) && nal_type == 5 && start_bit == 128) || fragment_type == 5)
        {
            return true;
        }

        return false;
   }

Моя проблема в том, что я не могу точно знать значениеRTPHeaderByte, В этом случае мои пакеты всегда начинаются с «00 00 00 01».

Спасибо Тянь Во

Ответы на вопрос(1)

Ваш ответ на вопрос