Как отправить видеопоток на сервер node.js

Моя цель: отправить некоторый видеопоток от одного клиента к другому через сервер node.js. Но я даже не могу отправить видео с первого клинта на сервер.

Клинт

var socket = io(":9966");

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

    function onVideoFail(e) {
        console.info('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.info(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.info(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 Я получаю видео из тега видео

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
4
0
1 929
2

Ответы 2

преобразовать ваши медиа в base64, таким образом сервер прочитает его как строку текста и вернет обратно

Я красный про base64, и он работает только для изображения. Это верно?

Дмитрий Фомин 25.10.2018 13:25

Вопрос закрыт. Поскольку я красный, трудно сделать прямую трансляцию. Если кто это читает, проверьте ссылку https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder. Что вы должны понимать: запишите небольшой фрагмент видео и отправьте его на сервер. Надеюсь, это поможет.

Другие вопросы по теме