Подтвердить что ты не робот

Что такое Fragmented mp4 (fMP4)? Чем он отличается от обычного mp4?

Расширение источника мультимедиа (MSE) требует фрагментации mp4 для воспроизведения в браузере.

4b9b3361

Ответ 1

Фрагментированный MP4 содержит серию сегментов, которые могут запрашиваться индивидуально, если ваш сервер поддерживает запросы байтового диапазона.

Коробки aka Atoms

Все файлы MP4 используют объектно-ориентированный формат, содержащий поля aka atom.

Вы можете просмотреть представление полей в MP4 с помощью онлайн-инструмента, такого как MP4 Parser или если вы используете Windows, MP4 Explorer. Позвольте сравнить нормальный MP4 с фрагментарным:

Нефрагментированный MP4

Этот снимок экрана (из MP4 Parser) показывает MP4, который не был фрагментирован и довольно просто имеет один массивный mdat (данные фильма).

Представление ящиков в нормальном, не фрагментированном MP4, сгенерированном с использованием MP4 Parser

Если бы мы строили видеопроигрыватель, поддерживающий адаптивный битрейт, нам может понадобиться знать положение байта метки 10 секунд в файлах 0,5 Мбит/с и 1 Мбит/с для переключения источника видео между двумя файлами в этот момент, Определение этой точной позиции байта в пределах одного массивного mdat в каждом соответствующем файле не является тривиальным.

Фрагментированный MP4

Этот снимок экрана показывает фрагментированный MP4, который был сегментирован с помощью MP4Box с профилем onDemand.

Представление ящиков внутри фрагментированного MP4, сгенерированного с использованием MP4 Parser

Вы заметите sidx и серию moof + mdat. sidx - это индекс сегмента и хранит метаданные точных местоположений диапазона байтов сегментов moof + mdat.

По существу, вы можете независимо загружать sidx (его байтовый диапазон будет определен в сопроводительном файле .mpd Media Descriptor file), а затем выберите сегменты, которые вы хотите впоследствии загрузить и добавить в MSE SourceBuffer.

Важно отметить, что каждый сегмент создается с регулярным интервалом по вашему выбору (т.е. каждые 5 секунд), поэтому сегменты могут иметь временное выравнивание между файлами с различными битрейтами, что упрощает адаптацию битрейта во время воспроизведения.

Ответ 2

Основное различие между фрагментированным MP4 и обычным MP4 заключается в том, что moov (поле заголовка фильма) фрагментированного MP4 появляется в начале файла, а не в конце.

Здесь вы можете найти точное описание фрагментированного MP4: https://w3c.github.io/media-source/isobmff-byte-stream-format.html