Licode kullanıyorum, Open Source WebRTC Communications Platform yazılımıdır. Video kalitesini (Video-Frame bit boyutu) azaltmak istiyorum.Licode Erizo.Stream Video Frame kalitesi
akışı aşağıdaki gibidir:
var stream = Erizo.Stream({
audio:true,
video:video_constraints,
data: true,
attributes: {name:'myStream', type:'public'}
});
Böyle VideoFrame almak mümkündür:
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);
Ve (bir video Çerçeve) tuval gönderin:
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});
, hız performansı için işe yaramıyor.
Veri hızlı gönderir ancak alırken bu animasyon ile sorunları vardır:
stream.addEventListener("stream-data", function(evt){
//alert('Received data '+ evt.msg['base64']);
if(evt.msg['base64']){
renderBase64(evt.msg['base64']);
}
});
seti 200 ms sadece hızlı gider gönderme yapar setInterval
kez. Ancak bu, sayfayı yeni pencerede açtığımda (sekme) daha hızlı oluyor.
Video çerçevesini (bit boyutu) erizoStream.sendData();
kullanmadan azaltmak istiyorum. Sadece videonun kendisinden veya hız performans sorununu çözerek bunu kullanıyor.
, [Jpeg url'deki kalitesini değiştirerek] (http://stackoverflow.com/questions/14383557/setting-canvas-todataurl-jpg-quality) oluşturma çıktı? GetUserMedia çağrısı için mevcut video kısıtlamalarınız nelerdir? –