В настоящее время мы работаем над видеоконференцией chat + (совместное использование файлов +) с использованием веб-сайтов HTML5. Чтобы сделать наше приложение более доступным, мы хотим реализовать Adaptive Streaming, используя следующую последовательность:
- Сырой клиент аудио/видеоданных переходит на сервер
- Поток разделен на 1 секунду.
- Кодировать поток в изменяющуюся полосу пропускания
- Клиент получает файл манифеста, описывающий доступные сегменты
- Загрузка одного сегмента с использованием обычного HTTP
- Полоса пропускания следующего сегмента, выбранного при выполнении предыдущего.
- Клиент может выбирать из нескольких различных альтернативных потоков с различными скоростями передачи данных.
Итак... Как мы разделяем наши аудио/видео данные в кусках с Python?
Мы знаем, что Microsoft уже создает Expression Encoder 2, который позволяет адаптировать потоковое видео, но поддерживает только Silverlight и не то, что мы хотим.
Edit:
Также есть решение под названием FFmpeg (и для Python - оболочка PyFFmpeg), но оно поддерживает только Apple Adaptive streaming.