2013-07-18 7 views
12

मैं एक ऐप बनाने की कोशिश कर रहा हूं जहां मैं रिकॉर्ड किए गए वीडियो में फ़िल्टर जोड़ सकता हूं। असल में, मैं इंस्टाग्राम वीडियो, या विड्डी में मौजूद कार्यक्षमता को दोहराना चाहता हूं।एंड्रॉइड वीडियो फ़िल्टर

मैंने शोध किया है और मैं इसे सभी को एकसाथ टुकड़ा नहीं कर सकता। मैंने रिकॉर्ड किए गए वीडियो को चलाने के लिए GLSurfaceView का उपयोग करने में देखा है और मुझे पता है कि मैं पिक्सेल मैनिपुलेशन करने के लिए एनडीके का उपयोग कर सकता हूं और उसे वापस SurfaceView पर भेज सकता हूं या इसे किसी भी तरह से सहेज सकता हूं। समस्या यह है कि, मुझे नहीं पता कि पिक्सेल डेटा कैसे भेजना है क्योंकि ऐसा लगता है कि इसे एक्सेस करने के लिए कोई फ़ंक्शन नहीं है। यह विचार कैमरा फ़ंक्शन "ऑन प्रीव्यूफ्रेम" से आया था। फ़ंक्शन एक बाइट सरणी देता है जो मुझे पिक्सल में हेरफेर करने और इसे प्रदर्शित करने की इजाजत देता है।

एक और विचार है GLSurfaceView का उपयोग करना और फ़िल्टर प्रस्तुत करने के लिए ओपनजीएल का उपयोग करना। GLSurfaceView में एक रेंडरर सेट है जिसे आप सेट कर सकते हैं, लेकिन मैं ओपनजीएल से बहुत परिचित नहीं हूं। लेकिन फिर, यह वास्तव में प्रत्येक वीडियो फ्रेम के पिक्सल प्राप्त करने के लिए वापस चला जाता है। मैंने प्रत्येक फ्रेम को एक बनावट के रूप में फिसलने और फिर ओपनजीएल में बनावट में हेरफेर करने के बारे में भी पढ़ा है, लेकिन जिन उत्तरों में मैं आया हूं वे बहुत विस्तृत नहीं हैं।

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

कोई मार्गदर्शन अच्छा होगा।

उत्तर

5

एंड्रॉइड 4.3 से आप अपने एन्कोडर में इनपुट के रूप में Surface का उपयोग कर सकते हैं। http://developer.android.com/about/versions/android-4.3.html#Multimedia

तो आप GLSurfaceView का उपयोग कर सकते हैं और टुकड़े टुकड़े का उपयोग कर फ़िल्टर लागू कर सकते हैं।

आप यहां कुछ अच्छे उदाहरण पा सकते हैं। http://bigflake.com/mediacodec/

+0

विशेष रूप से, डीकोडएडिट एन्कोडटेस्ट एक सीटीएस परीक्षण है जो एक वीडियो को डीकोड करने, जीएलएस शेडर के साथ संशोधित करने और इसे फिर से एन्कोड करने का अभ्यास करता है। – fadden

0

एक्सप्लेयर फ़िल्टर लाइब्रेरी का उपयोग करना अच्छा है और यह आपका काम करेगा लेकिन वीडियो के साथ फ़िल्टर किए गए फ़िल्टर को मर्ज करने के लिए आपको अतिरिक्त काम करना होगा। exoplayer फिल्टर के लिए

लिंक आप के लिए है: ExoplayerFilter

आप इस के लिए exoplayer se लेकिन उनके निर्देश आप काम करने के लिए सक्षम हो जाएगा का पालन करना पड़ता है। अगर कुछ आता है तो मुझे पिंग करें।

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