我的目标:通过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);
});
});
我可以发送文本,一切都很棒,但是当我向服务器发送流时,我得到的是空值。
我寻找了一些提示,但仍然无法正常工作。也许我错过了什么。
有人可以帮助我吗?
PS我从视频标签获取视频
答案 0 :(得分:0)
将您的媒体转换为base64,这样服务器将其读取为一串文本并将其返回
答案 1 :(得分:0)
问题已关闭。当我变红时,很难直播。如果有人阅读此内容,请检查此链接https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder。您必须了解的内容:录制视频的一小部分并将其发送到服务器。希望对您有所帮助。
答案 2 :(得分:0)
您无法将纯流对象发送到服务器吗?