2010-10-07 14 views
11

मैं जावा में ऑडियो/वीडियो चलाने के लिए पुस्तकालयों का मूल्यांकन कर रहा हूं। इसे 100% जावा होने की आवश्यकता नहीं है; देशी पुस्तकालयों के लिए जावा बाइंडिंग पूरी तरह से ठीक है। जावा से नियंत्रित किया जा सकता है कि एक बाहरी अनुप्रयोग भी ठीक है, जब तक यह जावा घटक पर वीडियो प्रस्तुत कर सकते हैं।जावा में मीडिया प्लेयर लाइब्रेरी

लक्ष्य प्लेटफ़ॉर्म लिनक्स है। विंडोज़ समर्थन एक प्लस है, लेकिन आवश्यक नहीं है।

मैंने VLCj बाइंडिंग का उपयोग करके वीएलसी के साथ खेला है, और यह सामान्य रूप से बहुत अच्छी तरह से काम करता है, लेकिन तनाव के दौरान कभी-कभी दुर्घटनाग्रस्त रहता है। मैंने slave mode में mplayer का भी उपयोग किया है, जो अच्छा दिखता है। लेकिन मैं अन्य विकल्पों का भी मूल्यांकन करना चाहता हूं।

  • 264 की लाइव प्लेबैक, RTSP का उपयोग कर आरटीपी के माध्यम से MPEG4:

    ये आवश्यकताएं हैं। HTTP पर एमजेपीईजी के लिए अतिरिक्त अंक।

  • एक जावा (स्विंग या AWT) घटक
  • ओपन सोर्स पर वीडियो प्रस्तुत करने के लिए सक्षम है, और सक्रिय रूप से
  • स्थिर, रॉक-ठोस

सुझाव बनाए रखा? सलाह?

उत्तर

11

ठीक है, मैं पिछले महीने खर्च किया है कई विकल्पों के साथ खेल रहे हैं और इन परिणामों हैं:

  1. VLC। यह मेरा पहला विचार था, क्योंकि हर कोई यह कहता रहता है कि यह "सब कुछ बजाता है"। मैंने VLCj जावा बाइंडिंग दोनों का उपयोग किया है, और अंतर्निहित remote interface (-I rc)। मैंने इसे सामान्य रूप से बहुत अच्छी तरह से काम करने के लिए पाया, लेकिन कुछ मुद्दे थे। मैंने भारी भार के तहत ocassional दुर्घटनाओं को देखा (वीएलसीजे की गलती नहीं है क्योंकि यह बाइनरी का उपयोग करते समय भी होता है)। इसके अलावा मुझे अन्य विकल्पों की तुलना में स्मृति खपत अपेक्षाकृत अधिक होने के लिए मिला है।

  2. MPlayer। यह वास्तव में मेरे अनुभव में वीएलसी से बेहतर प्रदर्शन करता है, कोई क्रैश नहीं होता है, और स्मृति खपत कम होती है। कोई जावा बाइंडिंग नहीं, हालांकि slave mode बहुत अच्छी तरह से काम करता है।

  3. GStreamer। बहुत शक्तिशाली, बहुत लचीला, जबकि अभी भी शुरू करना आसान है। Java bindings दोनों का प्रयास किया और जावा से gst-launch बाइनरी चलाया। दोनों दृष्टिकोण उल्लेखनीय रूप से अच्छी तरह से काम करते हैं।

  4. Xuggler अच्छा लग रहा था, हालांकि ऐसा लगता है कि आरटीपी के साथ समस्याएं हैं (जैसा कि in the FAQ कहा गया है)। चूंकि जीस्ट्रीमर और एमपीएलर दोनों ने बहुत अच्छा काम किया है, इसलिए मुझे प्रारंभिक शोध नहीं मिला।

मुझे जीस्ट्रीमर को दूसरा विकल्प होने के साथ, आवश्यकताओं को दिए गए सबसे अच्छे समाधान के रूप में जीस्ट्रीमर मिला।

+0

Xuggler को बहिष्कृत किया गया है। इसे हम्बलविडियो (https://github.com/artclarke/humble-video) द्वारा प्रतिस्थापित किया गया है। HumbleVideo ** निष्क्रिय है ** जनवरी 2015 के तीसरे (अंतिम प्रतिबद्धता) के बाद से ... – Stephan

2

क्या आपने gstreamer पर देखा है?

+0

मुझे gstreamer के बारे में पता है, लेकिन मुझे इसका कोई अनुभव नहीं है। क्या आपने इसका इस्तेमाल किया है? क्या आप अपना अनुभव साझा कर सकते हैं? – Grodriguez

1

मैंने अपने विकल्पों का शोध करते समय थोड़ी देर बिताई है, और मैं वास्तव में इस निष्कर्ष पर पहुंचा हूं कि वीएलसीजे सबसे अच्छा विकल्प है - हालांकि यहां क्लिनर है, आपको इसे प्रक्रिया से बाहर चलाने की ज़रूरत है (विशेष रूप से एकाधिक खिलाड़ियों के साथ) इसके लिए आपको 100% विश्वसनीय संचालन देना है।यही वह दृष्टिकोण है जिसे मैं ले रहा हूं और मुझे अभी तक इसे दुर्घटनाग्रस्त नहीं देखा है। इसके साथ-साथ इस तरह से ठोस रॉक भी होता है:

  • यह बहुत कुछ भी खेल सकता है। हां यह एक cliche का थोड़ा सा है, लेकिन इसमें डीवीडी, यूट्यूब वीडियो, बहुत अधिक वीडियो फ़ाइल शामिल है ...
  • लिनक्स/मैक/विंडोज का समर्थन करना चाहिए, हालांकि मैक ने अभी तक मैक को सत्यापित करने की पुष्टि नहीं की है।
  • सक्रिय रूप से बनाए रखा गया है, और यदि आप चर्चा समूह पर एक अच्छा (जैसा कि अच्छी तरह से सोचा गया) प्रश्न पूछते हैं तो मालिक अक्सर मेरे अनुभव में मिनट में जवाब देता है!
  • ओपन सोर्स, और लेखन के समय Google समूह गतिविधि उच्च है।
  • सभी ग्राफिक्स त्वरण का उपयोग करता है वीएलसी करता
  • (और कहीं भी प्रदर्शित करने के लिए BufferedImage अगर आप प्रत्यक्ष प्लेयर का उपयोग, आप आप की तरह, यहां तक ​​कि JOGL 3D देश में अगर आपको लगता है कि कर रहे हैं किसी भी दिग्गज कैनवास घटक के लिए खेलने के लिए सक्षम पागल!

मैं नहीं सामने या तो है कि संसाधनों पर भारी यह पाया है, हालांकि मैं किसी भी पूरी तरह से परीक्षण नहीं किया है (लेकिन 3 खिलाड़ियों के साथ-साथ मिलकर अच्छा काम पर मेरे अपेक्षाकृत शक्ति के भूखे आवेदन के रूप में मेरे 4 साल पुराना मूल लैपटॉप!)

नुकसान? प्रक्रिया खिलाड़ियों के लिए कोई आधिकारिक ढांचा नहीं है, इसलिए आपको खुद को बनाएं (here देखें कि मैंने यह कैसे किया)। और आपको कभी-कभी काम करने के लिए कुछ झुकाव करना पड़ता है। लेकिन जहां तक ​​मैं देख सकता हूं, यह अब तक मेरे लिए अच्छा काम कर रहा है!

+0

बहुत रोचक, विशेष रूप से इसे प्रक्रिया से बाहर चलाने पर संकेत। मुझे इस पर एक और नजर डालना होगा। फिर भी मैं यह ध्यान रखना चाहूंगा कि जिन दुर्घटनाओं का सामना कर रहा था वे भी वीएलसी बाइनरी के साथ पुन: उत्पन्न किए गए थे। इस प्रकार एक वीएलसीजे-विशिष्ट मुद्दा नहीं। अपने अनुभव साझा करने के लिए धन्यवाद! – Grodriguez

+0

@Grodriguez मैं किसी भी क्रैश को पुन: उत्पन्न करने में सक्षम नहीं हूं जिस तरह से मुझे स्वीकार करना होगा - क्या आपने libvlc के लिए एक बग रिपोर्ट दर्ज करने पर विचार किया है? और क्या यह क्रैश libvlc के नए संस्करण 2 के साथ होता है (मैं बीटा में होने के बावजूद किसी भी समस्या के बिना इसका उपयोग कर रहा हूं।) निश्चित रूप से प्रक्रिया दृष्टिकोण से बाहर का लाभ यह है कि यदि यह वीएम को नीचे लाता है, तो आप चुपचाप एक नया ला सकता है और बस अपने आवेदन में एक उचित संदेश प्रदर्शित कर सकते हैं। मैं इस कारण से अपने सभी खिलाड़ियों को प्रक्रिया से बाहर चलाता हूं (यानी मुख्य वीएम में भी कोई नहीं है)। – berry120

+1

मुझे वापस जाने और वीएलसीजे की जांच करने की आवश्यकता हो सकती है। आपकी प्रतिक्रिया प्रेरणादायक है (मुझे यह भी कहना है कि अब तक मैं जीस्ट्रीमर से बहुत खुश हूं :) – Grodriguez

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