2009-12-05 17 views
8

मैं एक क्यूटी विजेट बनाना चाहता हूं जो आने वाली आरटीपी धाराओं को चला सकता है जहां वीडियो को H264 के रूप में एन्कोड किया गया है और इसमें कोई ऑडियो नहीं है।क्यूटी का उपयोग कर आरटीपी वीडियो स्ट्रीम चलाएं?

कार्यान्वयन के लिए मेरे मूल योजना यह है:

  • एक फ़ोनॉन MediaSource वस्तु (स्ट्रीम प्रकार) बनाएँ।
  • एक QIODevice उपवर्ग डेटा
  • प्रावधान है कि का उपयोग कर वीडियो डेटा प्राप्त से कनेक्ट या तो:
    • JRTPLIB क्लाइंट लाइब्रेरी
    • GStreamergstrtpbin प्लगइन। यह प्लगइन पैकेज को डिप्लोड करने और वीडियो को डीकोड करने में देखभाल करता है। हो सकता है कि यह संभावनाओं को बेहतर करे कि फोनोन डेटा को पहचान लेगा।

मेरे पर्यावरण:

  • उबंटू 9.10
  • क्यूटी 4,6

मेरे सवालों का:

  • मेरे दृष्टिकोण एक अच्छा एक है? शायद मैं एक और स्पष्ट या सरल समाधान देख रहा हूँ?
  • मुझे वर्तमान में इस समस्या का सामना करना पड़ रहा है: जब वीडियो स्ट्रीम चलाने की कोशिश की जा रही है तो MediaObject की स्थिति त्रुटि के साथ त्रुटि स्थिति में बदल जाती है FatalError टाइप करें। क्या कोई मुझे बता सकता है कि मैं क्या गलत कर रहा हूं?

संपादित
एक समाधान मैंने पाया क्यूटी, जो मैं इस thread में के बारे में सीखा के साथ संयोजन में libVLC उपयोग कर रहा है। रुचि के लिए यहां code sample है। मैं अभी भी फोनोन आधारित समाधान की तलाश में हूं।
आदर्श रूप से मुझे केवल एक एसडीपी फ़ाइल प्रदान करने की आवश्यकता होगी और नौकरी पूरी की जाएगी।

उत्तर

3

मैं libVLC समाधान का उपयोग करके इसे काम करने में सक्षम था। मैं गारंटी नहीं दे सकता कि यह सर्वोत्तम समाधान है, हालांकि मैंने बस इसकी देखभाल करना बंद कर दिया है।

यहां एक link to the libVLC sample है।

+0

ऐसा लगता है कि आपने यह फ़ाइल नीचे ले ली है। कोड को फिर से पोस्ट करने का कोई मौका, या यह समय पर खो गया है? – Narcolei

+1

मुझे बताने के लिए धन्यवाद। यूआरएल फिक्स्ड। – StackedCrooked

+0

@Stacked फ़ाइलों का उपयोग कर आईपी कैम से धारा प्राप्त करने के लिए वैसे भी खींचा? –

2

जिस तरह से मैं समझता हूं कि फोनोन कम से कम विंडोज़ में काम करता है वह यह है कि QT DirectShow (\ plugins \ phonon_backend \ phonon_ds94.dll) और GStreamer के लिए आपके मामले में एक फोनोन बैकएंड प्लगइन प्रदान करता है। फिर आप या तो अपना खुद का डायरेक्टशो फ़िल्टर प्राप्त करेंगे या लिखेंगे जो आरटीपी धाराओं को स्रोत के रूप में स्वीकार कर सकता है। डायरेक्टशो डिकोडिंग का ख्याल रखता है, और फोनन प्रतिपादन का ख्याल रखेगा।

 Phonon::MediaObject *media = new Phonon::MediaObject(); 
     Phonon::VideoWidget *video = new Phonon::VideoWidget(); 
     Phonon::createPath(media, video); 
     media->setCurrentSource(source); 
     media->play(); 

लगता है कि इस समस्या को GStreamer बैकेंड आरटीपी एक स्रोत के रूप को स्वीकार करने के साथ निहित है:

तो अगर बैकएंड काम करता है, आवेदन कोड के रूप में सरल रूप में है। क्या आप किसी भी समस्या के बिना स्टैंडअलोन जीस्ट्रीमर में उस स्रोत को प्लेबैक कर सकते हैं?

+0

मैं इसे अभी तक काम नहीं कर पाया है। एक स्थानीय फ़ाइल बजाना काम करता है, लेकिन जब मैं एक आरटीपी स्ट्रीम लोड करने का प्रयास करता हूं (मीडिया स्रोत (QIODevice) ऑब्जेक्ट के माध्यम से जो आरटीपी पैकेट पढ़ता है) VideoPlayer लोडिंगस्टेट में रहता है। अभी मैं एक और दृष्टिकोण के साथ प्रयोग कर रहा हूं: मैं आने वाले आरटीपी डेटा को पढ़ने के लिए जीस्ट्रीमर की gstrtpbin प्लगइन का उपयोग कर रहा हूं, वीडियो स्ट्रीम को डीकोड करता हूं और किसी भी तरह इसे एक क्यूटी विजेट से कनेक्ट करता हूं। – StackedCrooked

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