<div>Hi there,</div><div><br></div><div>I need a little bit of help with a long gstreamer pipeline and sending/receiving video/audio. I have two pipelines which work successfully...</div><div><br></div><div><div><b>Sending Video</b></div>


<div>gst-launch gstrtpbin name=rtpbin latency=0 ksvideosrc device-index=0 typefind=true ! typefind ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv, width=640, height=480 ! videorate ! video/x-raw-yuv, framerate=15/1 ! ffenc_mpeg4 ! rtpmp4vpay send-config=true ! rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0 ! udpsink port=5502 host=192.168.10.175 rtpbin.send_rtcp_src_0 ! udpsink port=5510 host=192.168.10.175 sync=false async=false udpsrc port=5510 ! rtpbin.recv_rtcp_sink_0 autoaudiosrc samplesperbuffer=1000 ! alawenc ! rtppcmapay ! rtpbin.send_rtp_sink_1 rtpbin.send_rtp_src_1 ! udpsink port=5504 host=192.168.10.175 rtpbin.send_rtcp_src_1 ! udpsink port=5512 host=192.168.10.175 sync=false async=false udpsrc port=5512 ! rtpbin.recv_rtcp_sink_1</div>


</div><div><br></div><div><b>Receiving Video</b></div><div>gst-launch gstrtpbin name=rtpbin2 latency=0 udpsrc caps=&quot;application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)1&quot; port=5502 ! rtpbin2.recv_rtp_sink_0 rtpbin2. ! rtpmp4vdepay ! ffdec_mpeg4 ! ffmpegcolorspace ! autovideosink udpsrc port=5510 ! rtpbin2.recv_rtcp_sink_0 rtpbin2.send_rtcp_src_0 ! udpsink host=192.168.10.175 port=5510 sync=false async=false udpsrc caps=application/x-rtp,media=(string)audio,clock-rate=(int)8000,encoding-name=(string)PCMA port=5504 ! rtpbin2.recv_rtp_sink_1 rtpbin2. ! rtppcmadepay ! alawdec ! autoaudiosink buffer-time=10000 udpsrc port=5512 ! rtpbin2.recv_rtcp_sink_1 rtpbin2.send_rtcp_src_1 ! udpsink host=192.168.10.175 port=5512 sync=false async=false</div>


<div><br></div><div>I wanted to combine them so that I could have sending/receiving in one pipeline. Is this possible?</div><div><br></div><div>Right now I simply launch two gstreamer instances (one for sending, one for receiving). The problem is that in the receiving instance I would like to access the local camera and place it as a local preview window into the receiving video. This works fine but the problem is, you can&#39;t have two gstreamer instances accessing the camera. I thought if I could combine the above into one pipeline I could use tee and split them then there would only ever be one instance of the camera used at once.</div>


<div><br></div><div><b>If I simply combine the above two into something like:</b></div><div>gst-launch \</div><div>gstrtpbin name=rtpbin latency=0 ksvideosrc device-index=0 typefind=true ! typefind ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv, width=640, height=480 ! videorate ! video/x-raw-yuv, framerate=15/1 ! ffenc_mpeg4 ! rtpmp4vpay send-config=true ! rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0 ! udpsink port=5502 host=192.168.10.175 rtpbin.send_rtcp_src_0 ! udpsink port=5510 host=192.168.10.175 sync=false async=false udpsrc port=5510 ! rtpbin.recv_rtcp_sink_0 autoaudiosrc samplesperbuffer=1000 ! alawenc ! rtppcmapay ! rtpbin.send_rtp_sink_1 rtpbin.send_rtp_src_1 ! udpsink port=5504 host=192.168.10.175 rtpbin.send_rtcp_src_1 ! udpsink port=5512 host=192.168.10.175 sync=false async=false udpsrc port=5512 ! rtpbin.recv_rtcp_sink_1 \</div>


<div>gstrtpbin name=rtpbin2 latency=0 udpsrc caps=&quot;application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)1&quot; port=5502 ! rtpbin2.recv_rtp_sink_0 rtpbin2. ! rtpmp4vdepay ! ffdec_mpeg4 ! ffmpegcolorspace ! autovideosink udpsrc port=5510 ! rtpbin2.recv_rtcp_sink_0 rtpbin2.send_rtcp_src_0 ! udpsink host=192.168.10.175 port=5510 sync=false async=false udpsrc caps=application/x-rtp,media=(string)audio,clock-rate=(int)8000,encoding-name=(string)PCMA port=5504 ! rtpbin2.recv_rtp_sink_1 rtpbin2. ! rtppcmadepay ! alawdec ! autoaudiosink buffer-time=10000 udpsrc port=5512 ! rtpbin2.recv_rtcp_sink_1 rtpbin2.send_rtcp_src_1 ! udpsink host=192.168.10.175 port=5512 sync=false async=false</div>


<div><br></div><div>It doesn&#39;t appear to work... gstreamer starts successfully but I can&#39;t recieve video on either end</div><div><br></div><div>Has this been attempted before? Is there a best way to do it? (I presume people normally use two pipelines?)</div>


<div><br></div><div>Kind regards,</div><div>Andy Savage</div>