小编jos*_*poo的帖子

Node.js服务器上的实时视频流

我一直在研究这个问题但很沮丧,因为我觉得解决方案应该很简单,尽管我知道不会.理想情况下,我只想使用node来托管服务器,webrtc getusermedia来获取本地客户端上的实时流,并使用类似socket.io的内容将流发送到服务器,然后服务器将流广播到远程服务器客户; 好像它是一个简单的消息聊天应用程序.

只是考虑一下这似乎是一种简单的方法,因为实时视频需要连续发送大量数据,这并不等于在事件发送后发送单个消息甚至文件(按下发送按钮) .

也许我错了,但是直播视频流应用程序是否可以遵循node/socket.io messenger app的相同结构?你会发送从getUserMedia返回的媒体对象,blob,一些二进制数据吗(我已经尝试了所有这些,但可能没有正确).

理想的目标是一个应用程序,根据需要使用尽可能少的额外绒毛,安装很少的npm,几乎没有额外的JavaScript库,或者很少担心编码/解码或者ICE或STUN到底是什么.有什么方法可以这样做,还是我要求太多?

理想的客户

    var socket = io();
    var local = document.getElementById("local_video");
    var remote = document.getElementById("remote_video");

    // display local video
    navigator.mediaDevices.getUserMedia({video: true, audio: true}).then(function(stream) {
      local.src = window.URL.createObjectURL(stream);
      socket.emit("stream", stream);
    }).catch(function(err){console.log(err);});

    // displays remote video
    socket.on("stream", function(stream){
      remote.src = window.URL.createObjectURL(stream);

    });
Run Code Online (Sandbox Code Playgroud)

理想服务器

var app = require("express")();
var http = require("http").Server(app);
var fs = require("fs");
var io = require("socket.io")(http);

app.get('/', onRequest);
http.listen(process.env.PORT || 3000, function() {
    console.log('server started');
})

//404 response …
Run Code Online (Sandbox Code Playgroud)

javascript live-streaming node.js socket.io webrtc

25
推荐指数
2
解决办法
3万
查看次数

标签 统计

javascript ×1

live-streaming ×1

node.js ×1

socket.io ×1

webrtc ×1