我的目标:通过 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 我从视频标签获取视频
最佳答案
将您的媒体转换为 base64,这样服务器可以将其作为文本字符串读取并返回
关于javascript - 如何将视频流发送到 node.js 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52984568/