1

Я хочу создать MP4, который поддерживает поиск и потоковую передачу. Мне кажется, что DASH - это то, что я хочу, за исключением того, что точки поиска сегментов хранятся во внешнем файле (MPD), который не работает для моего приложения; Мне нужно искать метаданные, которые будут содержаться в MP4.

Следующая ближайшая вещь, кажется, фрагментированные MP4 с коробкой mfra. Я думаю, что это будет работать, но, похоже, не очень хорошо поддерживается (mplayer и totem не удается найти, последние ffplay работают). Хотя основное приложение - потоковое (с возможностью поиска), я не хотел бы отказываться от возможности воспроизводить видео из файла на "стандартных" проигрывателях.

Можно ли как-нибудь сделать MP4, который можно воспроизводить и воспроизводить в стандартных видеоплеерах?

Если я откажусь от возможности играть на стандартных видеоплеерах, лучше ли будет использовать mfra?

редактировать: под потоковым я имею в виду прогрессивную загрузку HTTP.

1 ответ1

1

Заходить в любой файл MP4 через HTTP можно более или менее просто.

Если файл не фрагментирован, вся информация о поиске находится в поле «moov», поэтому проблем нет. Это то, что демонстрирует mp4box.js . Если данные плохо организованы, необходимо выполнить несколько запросов HTTP в диапазоне байтов. Это проще, если заголовочные блоки являются первыми (ftyp, moov ...) и если мультимедийные данные чередуются. MP4Box может быть использован для генерации таких файлов:

MP4Box -add file.mp4 output.mp4

Если файл фрагментирован, действительно, информация о поиске распространяется по файлу, и можно использовать поле «mfra», но это не очень хорошо поддерживается и не надежно.

Сегментация (как используется в DASH) также может быть использована для создания файлов HTTP-поиска, если все сделано осторожно. Если вы сегментируете свой файл, форсируя один сегментный файл, все данные будут в одном файле (а не в нескольких сегментных файлах). Если вы добавите поле 'sidx', у вас будет информация об индексировании в файле (нет необходимости в MPD). Чтобы иметь и то, и другое, вы можете сегментировать ваш файл, используя профиль DASH ondemand с MP4Box:

MP4Box -dash 1000 -profile ondemand file.mp4 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .