Як створити потоковий і шуканий MP4?


1

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

Наступна найближча річ здається фрагментованою MP4s з коробкою mfra. Я думаю, що це буде працювати, але це не здається добре підтримується (mplayer і тотем не шукати, останні роботи ffplay). Хоча основне додаток потокове (з можливістю шукати), я не хотів би відмовлятися від можливості відтворення відео з файлу на "стандартних" гравцях.

Чи є спосіб я можу зробити MP4, який є потоковим, шукати і грає в стандартних відеоплеєрів?

Якщо я відмовляюся від здатності грати на стандартних відеоплеєрах, то найзручнішим способом є mfra?

редагування: потокове передавання - це HTTP progressive download.

Відповіді:


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 
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.