2010-12-05 7 views
9

मैंने Bambuser (http://bambuser.com/opensource) द्वारा प्रदान किए गए FFMPEG निष्पादन योग्य और पुस्तकालयों का निर्माण किया है। इसलिए मैं एंड्रॉइड एक्जिक्यूटिव और लाइब्रेरीज़ बनाने में कामयाब रहा। मैं अपने ग्रहण प्रोजेक्ट में इन libs को कैसे लिंक कर सकता हूं और जावा से FFmpeg फ़ंक्शन का आह्वान कर सकता हूं? ओपन सोर्स कोड में सी हेडर-फाइलें शामिल हैं।एफएफएमपीजी जेनी?

मैं एंड्रॉइड के लिए देशी कोडिंग में नया हूं, और मुझे इसके लिए आसान जवाब नहीं मिला। मूल रूप से: एंड्रॉइड संगत पुस्तकालयों और कुछ सी हेडर फ़ाइलों का एक समूह होने के कारण मुझे जावा (+ एंड्रॉइड एसडीके) से उन libaries की कार्यक्षमता का पुन: उपयोग करने के लिए क्या करना है?

किसी भी मदद की सराहना की जाएगी।

सधन्यवाद,

WhyHow

+0

क्या आप कृपया ffmpeg बनाने के लिए दिए गए चरणों को बता सकते हैं? मैं विंडोज और सिग्विन 1.7.9 का उपयोग कर रहा हूँ। –

+0

बहुत सारे शोध के बाद, ऐसा लगता है कि कुछ फ़ाइल नाम/फ़ाइलपैथ सम्मेलन मुद्दे हैं जो आपको विंडोज का उपयोग करके ffmpeg संकलित नहीं करने देंगे। मैंने उबंटू को स्थापित करने के लिए वीएमवेयर का इस्तेमाल किया और उन्हें इस तरह संकलित किया। – gtcompscientist

+0

@ स्वाथी ईपी: लगभग गाइड थ्रेड विंडोज पर नहीं लिनक्स या मैक ओएस पर काम कर रहे हैं। मुझे अभी तक विंडोज के लिए कोई पोस्ट नहीं मिली है, लेकिन मुझे उस वेबसाइट को पता चला है जिसमें एंड्रॉइड के लिए पहले से ही बनाई गई libs शामिल हैं। तो आप उन्हें डाउनलोड कर सकते हैं और अभी उपयोग कर सकते हैं। वह वेबसाइट http://code.google.com/p/javacv/downloads/list है, शुभकामनाएं! – Levanphong7887

उत्तर

5

आप कुछ सी गोंद JNI सम्मेलनों का उपयोग कर जावा कोड को FFmpeg कार्यक्षमताओं बेनकाब करने के लिए कोड लिखने के लिए की है।

jstring 
Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv* env, 
                jobject thiz) 
{ 
    return (*env)->NewStringUTF(env, "Hello from JNI !"); 
} 

तुम भी लाइब्रेरी लोड और देशी प्रणाली की घोषणा करने के लिए कुछ जावा कोड की जरूरत है: यहाँ एंड्रॉयड NDK नमूनों से सी में लागू एक JNI विधि का एक उदाहरण है।

public class HelloJni 
{ 
    public native String stringFromJNI(); 

    static { 
     System.loadLibrary("hello-jni"); 
    } 
} 

मैं this project on sourceforge जो पहले से ही ffmpeg के लिए कुछ JNI इंटरफ़ेस लागू किया गया है पाया जावा मीडिया फ्रेमवर्क के साथ एकीकृत करने। आप इसे उपयोगी पा सकते हैं।

एक और जावा एफएफआई तकनीक है जिसे जेएनए (जावा नेटिव एक्सेस) कहा जाता है जो आपको जावा में देशी फ़ंक्शन प्रोटोटाइप घोषित करने और उन्हें सीधे कॉल करने की अनुमति देता है। इसका उपयोग करने के लिए कम बॉयलरप्लेट कोड की आवश्यकता हो सकती है। एंड्रॉइड कार्यान्वयन के लिए this project देखें। (मैंने इसे कभी भी इस्तेमाल नहीं किया है)