MP4 / ISO 14496-12: ¿Cómo encuentra las unidades de acceso de video y audio?

Estoy escribiendo una herramienta para inspeccionar archivos MP4 (también conocido como formato de archivo multimedia base ISO, ISO 14496 parte 12).

Puedo interpretar la mayoría de los cuadros enumerados en ISO 14496-12 generados por OSS. Todavía tengo que descubrir cómo extraer unidades individuales de acceso de video y unidades de acceso de audio.

Estoy razonablemente seguro de que el video H.264 en el cuadro 'mdat' no tiene el prefijo ISO 14496-10 Anexo B "0x000001" en las unidades NAL.

He experimentado con la interpretación de SampleToChunkBox ('stsc'), SampleSizeBox ('stsz') y ChunkOffsetBox ('stco') para localizar muestras de medios dentro de 'mdat', pero parece que no puedo encontrar nada que pueda interpretar como un nal_unit () (ISO 14496-10 sección 7.3.1) o un slice_header () (sección 7.3.3).

También tengo curiosidad por saber dónde viven el SPS (7.3.2.1) y el PPS (7.3.2.2). Tengo la sospecha de que estos viven en algún lugar dentro de la caja de 'trak', pero no he descubierto dónde.

Los punteros a aplicaciones o bibliotecas son de utilidad limitada. Estoy escribiendo una aplicación, y el código fuente externo es más difícil de entender (debido a su propio marco) en comparación con una explicación matemática.

Respuestas a la pregunta(2)

Su respuesta a la pregunta