Измельчение медиапотока в веб-сервере HTML5 для веб-чата/приложения для видеоконференций

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

  • Сырой клиент аудио/видеоданных переходит на сервер
  • Поток разделен на 1 секунду.
  • Кодировать поток в изменяющуюся полосу пропускания
  • Клиент получает файл манифеста, описывающий доступные сегменты
  • Загрузка одного сегмента с использованием обычного HTTP
  • Полоса пропускания следующего сегмента, выбранного при выполнении предыдущего.
  • Клиент может выбирать из нескольких различных альтернативных потоков с различными скоростями передачи данных.

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

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

Edit:
Также есть решение под названием FFmpeg (и для Python - оболочка PyFFmpeg), но оно поддерживает только Apple Adaptive streaming.

Ответ 2

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