Смещение кадров / пиксельных данных для файла MP4? - PullRequest
0 голосов
/ 23 мая 2019

См. Эту документацию для формата файла mp4, это один из самых понятных вариантов: http://xhelmboyx.tripod.com/formats/mp4-layout.txt

Если вы ищете: 4-байтовый размер пикселя видеокадра

Вы найдетестрока с этим текстом.

  1. Как узнать смещение от начала файла, чтобы я мог извлечь «размер кадра видео»?

  2. Гдея могу найти все кадры и их данные о пикселях?

1 Ответ

2 голосов
/ 24 мая 2019

Прежде всего, связанный файл довольно плохой - чтобы понять структуру MP4, вам следует прочитать стандарт ISO 14496-12 ( сжатая версия здесь ). Что касается ваших вопросов:

1) Вы не можете. Там нет фиксированного смещения. Структура может измениться, поскольку есть обязательные и дополнительные поля, поэтому в каждом файле поле tkhd, содержащее данные, которые вы хотите получить, может иметь разное смещение. В худшем случае вы можете отсканировать файл на предмет идентификатора блока tkhd, а затем попытаться проанализировать этот блок (см. Его макет в спецификации). Но будьте осторожны, что там может быть несколько дорожек.

2) Кадры кодируются, поэтому у вас нет «пиксельных данных» - у вас есть «сжатый видеопоток», который необходимо декодировать. Фактические смещения могут быть рассчитаны. Двоичные данные находятся внутри mdat блоков, но вы должны знать фактические размеры видео полезной нагрузки из других блоков, чтобы знать, где их разбить.

...