2012-08-12 32 views
12

रिवर्स करने के लिए बिटमैप फ्रेम का उपयोग करके एक वीडियो प्रस्तुत करना मेरे पास ArrayList<Bitmap> में वीडियो फ्रेम नहीं है। मैंने वीडियो फ्रेम (.mp4) पर MediaMetadataRetriever.getFrameAtTime() विधि का उपयोग करके इस फ्रेम को एक्सेस किया है।एंड्रॉइड, जावा - एक वीडियो (Xuggler)

मैं ArrayList में फ्रेम के क्रम को उलट देता हूं। अब इस रिवर्स ऑर्डर फ्रेम कतार का उपयोग करके मैं एक वीडियो प्रस्तुत करना चाहता हूं, इसलिए यह उलट जाएगा (मुझे उम्मीद है कि मैं सही रास्ते पर हूं)।

उस वीडियो को बनाने के बाद मैं इसे एसडी कार्ड में भी सहेजना चाहता हूं।

इसे कैसे प्राप्त करें? या जावा में किसी वीडियो को रिवर्स करने के लिए कोई और तरीका है?

संपादित करें 1:

मैं xuggler का उपयोग कर की कोशिश की(*** * का उपयोग xuggler) ** ... मैं का उपयोग कर की कोशिश की यह .jar फ़ाइल है। लेकिन यह कुछ त्रुटियों को फेंक रहा है।

[2012-08-18 00:29:16 - xugglertest2] The library 'xuggle-xuggler-5.2.jar' contains native libraries that will not run on the device. 
    [2012-08-18 00:29:16 - xugglertest2] The following libraries were found: 
    [2012-08-18 00:29:16 - xugglertest2] - com/xuggle/ferry/i686-pc-linux-gnu/libxuggle-ferry.so 
    [2012-08-18 00:29:16 - xugglertest2] - com/xuggle/ferry/i686-pc-linux-gnu/libxuggle-xuggler-io.so 
    [2012-08-18 00:29:16 - xugglertest2] - com/xuggle/ferry/i686-pc-linux-gnu/libxuggle-xuggler.so 
    [2012-08-18 00:29:16 - xugglertest2] - com/xuggle/ferry/i686-pc-linux-gnu/libxuggle.so 
    [2012-08-18 00:29:16 - xugglertest2] - com/xuggle/ferry/x86_64-pc-linux-gnu/libxuggle-ferry.so 
    [2012-08-18 00:29:16 - xugglertest2] - com/xuggle/ferry/x86_64-pc-linux-gnu/libxuggle-xuggler-io.so 
    [2012-08-18 00:29:16 - xugglertest2] - com/xuggle/ferry/x86_64-pc-linux-gnu/libxuggle-xuggler.so 
    [2012-08-18 00:29:16 - xugglertest2] - com/xuggle/ferry/x86_64-pc-linux-gnu/libxuggle.so 

मुझे क्या करना चाहिए ??

मैंने परियोजना के libs फ़ोल्डर में xuggler-xuggler-5.4.jar की प्रतिलिपि बनाई और फिर इसे पथ बनाने के लिए जोड़ें। मीटर मैं इसे सही तरीके से कर रहा हूं?



संपादित करें 2:(का उपयोग ffmpeg)
मैं प्रति Here
दिया मैं दस्तावेज़ के अनुसार फ़ाइलें संकलित कर ली के रूप में ubuntu मंच पर एंड्रॉयड के लिए ffmpeg तैयार की है।
अब कोई मुझे बता सकता है कि मैं एंड्रॉइड एप्लिकेशन में उन संकलित फ़ाइलों का उपयोग कैसे कर सकता हूं? मुझे उन फ़ाइलों के साथ वास्तव में क्या करना चाहिए ??
मुझे कोई उपयुक्त दस्तावेज नहीं मिला। कोई मदद gr8 होगी।


संपादित करें 3: (एंड्रॉयड -ffmpeg वापस पोर्ट)

हे .. ubuntu मैं libffmpeg.so मिला पर अंत में मैं संकलित ffmpeg। मैंने एंड्रॉइड को सफलतापूर्वक पोर्ट किया। libffmpeg.so सफलतापूर्वक एंड्रॉइड गतिविधि में लोड हो रहा है। अब मैं सिर्फ एक साधारण ffmpeg कमांड या प्रोग्राम का परीक्षण करना चाहता हूं।
क्या आप सुझाव दे सकते हैं कि मैं इसे कहां देखूँगा। क्या आप इसका परीक्षण करने के लिए नमूना कमांड सुझा सकते हैं।

धन्यवाद और का संबंध

+0

में JNI का उपयोग कैसे करें आप इस का समाधान हो गया देखने के लिए? कृपया मेरी मदद करें, मेरे पास एक समान आवश्यकता है। –

+0

दुर्भाग्य से मैंने नहीं किया है। जैसे ही मैं इसे हल करता हूं, मैं यहां समाधान पोस्ट करूंगा। –

+0

यदि आप वीडियो फ़ाइल तक पहुंच सकते हैं, तो क्या आप इसे एसडी कार्ड में कॉपी नहीं कर सकते? getFrameAtTime() आपको वैसे भी केवल 1 फ्रेम प्राप्त करता है, इसलिए मुझे यकीन नहीं है कि आप इससे वीडियो कैसे बनाएंगे। – hovanessyan

उत्तर

10

आप ffmpeg का उपयोग छवियों से वीडियो इकट्ठा करने के लिए कर सकते हैं। तुम्हें पता है, लेकिन शायद एक अच्छा तरीका यह Xuggler परियोजना के माध्यम से है करने के लिए (

Runtime.getRuntime().exec("ffmpeg <options>");

के माध्यम से एक सीधे जा रहा है इसे चलाने) तरीके के एक जोड़े में जावा (Android) में ffmpeg एकीकृत कर सकते हैं - यह भारी पर निर्भर करता है ffmpeg।शुरुआती बिंदु के लिए, यहां एक set of introduction tutorials है और यहां एक पूर्ण ट्यूटोरियल how to encode video from sequence of images है। यह बहुत काम और पढ़ना है, लेकिन आपको आवश्यक सारी जानकारी है। सौभाग्य!

+0

या, आप साझा लाइब्रेरी के रूप में ffmpeg बना सकते हैं और इसके खिलाफ लिंक कर सकते हैं; एक जेएनआई रैपर लिखें और आपको पूरा सेट होना चाहिए। – Shark

+0

कृपया मेरी समस्या पर एक नज़र डालें। कोई भी मदद बहुत अच्छी रहेगी। देखें –

+0

xuggler> share> java> jars से निर्माण पथ पर सभी जार जोड़ने का प्रयास करें – hovanessyan

0

अपने xuggler उपयोग, अपने पुस्तकालय के संस्करण अपने विशिष्ट उपकरण पर काम नहीं करेगा, के रूप में यह देशी कोड x86_64 और i686 प्लेटफार्मों के लिए संकलित होता है के बारे में:

[2012-08-18 00:29:16 - xugglertest2] - com/xuggle/ferry/i686-pc-linux-gnu/ 
[2012-08-18 00:29:16 - xugglertest2] - com/xuggle/ferry/x86_64-pc-linux-gnu/ 

देशी के साथ इस पुस्तकालय के संस्करण खोजने का प्रयास एआरएमवी 6 के लिए संकलित कोड भागों (सबसे आम एंड्रॉइड आर्किटेक्चर - पुराने डिवाइस शामिल हैं, यदि 1-2 साल पहले पुराने उपकरणों का समर्थन नहीं करना चाहते हैं, तो एआरएमवी 7 बेहतर होगा)।

अन्यथा, आपको एआरएम के लिए संकलित ffmpeg प्राप्त करने और एंड्रॉइड एनडीके के समर्थन के साथ इसका उपयोग करने की आवश्यकता होगी। आपको छवियों की अपनी श्रृंखला को एक विशिष्ट फ़ाइल में एन्कोडिंग करने के लिए सी/सी ++ में एक कोड लिखना होगा और इसे जेएनआई इंटरफेस के साथ लपेटना होगा। आप कक्षा के तरीकों के मूल कार्यान्वयन के लिए जावा सरणी पास कर सकते हैं।

एसडीके नमूने में कृपया देखें नमूना एंड्रॉयड NDK अनुप्रयोगों अपने कोड