Что такое Fragmented mp4(fMP4)? Чем он отличается от обычного mp4?
Расширению Media Source (MSE) требуется фрагментированный mp4 для воспроизведения в браузере.
2 ответа
Фрагментированный MP4 содержит серию сегментов, которые можно запрашивать индивидуально, если ваш сервер поддерживает запросы диапазона байтов.
Коробки ака Атомы
Все файлы MP4 используют объектно-ориентированный формат, содержащий блоки, называемые атомами.
Вы можете просмотреть представление блоков в MP4 с помощью онлайн-инструмента, такого как MP4 Parser или, если вы используете Windows, MP4 Explorer. Давайте сравним нормальный MP4 с фрагментарным:
Нефрагментированный MP4
Этот скриншот (из MP4 Parser) показывает MP4, который не был фрагментирован и довольно просто имеет один массивный mdat
(Данные фильма).
Если бы мы создавали видеоплеер, который поддерживает адаптивный битрейт, нам, возможно, понадобится узнать байтовую позицию метки 10 секунд в файле 0,5 Мбит / с и 1 Мбит / с, чтобы переключить источник видео между двумя файлами в этот момент. Определение этой точной позиции байта в пределах одного массива mdat
в каждом соответствующем файле нетривиально.
Фрагментированный MP4
Этот снимок экрана показывает фрагментированный MP4, который был сегментирован, используя MP4Box с onDemand
профиль.
Вы заметите 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