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