2014-09-27 7 views
6

मैं उपयोगकर्ता के कैमरे पर कब्जा कर रहा हूँ, मैं सबसे अच्छा समाधान संभव के साथ चित्र को पकड़ने के लिए चाहते हैं, तो मेरे कोड के नीचे टुकड़ा की तरह कुछ है,जाओ मीडिया विवरण (संकल्प और फ्रेम दर) MediaStream वस्तु से

मैं चाहता हूँ आने वाली स्ट्रीम से रिज़ॉल्यूशन विवरण पढ़ने के लिए, इसलिए मैं इसे वीडियो ऊंचाई और चौड़ाई के रूप में सेट कर सकता हूं, जिसे मैं स्नैपशॉट पर क्लिक करने के लिए उपयोग करूंगा, मैं चाहता हूं कि स्नैपशॉट स्ट्रीम द्वारा प्रदान की जाने वाली सर्वोत्तम गुणवत्ता का हो, यह संभव है (रिज़ॉल्यूशन पढ़ने के लिए stream परिवर्तनीय से विवरण)?

संपादित करें: मैं 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); 
} 

}) 

के फ्रेम दर पता लगाने के लिए चाहते हैं वीडियो संचारण हूँ एचटीएमएल कोड:

<div id='msg' class'message'></div> 
    <div > 
    <video id='video' autoplay></video> 
    </div> 

उत्तर

8

आप कर सकते हैं ऑनलोडेड मेटाडेटा के माध्यम से धारा संलग्न होने के बाद वीडियो तत्व से वीडियो स्ट्रीम मूल संकल्प प्राप्त करें। यह फ्रेम दर जानकारी प्रदान नहीं करता है।

navigator.getUserMedia({ video: true, audio:true}, function(stream) { 
    var video = $('#video')[0]; 
    video.src = window.URL.createObjectURL(stream); 
    video.muted=true; 
    video.onloadedmetadata = function() { 
     console.log('width is', this.videoWidth); 
     console.log('height is', this.videoHeight); 
    } 
    //$('#video').hide(); 
    }, function(){ 
    showMessage('unable to get camera', 'error'); 
    }); 

प्रति W3C draft, स्ट्रीम के भीतर मीडिया ट्रैक इस जानकारी प्रदान करना चाहिए, लेकिन व्यवहार में ब्राउज़रों इसे लागू करने में अभी तक।

getCapabilities() विधि के नामों का शब्दकोश देता है जो ऑब्जेक्ट का समर्थन करता है।

+0

ध्यान दें कि यह केवल तभी काम करता है जब आपने स्ट्रीम की चौड़ाई और ऊंचाई को संशोधित नहीं किया हो। यदि आपके पास है तो आप केवल webrtc स्ट्रीम (जो अलग होंगे) की बजाय स्थानीय वीडियो विंडो के लिए सेटिंग प्राप्त करेंगे। – CpnCrunch

2

navigator.mediaDevices.getUserMedia() विधि आप वीडियो और ऑडियो धाराओं के साथ MediaStream वस्तु देता है। यह MediaStream ऑब्जेक्ट getVideoTracks() और 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 - वेब कैमरा क्रमांक,

framRate - अपने वीडियोस्ट्रीम की फ़्रेमरेट,

width - वीडियो चौड़ाई,

height - वीडियो ऊंचाई।

+4

कृपया उत्तर देने के लिए कुछ विवरण जोड़ें। – jjj

+1

विवरण जोड़ा गया – Eugene

संबंधित मुद्दे