如何将视频流发送到node.js服务器

时间:2018-10-25 08:20:10

标签: javascript node.js video

我的目标:通过node.js服务器从一个客户端向另一个客户端发送一些视频流。但是我什至无法将视频从第一个服务器发送到服务器。

Cleint

var socket = io(":9966");

    socket.on('message', function (data) {
        console.log(data)
    })

    function onVideoFail(e) {
        console.log('webcam fail!', e);
    };


    window.URL = window.URL || window.webkitURL;
    navigator.getUserMedia  = navigator.getUserMedia ||
        navigator.webkitGetUserMedia ||
        navigator.mozGetUserMedia ||
        navigator.msGetUserMedia;

    var video = document.querySelector('video');


        navigator.getUserMedia({video: true}, function(stream) {
            console.log(stream);
            video.src = window.URL.createObjectURL(stream);

            var arrayOfStreams = [stream];
            var medias = new MediaStreamRecorder(stream);
            medias.ondataavailable = function(blob) {
                socket.emit("streaming", blob);
            };
            medias.start();
            socket.emit("streaming", stream);
            socket.emit('test', 'mess from 1');
        }, onVideoFail);

服务器

io.on('connection', function (socket) {
log.info('new con!', socket.id);

socket.send("you connected to server");

socket.on('test', function (data) {
    console.log(data);
    socket.broadcast.send(data);
});

socket.on('streaming', function (stream) {
    log.info("i`m in stream", socket.id);
    log.info(stream);

    socket.broadcast.emit('streaming', stream);
});
});

我可以发送文本,一切都很棒,但是当我向服务器发送流时,我得到的是空值。

What I see on server side

我寻找了一些提示,但仍然无法正常工作。也许我错过了什么。

有人可以帮助我吗?

PS我从视频标签获取视频

3 个答案:

答案 0 :(得分:0)

将您的媒体转换为base64,这样服务器将其读取为一串文本并将其返回

答案 1 :(得分:0)

问题已关闭。当我变红时,很难直播。如果有人阅读此内容,请检查此链接https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder。您必须了解的内容:录制视频的一小部分并将其发送到服务器。希望对您有所帮助。

答案 2 :(得分:0)

您无法将纯流对象发送到服务器吗?