2012-11-17 20 views
25

करने के लिए एक वेबकैम/कैमरा वीडियो स्ट्रीम getUserMedia का उपयोग करते हुए मैं ग्राहक की वेबकैम/कैमरा से वीडियो स्ट्रीम पर कब्जा कर सकते हैं अपलोड करने के लिए। और video टैग का उपयोग करके मैं इसे क्लाइंट के ब्राउज़र पर दिखा सकता हूं। कोड:एचटीएमएल 5 समाधान सर्वर

<video autoplay></video> 

<script type="text/javascript"> 
    window.URL = window.URL || window.webkitURL; 
    navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia; 

    var video = $('video')[0]; 

    var failed = function(e) { 
     console.log('Denied!', e); 
    }; 

    if(navigator.getUserMedia) { 
     navigator.getUserMedia({video: true, audio: true}, function(stream) { 
       video.src = window.URL.createObjectURL(stream); 
      }, failed 
     ) 
    } else { 
     console.log('Not supported!'); 
    } 
</script> 

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

उत्तर

3

इस लेख पर एक नज़र डालें:

मैं के कुछ उदाहरण पाया

: http://www.smartjava.org/content/face-detection-using-html5-javascript-webrtc-websockets-jetty-and-javacvopencv

यह Webrtc के उपयोग से पता चलताजब तक फ़ायरवॉल के लिए आवश्यक

ये API, कि एक ब्राउज़र के भीतर चलाया जा सकता है निर्माण अनुप्रयोगों सक्षम होना चाहिए बिना किसी अतिरिक्त डाउनलोड या प्लगइन है कि ऑडियो, वीडियो और अनुपूरक वास्तविक समय संचार का उपयोग कर दोनों पक्षों के बीच संचार की अनुमति की आवश्यकता होती है, बीच सर्वर (का उपयोग किए बिना ट्रैवर्सल, या मध्यस्थ सेवाएं प्रदान करने के लिए)।

+0

मैं इस देखा। यह उदाहरण 2 के समान है, मैंने अपने प्रश्न में उल्लेख किया है। लेख से: 'अगला कदम कैनवास से छवि को पकड़ना है, इसे बाइनरी में परिवर्तित करना है, और उसे वेबसाईट पर भेजना है।' समस्या यह है कि मुझे ऑडियो की भी आवश्यकता है, इसलिए यह मेरे लिए काम नहीं करता है। – Vikas

+1

लेकिन ऐसा लगता है ऑडियो भी उपलब्ध है: http://www.smartjava.org/content/record-audio-using-webrtc-chrome-and-speech-recognition-websockets –

11

MediaStreamRecorder getUserMedia() स्ट्रीम रिकॉर्ड करने के लिए एक वेबआरटीसी एपीआई है। यह वेब ऐप्स को लाइव ऑडियो/वीडियो सत्र से फ़ाइल बनाने की अनुमति देता है।

<video autoplay></video> 

    <script language="javascript" type="text/javascript"> 
    function onVideoFail(e) { 
     console.log('webcam fail!', e); 
     }; 

    function hasGetUserMedia() { 
     // Note: Opera is unprefixed. 
     return !!(navigator.getUserMedia || navigator.webkitGetUserMedia || 
       navigator.mozGetUserMedia || navigator.msGetUserMedia); 
    } 

    if (hasGetUserMedia()) { 
     // Good to go! 
    } else { 
     alert('getUserMedia() is not supported in your browser'); 
    } 

    window.URL = window.URL || window.webkitURL; 
    navigator.getUserMedia = navigator.getUserMedia || 
          navigator.webkitGetUserMedia || 
           navigator.mozGetUserMedia || 
           navigator.msGetUserMedia; 

    var video = document.querySelector('video'); 
    var streamRecorder; 
    var webcamstream; 

    if (navigator.getUserMedia) { 
     navigator.getUserMedia({audio: true, video: true}, function(stream) { 
     video.src = window.URL.createObjectURL(stream); 
     webcamstream = stream; 
    // streamrecorder = webcamstream.record(); 
     }, onVideoFail); 
    } else { 
     alert ('failed'); 
    } 

    function startRecording() { 
     streamRecorder = webcamstream.record(); 
     setTimeout(stopRecording, 10000); 
    } 
    function stopRecording() { 
     streamRecorder.getRecordedData(postVideoToServer); 
    } 
    function postVideoToServer(videoblob) { 

     var data = {}; 
     data.video = videoblob; 
     data.metadata = 'test metadata'; 
     data.action = "upload_video"; 
     jQuery.post("http://www.kongraju.in/uploadvideo.php", data, onUploadSuccess); 
    } 
    function onUploadSuccess() { 
     alert ('video uploaded'); 
    } 

    </script> 

    <div id="webcamcontrols"> 
     <button class="recordbutton" onclick="startRecording();">RECORD</button> 
    </div> 

युक्ति:

http://www.w3.org/TR/mediastream-recording/

आप सर्वर से दर्ज की गई फ़ाइल भेज सकते हैं।

+0

क्या आपको नहीं लगता कि यह बहुत धीमी है? मैं वर्तमान में एक ही समाधान का उपयोग कर रहा हूं लेकिन 1 मिनट के ऑडियो के लिए आपके पास अपलोड करने के लिए बहुत कुछ है। –

+12

मैं अभी भी एक स्ट्रीमिंग समाधान की तलाश में हूं जब मैं बाइट्स भेजता हूं जैसे ही वे पहुंचते हैं। –