Прерывание потока мультимедиа на сервере веб-сокетов HTML5 для приложения чата / видеоконференции на веб-основе - PullRequest
24 голосов
/ 22 ноября 2010

В настоящее время мы работаем над приложением для видеоконференций в чате + (совместное использование файлов +) с использованием веб-сокетов HTML5 .Чтобы сделать наше приложение более доступным, мы хотим реализовать Adaptive Streaming, используя следующую последовательность:

  1. Необработанный клиент аудио / видео данных отправляется на сервер
  2. Поток разбивается на 1-секундные куски
  3. Кодирование потока в различные полосы пропускания
  4. Клиент получает файл манифеста с описанием доступных сегментов
  5. Загружает один сегмент, используя обычный HTTP
  6. Пропускная способность следующего сегмента, выбранного по производительности предыдущего
  7. Клиент может выбирать из ряда альтернативных потоков с различными скоростями передачи данных

Итак. Как мы разделяем наши аудио / видео данные на куски с помощью Python?

Мы знаем, что Microsoft уже создала Expression Encoder 2 , который включает адаптивную потоковую передачу, но поддерживает только Silverlight, а это не то, что нам нужно.

Редактировать:
Также естьРешение называется FFmpeg (а для Python - оболочка PyFFmpeg), но поддерживает только адаптивную потоковую передачу Apple.

Ответы [ 2 ]

4 голосов
/ 22 ноября 2010

Я думаю, ffmpeg - это основной инструмент, на который вы захотите взглянуть.Это стало наиболее хорошо поддерживаемым медиа-манипулятором с открытым исходным кодом.Для этого есть оболочка Python .Хотя также возможно получить доступ к командной строке через модуль подпроцесса .

2 голосов
/ 24 ноября 2010

Я нашел несколько хороших статей о том, как другие люди строят stream segmenter для других платформ, так что теперь мы знаем, как создать его на Python.

...