2013-04-29 6 views
5

Ich habe sehr große, qualitativ hochwertige Videos, die ich über HTTP (für mobile Geräte) streamen muss. Es ist nicht möglich, ffmpeg zu verwenden, um eine "Streaming" -Version des Videos zu erstellen.C# Streaming heruntergestufte Videoqualität über HTTP

Ich muss auch die Such/Beginne-Funktion von HTTP unterstützen, damit der Benutzer das Video überspringen kann.

Ich verwende ServiceStack (nicht IIS).

Gibt es irgendwelche Möglichkeiten da draußen?

Ich habe Zugriff auf den Server, so dass alle Dienste von Drittanbietern akzeptabel sind.

Antwort

4

Wir haben kürzlich hinzugefügt Partial Content-Unterstützung sowohl in directly serving Static files als auch via a Web Service. Dieses wird in v3.9.44 release of ServiceStack auf NuGet verfügbar sein, das für dieses Wochenende geplant ist (Sie können ServiceStack from the repo bauen, wenn Sie es vorher brauchen).

Partial Content Unterstützung wird automatisch aktiviert, wenn es verfügbar sein wird, suchen/streamen statische Datei (gedient durch ServiceStack) sowie jede Dienstleistung, die:

eine Datei zurückgibt:

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

Returns Bytes:

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

liefert einen Strom:

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

liefert einen rohen string:

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

Partial Content Unterstützung Satz zu deaktivieren:

Config.AllowPartialResponses = false; 
+0

Beautiful! Irgendwelche Vorschläge zur komprimierten Version der Videos? –

+0

Nein, wir ermöglichen nur den Transport von Daten, die Komprimierung ist ein Problem auf Anwendungsebene, von dem ich mir vorstelle, dass es bereits im komprimierten Stream/Bytes ist, der vom Client bereits verstanden/erwartet wird. – mythz

+1

Ich bin immer noch ein bisschen geschockt, dass das Hinzufügen von Video-Unterstützung zu meiner API "gerade funktioniert" ... Kopieren Sie meinen Bild-Service, passen Sie ein paar Dinge, und voila. Genial. – sirthomas