Pregunta

Yo estaba tratando de aprender un poco sobre h264 mirando el flujo de bits de un archivo de vídeo con un editor hexadecimal. He encontrado aquí los códigos de inicio para un planos de objetos de vídeo ( 0x000001b6) y para las tramas I (0x000001b600).

Pero no puedo encontrar muchos de estos bytes en archivos de vídeo. La mayoría de las veces los códigos de inicio aparecen al comienzo de un archivo con sólo unas pocas picaduras en el medio. Yo esperaba que se presenten de forma regular, en la misma distancia en todo el archivo!?

Es es aún aceptable para mirar un archivo con un editor hexadecimal de esta manera? Lo que existen otros códigos de inicio y cómo se organiza un archivo h264?

¿Fue útil?

Solución

El código de inicio 0x000001b6 aplica a MPEG-4 parte 2 video que es el perfil simple. Esto se corresponde con codecs como XVID y DIVX. H.264 es MPEG-4 parte 10, que es el perfil avanzado de codificación de vídeo. H.264 utiliza diferentes códigos de inicio.

No estoy tan familiarizado con la parte 10 como estoy con la parte 2, pero un breve vistazo a través de la norma (ISO 14496-10) muestra que el flujo de bits se divide en secciones llamadas unidades NAL. Estas unidades tienen el código 0x000001 24 bit precedente ellos para la sincronización según la sección B.1.1. El siguiente byte se compone de la forbidden_zero_bit campos, nal_ref_idc y nal_unit_type según la sección 7.3.1.

No estoy seguro de si estas unidades NAL se separan en los límites de trama o no. Es posible que sólo tenga que obtener una bodega de la norma que se encuentra toda la sintaxis de flujo de bits.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top