2012-11-26 35 views
7

मैं आरटीपी पर मल्टीमीडिया डेटा भेजना चाहता हूं। मुझे पता होना चाहिए कि पाइथन के साथ आरटीपी पैकेट कैसे भेजना और प्राप्त करना है। मुझे पाइथन क्लास डीपीकेटी मिला। लेकिन आरटीपी में दर्ज प्रत्येक को उत्पन्न करने के तरीके को देखने के लिए एक अच्छा संदर्भ नहीं मिल सका।पायथन आरटीपी पैकेट भेजते हैं और प्राप्त करते हैं

अगर कोई मुझे सर्वर पर आरटीपी पैकेट उत्पन्न करने और प्राप्त करने में मदद कर सकता है तो मैं सराहना करता हूं।

+0

मुझे पता चला कि GSteamer एक बहुत अच्छा विकल्प नहीं है। पाइपलाइन की मूल बातें समझने के लिए पढ़ना पड़ा। जीस्ट्रीमर के साथ मैं एक मशीन से एक ऑडियो भेज सकता हूं और टीसीपी के माध्यम से दूसरे से सुना सकता हूं। अब मैं आरटीपी के माध्यम से वीडियो भेजने की कोशिश कर रहा हूं। कोई भी मदद सचमुच सराहनीय होगी। –

+0

कई दिनों के अध्ययन के बाद मैं उपर्युक्त कार्य प्राप्त करने के लिए उबंटू टर्मिनल में जीस्ट्रीमर का उपयोग करने में सक्षम था। मेरा मुख्य दायरा धाराओं के सिंक्रनाइज़ेशन के बारे में जानना था। मैंने gstreamer में आरटीपी और आरटीसीपी कार्यक्षमताओं का उपयोग किया। मैंने एक वीडियो को चार भागों में लंबवत रूप से विभाजित किया और एक पीसी से दूसरे में भेज दिया और दूसरे पीसी में प्रदर्शित किया। कोड इस्तेमाल किया गया है निम्नलिखित है। –

उत्तर

5

कई दिनों के अध्ययन के बाद मैं उपर्युक्त कार्य प्राप्त करने के लिए उबंटू टर्मिनल में जीस्ट्रीमर का उपयोग करने में सक्षम था। मेरा मुख्य दायरा धाराओं के सिंक्रनाइज़ेशन के बारे में जानना था। मैंने gstreamer में आरटीपी और आरटीसीपी कार्यक्षमताओं का उपयोग किया। मैंने एक वीडियो को चार भागों में लंबवत रूप से विभाजित किया और एक पीसी से दूसरे में भेज दिया और दूसरे पीसी में प्रदर्शित किया। कोड इस्तेमाल किया गया है निम्नलिखित है।

प्रेषक:

gst-launch -v \ 
\ 
gstrtpbin name=rtpbin1 \ 
filesrc location=/home/x101.avi ! decodebin ! x264enc ! rtph264pay ! rtpbin1.send_rtp_sink_0 \ 
rtpbin1.send_rtp_src_0 ! udpsink host=192.168.1.100 port=5011 \ 
rtpbin1.send_rtcp_src_0 ! udpsink host=192.168.1.100 port=5012 \ 
udpsrc port=5013 ! rtpbin1.recv_rtcp_sink_0 \ 
\ 
gstrtpbin name=rtpbin2 \ 
filesrc location=/home/x102.avi ! decodebin ! x264enc ! rtph264pay ! rtpbin2.send_rtp_sink_0 \ 
rtpbin2.send_rtp_src_0 ! udpsink host=192.168.1.100 port=5021 \ 
rtpbin2.send_rtcp_src_0 ! udpsink host=192.168.1.100 port=5022 \ 
udpsrc port=5023 ! rtpbin2.recv_rtcp_sink_0 \ 
\ 
gstrtpbin name=rtpbin3 \ 
filesrc location=/home/x103.avi ! decodebin ! x264enc ! rtph264pay ! rtpbin3.send_rtp_sink_0 \ 
rtpbin3.send_rtp_src_0 ! udpsink host=192.168.1.100 port=5031 \ 
rtpbin3.send_rtcp_src_0 ! udpsink host=192.168.1.100 port=5032 \ 
udpsrc port=5033 ! rtpbin3.recv_rtcp_sink_0 \ 
\ 
gstrtpbin name=rtpbin4 \ 
filesrc location=/home/x104.avi ! decodebin ! x264enc ! rtph264pay ! rtpbin4.send_rtp_sink_0 \ 
rtpbin4.send_rtp_src_0 ! udpsink host=192.168.1.100 port=5041 \ 
rtpbin4.send_rtcp_src_0 ! udpsink host=192.168.1.100 port=5042 \ 
udpsrc port=5043 ! rtpbin4.recv_rtcp_sink_0 

रिसीवर:

gst-launch -v \ 
videomixer name=mix ! ffmpegcolorspace ! autovideosink sync=false async=false \ 
\ 
gstrtpbin name=rtpbin1 \ 
udpsrc port=5011 caps = "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)\"Z01AFeygbCPNLgIgAAADAC7msoAB4sWywA\\=\\=\\,aOvssg\\=\\=\", payload=(int)96, ssrc=(uint)861153369, clock-base=(uint)4026289255, seqnum-base=(uint)30449" ! rtpbin1.recv_rtp_sink_0 rtpbin1. ! rtph264depay ! queue ! ffdec_h264 ! videobox border-alpha=0 top=0 left=0 ! mix. \ 
udpsrc port=5012 ! rtpbin1.recv_rtcp_sink_0 \ 
rtpbin1.send_rtcp_src_0 ! udpsink port=5013 host=192.168.1.104 \ 
\ 
gstrtpbin name=rtpbin2 \ 
udpsrc port=5021 caps = "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)\"Z01AFeygbCPNLgIgAAADAC7msoAB4sWywA\\=\\=\\,aOvssg\\=\\=\", payload=(int)96, ssrc=(uint)861153369, clock-base=(uint)4026289255, seqnum-base=(uint)30449" ! rtpbin2.recv_rtp_sink_0 rtpbin2. ! rtph264depay ! queue ! ffdec_h264 ! videobox border-alpha=0 top=-120 left=0 ! mix. \ 
udpsrc port=5022 ! rtpbin2.recv_rtcp_sink_0 \ 
rtpbin2.send_rtcp_src_0 ! udpsink port=5023 host=192.168.1.104 \ 
\ 
gstrtpbin name=rtpbin3 \ 
udpsrc port=5031 caps = "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)\"Z01AFeygbCPNLgIgAAADAC7msoAB4sWywA\\=\\=\\,aOvssg\\=\\=\", payload=(int)96, ssrc=(uint)861153369, clock-base=(uint)4026289255, seqnum-base=(uint)30449" ! rtpbin3.recv_rtp_sink_0 rtpbin3. ! rtph264depay ! queue ! ffdec_h264 ! videobox border-alpha=0 top=-240 left=0 ! mix. \ 
udpsrc port=5032 ! rtpbin3.recv_rtcp_sink_0 \ 
rtpbin3.send_rtcp_src_0 ! udpsink port=5033 host=192.168.1.104 \ 
\ 
gstrtpbin name=rtpbin4 \ 
udpsrc port=5041 caps = "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)\"Z01AFeygbCPNLgIgAAADAC7msoAB4sWywA\\=\\=\\,aOvssg\\=\\=\", payload=(int)96, ssrc=(uint)861153369, clock-base=(uint)4026289255, seqnum-base=(uint)30449" ! rtpbin4.recv_rtp_sink_0 rtpbin4. ! rtph264depay ! queue ! ffdec_h264 ! videobox border-alpha=0 top=-360 left=0 ! mix. \ 
udpsrc port=5042 ! rtpbin4.recv_rtcp_sink_0 \ 
rtpbin4.send_rtcp_src_0 ! udpsink port=5043 host=192.168.1.104 

मैं अपेक्षा के अनुरूप एक विंडो में चार धाराओं प्राप्त करने में सक्षम था। लेकिन अभी भी स्ट्रीम पूरी तरह सिंक्रनाइज़ नहीं हैं।

+0

दोस्त पर आओ, कम से कम पोस्ट करें जो आपके कोड का मतलब है या gstreamer की मूल बातें सीखने के लिए एक लिंक जोड़ें – repzero

0

आप rtpdumpSoX में आरटीपी स्ट्रीम से ऑडियो पेलोड भी पाइप कर सकते हैं। मैंने हाल ही में एक छोटी पायथन लिपि लिखी है जो बस यही करती है।

https://github.com/kylophone/xplay

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

  • कोई संबंधित समस्या नहीं^_^