Я пишу инструмент для проверки файлов MP4 (он же базовый формат файлов мультимедиа ISO, ISO 14496, часть 12).
Я могу интерпретировать большинство блоков, перечисленных в ISO 14496-12, которые генерируются OSS.
Мне еще предстоит выяснить, как извлечь отдельные блоки доступа к видео и блоки доступа к аудио.
Я достаточно уверен, что видео H.264 в поле 'mdat' не имеет префикса "0x000001" Приложения B стандарта ISO 14496-10 в блоках NAL.
Я экспериментировал с интерпретацией SampleToChunkBox ('stsc'), SampleSizeBox ('stsz') и ChunkOffsetBox ('stco'), чтобы найти образцы мультимедиа внутри 'mdat', но я не могу найти ничего, что Я могу интерпретировать как nal_unit () (ISO 7.349-10 раздел 7.3.1) или slice_header () (раздел 7.3.3).
Мне также любопытно, где живут SPS (7.3.2.1) и PPS (7.3.2.2). У меня есть подозрения, что они живут где-то внутри коробки 'trak', но я не выяснил, где.
Указатели на приложения или библиотеки имеют ограниченную полезность. Я пишу приложение, и внешний исходный код сложнее понять (будучи обремененным собственной структурой) по сравнению с математическим объяснением.