2012-03-14 23 views
5

मैं वीएलसीजे एपीआई का उपयोग कर एक वेब कैमरा रिकॉर्डिंग एप्लिकेशन लिख रहा हूं। मुझे वेबकैम से वीडियो स्ट्रीम में गति का पता लगाने के बारे में कुछ मदद चाहिए। यदि वीडियो स्ट्रीम में कोई गति नहीं मिली है, तो रिकॉर्डिंग बंद हो जाएगी।गति का पता लगाने वीएलसीजे

मैं में sout श्रृंखला --video फिल्टर = गति उपयोग करने के लिए कोशिश की है लेकिन यह है कि किसी भी प्रस्ताव का पता नहीं था।

मेरे sout श्रृंखला:

String[] options = { 
        ":sout=#transcode{vcodec=mp2v,vb=4096,scale=1,acodec=mpga,ab=128,channels=2,samplerate=44100}:duplicate{dst=file{dst=" + fileName + "},dst=display,select=noaudio,video-filter=motion} --video-filter=motion",":input-slave=alsa://hw:0,0" }; 

आपकी प्रतिक्रिया के लिए देख रहे हैं। अग्रिम में धन्यवाद।

उत्तर

3

आप वीएलसी कमांड विकल्प स्ट्रिंग सरणी को गलत तरीके से पास करते हैं; (प्रत्येक वीएलसी आदेश विकल्प एक सरणी तत्व के रूप में व्यवहार करना चाहिए) यह उदाहरण निम्नलिखित में के रूप में होना चाहिए:

String[] options = { 
    ":rtsp-mcast", 
    ":sharpen-sigma=2.0", 
    ":video-filter=motion", 
    ":blur-factor=127", 
    ":ipv4-timeout=3000", 
    ":no-video-title-show", 
    ":loop", 
    ":sout-all", 
    ":sout-keep" 
}; 

नीचे दिए गए विकल्प स्ट्रिंग के बाद से दो वीएलसी आदेशों एक स्ट्रिंग में एक साथ शामिल किए गए हैं काम नहीं करेगा; :sout कमान और --video-filter=motion आदेश:

":sout=#transcode{vcodec=mp2v,vb=4096,scale=1,acodec=mpga,ab=128,channels=2,samplerate=44100}:duplicate{dst=file{dst=" + fileName + "},dst=display,select=noaudio,video-filter=motion} --video-filter=motion" 

यह इस प्रकार के रूप में किया जाना चाहिए:

":sout=#transcode{vcodec=mp2v,vb=4096,scale=1,acodec=mpga,ab=128,channels=2,samplerate=44100}:duplicate{dst=file{dst=" + fileName + "},dst=display,select=noaudio,video-filter=motion}", 
"--video-filter=motion" 
+0

उत्तर के लिए धन्यवाद। मैंने कोशिश की लेकिन यह मेरे लिए काम नहीं कर रहा है। अब स्ट्रीम को फ़ाइल में भी सहेजा नहीं गया है। मुझे उम्मीद है कि आपने एक क्रॉस-प्लेटफार्म वीएलसीजे ऐप बनाने की कोशिश की है जो वेबकैम से रिकॉर्ड करेगा और वीडियो में गति नहीं मिलने पर रिकॉर्डिंग को रोक देगा। –

+0

@iltafkhalid अजीब ... यह वीएलसीजे 1.2.0 और libVLC 1.1.11 का उपयोग कर मेरे लिए काम करता है। मैं वीएलसीजे 'प्लेमेडिया (एमआरएल, विकल्प)' विधि का उपयोग करके खेला गया वीडियो में मोशन डिटेक्शन बॉक्स देखता हूं, जिसमें 'वीडियो-फिल्टर = मोशन' विकल्प शामिल है। – ecle

+0

@iltafkhalid उपरोक्त नमूना कोड सिर्फ मेरा उदाहरण है। आपको इसे आवश्यकतानुसार अनुकूलित करने की आवश्यकता है जिसमें – ecle

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