यूवीसी कैमरा / यूएसबी कैमरा कस्टम ॲप के लिए Android समीक्षा by AndroidFreeware
Android-UVC-कैमरा
यह ऐप आपके Android डिवाइस से एक usb कैमरे से जुड़ता है। (OTG केबल या OTG हब की आवश्यकता है)
यह प्रोजेक्ट सभी Android डिवाइसों (4.1 आइस क्रीम सैंडविच से ऊपर)(मीडियाथेक डिवाइस भी) के लिए UVC कैमरों के लिए एक आइसोक्रोनस वीडियो स्ट्रीम करने के लिए बनाया गया था। प्रोग्राम आपके उपयोगकर्ता स्थान usb डिवाइस ड्राइवर का उपयोग करता है ताकि आपके कैमरा डिवाइस के साथ आइसोक्रोनस ट्रांसफर किया जा सके।
अपने उपयोगकर्ता स्थान डिवाइस ड्राइवर को सेट अप करने के लिए इस तरीके का पालन करें:
पहले आपको अपने डिवाइस के लिए सभी कैमरा सेटिंग्स सेट करनी होंगी। प्रोग्राम फिर मानों को सहेजता है और आप उन्हें बाद में पुनर्स्थापित कर सकते हैं या अन्य मानों से अधिलेखित कर सकते हैं। मानों को समायोजित करने के लिए Edit/Save/Restore बटन का उपयोग करें। कैमरे को खोजने और सेट अप करने के लिए स्वचालित कैमरा खोज का उपयोग करें।
व्याख्या:
जब स्वचालित खोज सफल होती है, तो आप पहले MAXIMAL PACKET SIZE सेट करते हैं। यदि आपका डिवाइस मीडियाथेक डिवाइस है, तो आपको अधिकतम पैकेट आकार के लिए मान को कम करना पड़ सकता है। मान PACKETS PER REQUEST डिवाइस को भेजे गए पैकेटों की संख्या को परिभाषित करता है: एक पैकेट का आकार 3000 बाइट्स होता है और आप एक बार में 16 पैकेट भेजते हैं। यहाँ आप उन बाइट्स की मात्रा परिभाषित करते हैं जो भेजी गई थीं।
अगली चीज़ें हैं USB REQUEST BLOCKS (activeUrb): ये अधिकतम पैकेट आकार के संबंध में हैं। आपको यहां अपने डिवाइस के लिए सही मान खोजने और मेनू बिंदु Isoread के तहत स्क्रीन पर आउटपुट को नियंत्रित करने की आवश्यकता है। क्वालकॉम डिवाइस के लिए कुछ सामान्य मान हैं: 8 activeUrbs के लिए और प्रति अनुरोध 16 पैकेट....
Isoread मेथड की पहली चीज़ कैमरा डिवाइस के लिए एक नियंत्रण ट्रांसफर है:
यदि नियंत्रण ट्रांसफर सफल होता है, तो आप आगे बढ़ने के लिए तैयार हैं।
अगला फ्रेम पर नज़र डालें।
जब आप समान और लंबे फ्रेम प्राप्त करते हैं, तो आप Isostream मेथड पर जा सकते हैं, जहाँ फ्रेम आपके स्क्रीन पर प्रदर्शित होते हैं।
यह जानने के लिए कि एक फ्रेम कितना बड़ा होना चाहिए, आप लॉग में कैमरा के नियंत्रण ट्रांसफर के आउटपुट को देख सकते हैं: maxVideoFrameSize। यह मान कैमरा द्वारा वापस किया जाता है और यह मान्य फ्रेम आकार होना चाहिए (यह मान इमेज चौड़ाई x इमेज ऊँचाई x 2 द्वारा गणना की जाती है)।
IsochronousRead1 क्लास आपको दिखाती है कि कैमरा द्वारा फ्रेम कैसे संरचित होते हैं। विभिन्न कैमरा सेटिंग्स == विभिन्न फ्रेम संरचनाएँ। विभिन्न सेटिंग्स के साथ इसे आजमाएं और आउटपुट देखें। eof संकेत लॉग में फ्रेम आकार दिखाता है। मान्य कैमरा सेटिंग्स के लिए आकार नियंत्रण ट्रांसफर के maxFrameSize मान के समान होना चाहिए।
आउटपुट मेथड Isoread: (नियंत्रण ट्रांसफर) सबसे पहले प्रोग्राम आपके कैमरा डिवाइस को एक नियंत्रण ट्रांसफर भेजेगा। इसका आउटपुट इस प्रकार दिखता है:
प्रारंभिक स्ट्रीमिंग पैरामीटर: hint=0x0 format=1 frame=1 frameInterval=2000000 keyFrameRate=0 pFrameRate=0 compQuality=0 compWindowSize=0 delay=0 maxVideoFrameSize=0 maxPayloadTransferSize=0
प्रोबेड स्ट्रीमिंग पैरामीटर: hint=0x0 format=1 frame=1 frameInterval=2000000 keyFrameRate=0 pFrameRate=0 compQuality=0 compWindowSize=0 delay=0 maxVideoFrameSize=614400 maxPayloadTransferSize=3000
अंतिम स्ट्रीमिंग पैरामीटर: hint=0x0 format=1 frame=1 frameInterval=2000000 keyFrameRate=0 pFrameRate=0 compQuality=0 compWindowSize=0 delay=0 maxVideoFrameSize=614400 maxPayloadTransferSize=3000
पहली पंक्ति वे मान हैं जो आपने प्रोग्राम में सेट किए हैं, कैमरा से कनेक्ट करने के लिए। (प्रारंभिक स्ट्रीमिंग पैरामीटर)
दूसरी पंक्ति वे मान हैं जो कैमरा ने आपके मानों से लौटाए हैं।
और तीसरी पंक्ति में usb कैमरे से नए सहेजे गए और अंतिम मान हैं।
पहली विधि का आउटपुट: isoRead:
EOF frameLen=10436. --> उदाहरण के लिए यहां एक फ्रेम 10436 की लंबाई के साथ समाप्त होता है जो कि 614400 नहीं है जैसा कि हम नियंत्रण ट्रांसफर से अपेक्षा कर रहे थे, इसलिए आपको मान्य फ्रेम आकार प्राप्त करने के लिए अपने प्रोग्राम के कुछ मानों को बदलने की आवश्यकता हो सकती है।