2013-01-16 59 views
17

मैं एप्लिकेशन पर काम कर रहा हूं जो कैमरे के फ्रेम पर कुछ वास्तविक समय छवि प्रसंस्करण करता है। इसके लिए, मैं पूर्वावलोकन कॉलबैक की विधि onPreviewFrame का उपयोग करता हूं।
यह कैमरों के लिए ठीक काम करता है जो कम से कम 640x480 या बड़े संकल्प वाले पूर्वावलोकन फ्रेम का समर्थन करते हैं। लेकिन जब कैमरा ऐसे बड़े कैमरा पूर्वावलोकन रिज़ॉल्यूशन का समर्थन नहीं करता है, तो इस तरह के फ्रेम प्रसंस्करण से इनकार करने के लिए एप्लिकेशन प्रोग्राम किया जाता है। अब, मेरे पास समस्या Sony Xperia जैसे फ़ोनों के साथ है। यह एक बहुत अच्छा डिवाइस है जो 1280x720 रिज़ॉल्यूशन तक वीडियो रिकॉर्ड कर सकता है, लेकिन दुर्भाग्यवश अधिकतम कैमरा पूर्वावलोकन आकार 480x320 है, जो मेरी आवश्यकताओं के लिए बहुत छोटा है।एंड्रॉइड वीडियो फ्रेम प्रोसेसिंग

मैं क्या जानना चाहता हूं कि इन larger camera frames (1280x720 या उससे अधिक तक) कैसे प्राप्त करें? जाहिर है, यह संभव होना चाहिए क्योंकि कैमरा एप्लिकेशन में उस रिज़ॉल्यूशन में वीडियो रिकॉर्ड करने की क्षमता है - इसलिए यह एप्लिकेशन किसी भी तरह से उन बड़े फ्रेम तक पहुंचने में सक्षम होना चाहिए। मेरे आवेदन से ऐसा कैसे करें?

एप्लिकेशन को एंड्रॉइड 2.1 और उसके बाद के संस्करण का समर्थन करना है, लेकिन अगर मुझे एंड्रॉइड 4.0 या नए के लिए मेरी समस्या का हल मिल जाए तो भी मुझे बहुत खुशी होगी।

यह सवाल http://stackoverflow.com/questions/8839109/processing-android-video-frame-by-frame-while-recording के समान है, लेकिन मैं वीडियो को बचाने के लिए की जरूरत नहीं है - मैं केवल उन उच्च संकल्प वीडियो फ्रेम की आवश्यकता है ...

अग्रिम में बहुत बहुत धन्यवाद!

+0

वहाँ 11+ '' SurfaceTexture'' आप एसडीके के लिए कूद कर सकते हैं उपलब्ध आप कैमरा पूर्वावलोकन के लिए उपयोग कर सकते हैं। और यदि ओपनजीएल आपकी छवि प्रसंस्करण आवश्यकताओं के लिए पर्याप्त है तो आप यह देखने के लिए एक शॉट दे सकते हैं कि सतहफलक आधारित पूर्वावलोकन में उच्च रिज़ॉल्यूशन था या नहीं। – harism

+0

अच्छा बिंदु। मैंने सोचा कि कैमरा। पैरामीटर .getSupportedPreviewSizes() केवल कैमरे पर निर्भर करता है, लेकिन उस सतह पर नहीं जिस पर कैमरा पूर्वावलोकन कर रहा है। मैं कोशिश करूँगा। दूसरी ओर, क्या V4L2 (VideoForLinux2) इंटरफ़ेस के माध्यम से कैमरा एक्सेस करना संभव है? शायद वी 4 एल के साथ मैं कैमरे का बेहतर नियंत्रण रखूंगा ... – DoDo

+0

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

उत्तर

6

ऐसा लगता है कि आप केवल एक चीज कर सकते हैं जो MediaRecoder डेटा से फ्रेम को डीकोड कर रहा है। आप स्थानीय सॉकेट से रिकोरडर डेटा को डीकोड करने के लिए ffmpeg का उपयोग कर सकते हैं।

आशा है कि निम्नलिखित ओपन सोर्स प्रोजेक्ट में मदद कर सकते हैं:

ipcamera के लिए एंड्रॉयड: https://code.google.com/p/ipcamera-for-android/

spydroid-ipcamera: https://code.google.com/p/spydroid-ipcamera/

+0

उन परियोजनाओं और विचारों को साझा करने के लिए धन्यवाद। ऐसा लगता है कि मैं यही देख रहा हूं। – DoDo

0

आपको शायद OpenCV लाइब्रेरी पर एक नज़र डालना चाहिए। इसमें विधियां हैं जो आपको पूर्ण फ्रेम प्राप्त करने की अनुमति देती हैं।

0

मेरे पास एक छाप है: वीडियो पूर्वावलोकन आकार छोटा है, और सेट वीडियो रिकॉर्डिंग फ्रेम दर से धीमा, धीमा है।

मैं एक बार इस पर समाधान खोजने की कोशिश कर रहा था। यह वीडियो रिकॉर्डर से वीडियो स्ट्रीम प्राप्त करने का एक बेहतर तरीका है, फिर सीधे वीडियो स्ट्रीम से डेटा को संसाधित करें।

आप एंड्रॉइड आईपी-कैमरा पर कुछ उदाहरण पा सकते हैं।