我正在捕获用户的相机,我想以尽可能最佳的分辨率捕获图片,所以我的代码类似于下面的代码片段,
我想从传入流中读取分辨率详细信息,因此我可以将其设置为视频高度和宽度,我将用它来单击快照,我希望快照具有流提供的最佳质量,这可能吗(读取分辨率详细信息stream
多变的) ?
EDIT :我正在使用传输视频webrtc
所以我还想知道传输视频流的帧速率
$(document).ready(function(){
navigator.getUserMedia = ( navigator.getUserMedia ||navigator.mozGetUserMedia ||navigator.webkitGetUserMedia ||navigator.msGetUserMedia);
if(navigator.getUserMedia){
navigator.getUserMedia({ video: true, audio:true}, function(stream) {
var video = $('#video')[0];
video.src = window.URL.createObjectURL(stream);
video.muted=true;
//$('#video').hide();
}, function(){
showMessage('unable to get camera', 'error');
});
}else{
showMessage('no camera access mate.', 'error');
}
function showMessage(msg,type) { // type 'success' or 'error'
$('#msg').text(msg);
}
})
html代码:
<div id='msg' class'message'></div>
<div >
<video id='video' autoplay></video>
</div>
navigator.mediaDevices.getUserMedia()
方法返回MediaStream
对象与您的视频和音频流。
这MediaStream
对象有getVideoTracks()
and getAudioTracks()
方法。
getVideoTracks()[0]
从本地网络摄像头返回视频流。该 videotrack 对象具有 getSettings() 方法,返回一些有用的属性,例如:
stream.getVideoTracks()[0].getSettings().deviceId
stream.getVideoTracks()[0].getSettings().frameRate
stream.getVideoTracks()[0].getSettings().height
stream.getVideoTracks()[0].getSettings().width
stream.getVideoTracks()[0].getSettings().frameRate
结果,例如:
aspectRatio
: 1.3333333333333333
deviceId
:“e85a2bd38cb0896cc6223b47c5d3266169524e43b6ab6043d8dd22d60ec01a2f”
frameRate
: 30
height
: 480
width
: 640
aspectRatio
-- 4x3(1.3333333333333333) 或 16x9(全屏与否),
deviceId
-- 网络摄像头 ID,
framRate
-- 视频流的帧速率,
width
-- 视频宽度,
height
-- 视频高度。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)