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

Я создаю приложение, которое требует воспроизведения видео на диске во время кодирования с помощью FFMPEG (другими словами, psuedostreaming на диск - воспроизведение воспроизводится сразу за кодированием, как в прямом эфире). Таким образом, атом MOOV, по сути, должен быть сгенерирован в процессе его обработки (или чередования в поток кусками), и я безуспешно пытался использовать empty_moov (тем более что quicktime его не поддерживает).

Я не уверен, возможно ли это с форматом MP4, в поисках идей или решений.

1 ответ

Фрагментированный MP4 - способ сделать это, но он использует empty_moov. Обычные файлы MP4 имеют заголовок в конце (а не в начале, как fMP4), когда все уже известно. Это не предназначено для потоковой передачи.

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

Если вы уже перекодируете видео и отбрасываете данные после его чтения (или пробел не является проблемой), вы можете вывести MJPEG.

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