Как программно вывести фрагментированный файл mp4 с помощью libavformat?

Я хочу использовать формат файла mp4 для прямой трансляции, что невозможно с нефрагментированным файлом mp4, поскольку атом moov обычно записывается в конце файла. Мне нужно создать фрагментированный файл mp4, чтобы передать его по сети для прямой трансляции. Я использую libavформат. Проблема в том, что я могу легко записывать нефрагментированные файлы mp4 с помощью libavformat, но я не знаю, как писать фрагментированные файлы mp4. Итак, как записать фрагментированный файл mp4 с помощью libavformat?


person zahirdhada    schedule 08.07.2013    source источник


Ответы (2)


Я не думаю, что вы ищете фрагментированный mp4 (к вашему сведению, фрагментированный mp4 обычно называется .ismv). Для потоковой передачи ISMV требуется медиасервер и специализированный клиент.

Я думаю, что вы ищете быстрый старт. Это просто перемещает атом moov в начало файла. ffmpeg поставляется с утилитой qt-faststart, которая сделает это за вас. Проверьте свой дистрибутив.

person szatmary    schedule 18.07.2013

Вы можете легко сделать это с помощью библиотеки Bento4. Скачайте отсюда http://www.bento4.com/downloads/ и используйте двоичный фрагмент mp4.

mp4fragment исходный файл файл назначения

person Nitin Narang    schedule 25.05.2015