title: Gstreamer pipeline - produce and consume output in separate processes
body: <p>I want to have two separate gstreamer pipelines, one producing a video output, the other consuming it. <strong>The producer is in a Docker container, and the consumer is running on the host.</strong> For this I'm trying to get even the most basic thing imaginable working with <code>gst-launch</code> tool, but I just can't get it working no matter what. For example, this fails on the receiving end with <code>ERROR: from element /GstPipeline:pipeline0/GstRtpVRawDepay:rtpvrawdepay0: No RTP format was negotiated.</code>:</p>
  
  <pre class="lang-sh prettyprint-override"><code># process to produce video stream:
  gst-launch-1.0 --gst-debug-level=3 \
    videotestsrc ! videoconvert \
    ! rtpvrawpay ! udpsink host=127.0.0.1 port=5600
  
  # process to consume it (and display it):
  gst-launch-1.0 --gst-debug-level=3 \
    udpsrc port=5600 \
    ! rtpvrawdepay ! videoconvert ! autovideosink
  </code></pre>
  
  <p>...what boggles my ming is that a seeming much more complex setup I do manage to get working:</p>
  
  <pre class="lang-sh prettyprint-override"><code># produce:
  gst-launch-1.0 filesrc location=/path/to/my.mp4 \
    ! decodebin ! videoconvert \
    ! x264enc tune=zerolatency \
    ! rtph264pay \
    ! udpsink host=127.0.0.1 port=5600
  
  # consume:
  gst-launch-1.0 -vc udpsrc port=5600 close-socket=false multicast-iface=false auto-multicast=true \
    ! application/x-rtp, payload=96 ! rtpjitterbuffer ! rtph264depay ! avdec_h264 \
    ! fpsdisplaysink  sync=false async=false --verbose
  </code></pre>
  
  <p>(Note: special sink type in second example doesn't matter, using <code>autovideosink</code> also works fine.)</p>