Как разобрать этот специфичный для Apple заголовок файла MPEG? - PullRequest
2 голосов
/ 19 октября 2019

У меня есть файл MPEG, который начинается следующим образом:

   0:  00 0f 6d 79 5f 66 69 6c  65 6e 61 6d 65 2e 6d 70  ..my_filename.mp
  10:  67 00 04 fc 00 00 f0 00  b2 10 39 a8 b2 10 39 ad  g.........9...9.
  20:  0f 6d 79 5f 66 69 6c 65  6e 61 6d 65 2e 6d 70 67  .my_filename.mpg
  30:  03 92 3b 40 00 00 00 00  03 7a b5 7c 03 7a d7 d0  ..;@.....z.|.z..
  40:  00 4d 6f 6f 56 54 56 4f  44 01 00 01 2a 00 80 00  .MooVTVOD...*...
  50:  00 00 00 00 36 b2 83 00  00 04 fc b2 10 39 a8 b2  ....6........9..
  60:  10 39 ad 00 00 00 00 00  00 00 00 00 00 00 00 00  .9..............
  70:  00 00 00 00 00 00 00 00  00 00 81 81 35 d3 00 00  ............5...
  80:  00 36 b2 83 6d 64 61 74  00 00 01 ba 21 00 01 00  .6..mdat....!...
  90:  05 80 2b 81 00 00 01 bb  00 0c 80 2f d9 04 e1 ff  ..+......../....
  a0:  c0 c0 20 e0 e0 2e 00 00  01 c0 07 ea ff ff ff ff  .. .............

Каков формат файла начала файла (первые 0x80 байтов) и как его проанализировать?

Я запустил поиск Google на MooVTVOD, похоже, что-то, связанное с QuickTime и iTunes.

Что я уже понял:

  • Есть 4байты файла с прямым порядком байтов в начале mdat, в соответствии с форматом файла QuickTime .mov , когда файл .mov содержит MPEG.

  • сразу после mdat имеется заголовок MPEG-PS 00 00 01 ba. Вскоре после этого появляется заголовок MPEG-PES 00 00 01 c0, указывающий аудиопоток.

  • Однако первые байты 0x80 в этом файле, похоже, находятся в другомформат файла (не QuickTime .mov, не MPEG-PS, не MPEG-PES), и в этом вопросе меня интересует только формат файла первых 0x80 байтов.

  • Медиаплееры, такие как VLC, обычно игнорируют junk в начале файла и начинают воспроизведение потока MPEG-PS со смещением 0x80. Однако мне интересны байты 0x80, которые они игнорируют.

1 Ответ

0 голосов
/ 21 октября 2019

Формат файла «Quicktime movie atom», который содержит метаинформацию о файле мультимедиа или самом носителе. mdat является атомом медиа-данных.

Атомы медиа-файлов описывают и определяют тип медиа трека и типовые данные.

спецификация здесь: https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html

Вы можете проанализировать его с помощью этого сценария Python: https://github.com/kzahel/quicktime-parse

или этого программного обеспечения, упомянутого в связанном вопросе: https://archive.codeplex.com/?p=mp4explorer

...