2010-11-22 13 views
18

Attualmente stiamo lavorando su un'applicazione di videoconferenza chat + (file sharing +) using HTML5 websockets. Per rendere la nostra applicazione più accessibile che vogliamo implementare streaming adattivo, utilizzando la seguente sequenza:Ridurre il flusso multimediale nel server Websocket HTML5 per l'applicazione di chat video/videoconferenza

  1. cliente di dati audio/video Raw va al server di
  2. flusso è diviso in 1 pezzi secondo
  3. flusso Encode in varia larghezze di banda
  4. cliente riceve file manifesto che descrive segmenti disponibili
  5. Download un segmento con una normale HTTP
  6. Bandwidth segmento successivo scelti sulle prestazioni del precedente
  7. Cliente può scegliere tra una serie di flussi alternativi diverse in una varietà di velocità di trasferimento dati

Quindi .. Come abbiamo diviso i nostri dati audio/video in blocchi con Python?

Sappiamo che Microsoft ha già creato lo Expression Encoder 2 che abilita lo streaming adattivo, ma supporta solo Silverlight e non è quello che vogliamo.

Modifica:
C'è anche una soluzione chiamata FFmpeg (e per Python un wrapper PyFFmpeg), ma supporta solo lo streaming Apple Adaptive.

+0

Ehi Enrico (Leslie Nielsen?) Che ne è stato di questo progetto? Mi sono ritrovato a colpire lo stesso muro, solo molto dopo di te;) Per favore, tienimi aggiornato con ulteriori dettagli che hai. Grazie! – Mussser

risposta

3

Penso che ffmpeg sia lo strumento principale che vorrete vedere. È diventato il manipolatore dei media open source più ben supportato. C'è uno python wrapper per questo. Anche se è anche possibile access the command line through the subprocess module.

+1

PyFFmpeg è davvero un codificatore ma, come posso vederlo ora, è il passaggio 3 del nostro processo. –

+0

Hmm, avrei pensato che ffmpeg potesse gestire l'interruzione dei media. Sarò sicuramente interessato a vedere cosa scopri o quali altre risposte si presentano. – mjhm

+0

FFmpeg/PyFFmpeg supporta solo lo streaming Apple Adaptive :-( –

2

Ho trovato qualche bello articles su come altre persone costruiscono un stream segmenter per altre piattaforme, quindi ora sappiamo come crearne uno in Python.