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

Расширению Media Source (MSE) требуется фрагментированный mp4 для воспроизведения в браузере.

2 ответа

Решение

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

Коробки ака Атомы

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

Вы можете просмотреть представление блоков в 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 Файл дескриптора презентации мультимедиа), а затем выберите, какие сегменты вы хотите впоследствии загрузить и добавить в MSE SourceBuffer.

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

Форматы медиафайлов

Потоки мультимедийных данных упаковываются в формат контейнера. Контейнер включает в себя физические данные носителя, а также метаданные, необходимые для воспроизведения. Например, он сигнализирует видеоплееру об используемом кодеке, дорожках субтитров и т. д. В потоковом видео существует два основных формата, которые используются для хранения и представления мультимедийного контента: транспортные потоки MPEG-2 (MPEG-2 TS)[25] и Базовые форматы медиафайлов ISO (ISOBMFF)[24](MP4 и фрагментированный MP4).

Транспортные потоки MPEG-2 определены в [25] и предназначены для трансляции видео через спутниковые сети. Однако Apple приняла его для своего протокола адаптивной потоковой передачи, что сделало его важным форматом. В MPEG-2 TS потоки аудио, видео и субтитров мультиплексируются вместе. MP4 и фрагментированный MP4 (fMP4) являются частью стандарта MPEG-4, часть 12, который охватывает ISOBMFF. MP4 — самый известный формат мультимедийных контейнеров, широко поддерживаемый различными операционными системами и устройствами. Структура видеофайла MP4 показана на рисунке 2.2a. Как показано, MP4 состоит из разных блоков, каждый из которых имеет свою функциональность. Эти блоки являются основным строительным блоком каждого контейнера в MP4.

Например, поле типа файла ('ftyp') указывает совместимые бренды (спецификации) файла. Файлы MP4 имеют блок фильмов («moov»), который содержит метаданные файла мультимедиа и таблицы сэмплов, которые важны для синхронизации и индексации сэмплов мультимедиа («stbl»). Также имеется поле данных мультимедиа («mdat»), содержащее соответствующие сэмплы. В фрагментированном контейнере, показанном на рис. 2.2b, медиасэмплы чередуются с использованием блоков Movie Fragment («moof»), которые содержат таблицу сэмплов для конкретного фрагмента (mdat box).

Ссылка: https://repository.tudelft.nl/islandora/object/uuid%3Ae06cde4c-1514-4a8d-90be-7e10eee5aac1

Другие вопросы по тегам