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

5
我的目标是通过Node.js服务器将一些视频流从一个客户端发送到另一个客户端。但我甚至无法将第一个客户端的视频发送到服务器。
客户端
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);
});
});

我可以发送文本和其他一切,但当我向服务器发送流时,我得到了空值。

服务器端显示如下

我寻找了一些提示,但仍然不起作用。也许我错过了什么。

有人能帮助我吗?

PS:我从视频标签中获取视频。

2个回答

0

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


我了解base64,它只适用于图像。这正确吗? - Дмитрий Фомин

-2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接