【发布时间】:2014-08-11 23:18:06
【问题描述】:
我使用Licode,它是开源 WebRTC 通信平台。我想降低视频质量(视频帧位大小)。
流如下所示:
var stream = Erizo.Stream({
audio:true,
video:video_constraints,
data: true,
attributes: {name:'myStream', type:'public'}
});
可以像这样获取 VideoFrame:
var bitmap;
var canvas = document.createElement('canvas');
var context = canvas.getContext('2d');
canvas.id = "testCanvas";
document.body.appendChild(canvas);
setInterval(function() {
bitmap = stream.getVideoFrame();
canvas.width = bitmap.width;
canvas.height = bitmap.height;
context.putImageData(bitmap, 0, 0);
}, 100);
然后我发送画布(一个视频帧):
var bitmap;
var canvas = document.createElement('canvas');
var context = canvas.getContext('2d');
setInterval(function() {
canvas.width = video.clientWidth;
canvas.height = video.clientHeight;
context.drawImage(video, 0, 0, canvas.width, canvas.height);
mydata = canvas.toDataURL("image/jpeg");
erizoStream.sendData({ base64:mydata});
}, 200);
erizoStream.sendData({ base64:mydata}); 对速度性能毫无用处。
它发送数据很快,但接收时出现动画问题:
stream.addEventListener("stream-data", function(evt){
//alert('Received data '+ evt.msg['base64']);
if(evt.msg['base64']){
renderBase64(evt.msg['base64']);
}
});
设置setInterval time 200ms 使得发送只进行得很快。但是当我在新窗口中打开页面(标签)时,这会更快。
我想在不使用erizoStream.sendData(); 的情况下减小视频帧(位大小)。仅来自视频本身或使用它来解决速度性能问题。
【问题讨论】:
-
那么,changing the quality at the Jpeg url 创作结束了吗?您当前对 getUserMedia 调用的视频限制是什么?
标签: performance video-streaming html5-video webrtc licode