python html5 stream split

python - Cortando el flujo de medios en el servidor de websocket HTML5 para la aplicación de conferencia/videoconferencia basada en web



python websocket server (2)

He encontrado algunos buenos artículos sobre cómo otras personas crean un stream segmenter para otras plataformas, por lo que ahora sabemos cómo construir uno en Python.

Actualmente estamos trabajando en una aplicación de videoconferencia de chat + (uso compartido de archivos +) usando websockets HTML5 . Para hacer que nuestra aplicación sea más accesible, queremos implementar Adaptive Streaming, usando la siguiente secuencia:

  1. El cliente de datos de audio / video sin procesar va al servidor
  2. Stream se divide en trozos de 1 segundo
  3. Codifica la secuencia en anchos de banda variables
  4. El cliente recibe un archivo de manifiesto que describe los segmentos disponibles
  5. Descarga un segmento usando HTTP normal
  6. Ancho de banda del siguiente segmento elegido en el rendimiento del anterior
  7. El cliente puede seleccionar entre una serie de flujos alternativos diferentes a una variedad de velocidades de datos

Entonces ... ¿Cómo dividimos nuestros datos de audio / video en fragmentos con Python?

Sabemos que Microsoft ya compila Expression Encoder 2, que habilita Adaptive Streaming, pero solo admite Silverlight y eso no es lo que queremos.

Editar:
También hay una solución llamada FFmpeg (y para Python una envoltura de PyFFmpeg), pero solo es compatible con la transmisión Adaptive de Apple.