Прямая трансляция через MP4

Я работаю над онлайн-сервисом телевидения. Одной из целей является воспроизведение видео без каких-либо дополнительных плагинов для браузера (кроме Flash).

Я решил использовать MP4, потому что он поддерживается большинством браузеров HTML5 и Flash (для резервирования). Видео транскодируются из ASF на сервере FFMpeg.

Однако я обнаружил, что MP4 нельзя транслировать в прямом эфире, поскольку он имеет атом moov для метаданных, который должен указывать длину. FFMpeg не может напрямую передавать mp4 на стандартный вывод, потому что он помещает moov в конец файла. (Оперативное транскодирование и потоковая передача MP4 работает в Android, но не работает в проигрывателе Flash Player с ошибкой NetStream.Play.FileStructureInvalid)

Конечно, MPEG-TS существует, но он не поддерживается HTML5.

Я подумал о методе перекодировки потока в реальном времени в MP4, и при каждом новом HTTP-запросе сначала отправляю moov, который указывает очень длинное число для видео ».s, а затем начните отправку оставшейся части файла MP4.

Можно ли использовать MP4 для потоковой передачи таким образом?

После некоторых исследований и av501 'Ответ, я понимаю, что размеры кадров должны быть известны, чтобы он мог работать.

Можно ли сегментировать файл mp4 на более мелкие части, чтобы его можно было транслировать?

Конечно, переключение на другой контейнер / формат является опцией, но единственный формат, совместимый как с Flash, так и с HTML5, это mp4 / h264, поэтому, если мне придется поддерживать оба, яЯ должен дважды перекодировать.

Ответы на вопрос(4)

Ваш ответ на вопрос