2017-01-25 4 views
0

Ich habe im Web suchen, wie ein Video.mp4 zu vielen HTML5-Clients gleichzeitig gleichzeitig streamen. Ich lese einige Tutorials, aber ich sehe nicht das Richtige in Nodejs, dies zu tun.streamen Sie eine Video-Datei von Nodejs Server zu vielen HTML5-Clients gleichzeitig

Haben Sie einige Möglichkeiten zu erkunden?

+0

Möchten Sie eine statische Videodatei streamen oder nur bereitstellen? –

+0

Statische Datei. Die Übertragung mit einer statischen Videodatei – yanstv

+0

dann nur die Datei mit Express (Syntax in der Antwort unten) dienen sollte Ihr Problem zu lösen –

Antwort

0

Sie können Express verwenden, um Videos als Flecken-Dateien zu dienen - dies ermöglicht es mehreren HTML5-Clients, Ihr Video zu streamen.

Die Syntax ist sehr einfach - Sie legen die Videos in einen bestimmten Ordner und sagen Express, statische Dateien aus diesem Ordner zu dienen.

var express = require('express'); 
var path = require('path'); 
var app = express(); 

//Tell express which folder to use to server static files (can be more than one) 
app.use(express.static(path.join(__dirname, 'video_folder'))); 

//Listen for requests 
app.listen(3000); 

Nachdem dies gesagt ist, wenn Sie eine gute Nutzererfahrung müssen wahrscheinlich verwenden Sie einen dedizierten Streaming-Server wollen, und müssen unter Umständen mehrere verschiedene Versionen des Videos für verschiedene Geräte gerecht zu werden bieten. Sie müssen auch verschiedene Bitratenversionen des Videos haben, um unterschiedliche Netzwerkbedingungen zu ermöglichen, wenn Sie ein adaptives Bitrate-Protokoll verwenden (der Client fordert das Video Chunk für Chunk an und wählt die Bitrate für jeden Chunk abhängig von den Netzwerkbedingungen).

Werfen Sie einen Blick auf einige der Open-Source-Streaming-Server, um ein Gefühl dafür zu bekommen, ob Sie eines verwenden müssen - z. GStreamer: https://gstreamer.freedesktop.org

+0

Thanks. Aber wenn ich eine Videodatei wie Live-Übertragung streamen möchte, ist dieser Code nicht der Gute. Ich möchte eine Datei übertragen, ohne das Video steuern zu können. Etwas wie diese socket.broadcast.emit ('my_video', chunck). Aber ich weiß socket.io ist nicht der richtige Weg. Ich lerne etwas wie fs.createReadStream, aber es löst mein Problem nicht – yanstv

Verwandte Themen