Question

J'essaie d'apprendre un peu h264 en regardant le flux binaire d'un fichier vidéo avec un éditeur hexadécimal. J'ai trouvé ici les codes de départ pour un jet d'objet vidéo ( 0x000001b6) et pour les i-frames (0x000001b600).

Mais je ne peux pas trouver beaucoup de ces octets dans les fichiers vidéo. La plupart du temps ces codes de départ apparaissent au début d'un fichier avec seulement quelques bouchées entre les deux. Je les attendais à se manifester très régulièrement, à distance égale dans le fichier!

Est est même autorisé à regarder un fichier avec un éditeur hexadécimal de cette façon? Quels sont les autres codes de départ existent et comment un fichier h264 organisé?

Était-ce utile?

La solution

Le code de démarrage de 0x000001b6 applique à une partie mpeg-4 2 vidéo qui est le profil simple. Cela correspond à des codecs tels que XVID et DIVX. H.264 est MPEG-4 partie 10, qui est le profil de codage vidéo avancé. H.264 utilise différents codes de démarrage.

Je ne suis pas aussi familier avec la partie 10 que je suis à la partie 2, mais un bref coup d'œil à la norme (ISO 14496-10) montre que le bitstream est divisé en sections appelées unités NAL. Ces unités ont la 0x000001 de code de 24 bits qui les précèdent pour la synchronisation conformément à l'article B.1.1. L'octet suivant est composé des champs forbidden_zero_bit, nal_ref_idc et nal_unit_type conformément à la section 7.3.1.

Je ne suis pas sûr que ces unités NAL sont séparés sur les limites du cadre ou non. Vous pouvez juste avoir à obtenir une prise de la norme qui définit l'ensemble de la syntaxe bitstream.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top