Как транслировать на диск фрагментированный MP4 с помощью ffmpeg?
Я создаю приложение, которое требует воспроизведения видео на диске во время кодирования с помощью FFMPEG (другими словами, psuedostreaming на диск - воспроизведение воспроизводится сразу за кодированием, как в прямом эфире). Таким образом, атом MOOV, по сути, должен быть сгенерирован в процессе его обработки (или чередования в поток кусками), и я безуспешно пытался использовать empty_moov (тем более что quicktime его не поддерживает).
Я не уверен, возможно ли это с форматом MP4, в поисках идей или решений.
1 ответ
Фрагментированный MP4 - способ сделать это, но он использует empty_moov. Обычные файлы MP4 имеют заголовок в конце (а не в начале, как fMP4), когда все уже известно. Это не предназначено для потоковой передачи.
Вы можете попробовать написать небольшие файлы MP4 (даже одну GOP) и использовать fast_start (или что-то подобное), чтобы переместить заголовок в начало файла. Я не знаю, какова будет нагрузка при воспроизведении нескольких файлов подряд, и может случиться так, что вы получите не очень плавное воспроизведение.
Если вы уже перекодируете видео и отбрасываете данные после его чтения (или пробел не является проблемой), вы можете вывести MJPEG.