2012-02-27 10 views
5

मैं gstreamer-java के साथ एक कॉन्फ्रेंसिंग समाधान बनाने की कोशिश कर रहा हूं।एकाधिक यूडीपी सिंक (छवि शामिल) के साथ जीस्ट्रीमर पाइपलाइन

मैं ऑडियो भाग से फंस गया हूं, क्योंकि प्रत्येक प्रतिभागी को केवल दूसरों को ही सुनना चाहिए, स्वयं नहीं।

मैंने एक पाइपलाइन बनाई (शामिल छवि फ़ाइल देखें)।

पूरे निर्माण कार्य करता है, अगर मैं अंत में एक rtpmuxer और एक udpsink/multudpsink डालता हूं। लेकिन उस स्थिति में, प्रत्येक प्रतिभागी को सभी ऑडियो धाराएं मल्टीप्लेक्स (अपेक्षित के रूप में) मिलती हैं।

यदि मैं तस्वीर में ऐसा करता हूं तो कोई पैकेट नहीं बनाया जाता है (वायरशर्क के साथ चेक किया जाता है)। तर्क में मेरी त्रुटि कहां है?

(आप किसी अन्य टैब पर छवि खींच सकते हैं पाठ पढ़ने के लिए सक्षम होने के लिए)

debug-image of the pipe

+1

मैं पाइपलाइन कमांड लाइन में काम कर रहा है, तो मेरे त्रुटि मेरी जावा कोड में हो रहा है। मैं कामकाजी पाइपलाइन को उन सभी के लिए उत्तर के रूप में पोस्ट करूंगा जो रुचि रखते हैं ... –

उत्तर

3

इसका एक पाइप लाइन के एक नरक है, लेकिन यह होता है, क्या यह चाहिए था। मैंने एक डॉट-फ़ाइल का डंप जोड़ा, ताकि आप सुविधा के लिए पाइपलाइन की छवि निकाल सकें।

GST_DEBUG_DUMP_DOT_DIR=/tmp/ gst-launch --gst-debug-level=2 gstrtpbin name=rtpbin latency=2 sync=false udpsrc name=udpsrc0 caps="application/x-rtp, media=audio, clock-rate=8000, payload=0, encoding-name=PCMU" port=5000 ! rtpbin.recv_rtp_sink_0 rtpbin. ! rtppcmudepay ! mulawdec ! tee name=t0 ! queue max-size-buffers=150 ! liveadder name=mix1 ! mulawenc ! rtppcmupay ! udpsink name=udpsink1 host=192.168.0.101 port=5050 t0. ! queue max-size-buffers=150 ! liveadder name=mix2 ! mulawenc ! rtppcmupay ! udpsink name=udpsink2 host=192.168.0.112 port=5050 rtpbin. ! rtppcmudepay ! mulawdec ! tee name=t1 ! queue max-size-buffers=150 ! liveadder name=mix0 ! mulawenc ! rtppcmupay ! udpsink name=udpsink0 host=192.168.0.101 port=5051 t1. ! queue max-size-buffers=150 ! mix2. rtpbin. ! rtppcmudepay ! mulawdec ! tee name=t2 ! queue max-size-buffers=150 ! mix0. t2. ! queue max-size-buffers=150 ! mix1. 
संबंधित मुद्दे