2013-04-29 14 views
5

Ho video molto grandi di alta qualità che ho bisogno di trasmettere su HTTP (per dispositivi mobili). Non è possibile utilizzare ffmpeg per creare una versione "streaming" del video.C# Streaming di video di qualità scadente su HTTP

Devo anche continuare a supportare la funzione di ricerca/avvio di HTTP in modo che l'utente possa saltare in avanti nel video.

Sto utilizzando ServiceStack (non IIS).

Ci sono opzioni disponibili là fuori?

Ho accesso al server, quindi tutti i servizi di terze parti sono accettabili.

risposta

4

Abbiamo aggiunto di recente Supporto contenuto parziale sia in directly serving Static files sia in via a Web Service. Questo sarà disponibile in v3.9.44 release of ServiceStack su NuGet che è pianificato per questo fine settimana (è possibile creare ServiceStack from the repo se ne hai bisogno prima di allora).

sostegno Partial Content verrà attivata automaticamente dove sarà disponibile a cercare/trasmettere qualsiasi tipo di file statici (servita attraverso ServiceStack), così come qualsiasi servizio che:

restituisce un file:

return new HttpResult(new FileInfo(filePath), request.MimeType); 

restituisce byte:

return new HttpResult(byteArray, "audio/mpeg"); 

restituisce un flusso:

return new HttpResult(memoryStream, "audio/mpeg"); 

restituisce una stringa raw:

return new HttpResult(customText, "text/plain"); 

Per disabilitare parziali di supporto Contenuti:

Config.AllowPartialResponses = false; 
+0

Bella! Qualche suggerimento sulla versione compressa dei video? –

+0

No, semplicemente abilitiamo il trasporto dei dati, la compressione è una preoccupazione a livello di applicazione che immagino sarebbe già nel flusso/byte compresso che viene restituito, che è già stato compreso/previsto dal client. – mythz

+1

Sono ancora un po 'scioccato dal fatto che l'aggiunta del supporto video alla mia API "abbia funzionato" ... copia/incolla il mio servizio di immagini, aggiusta alcune cose e voilà. Eccezionale. – sirthomas