communication between multiple gstreamer pipeline/apps

Tim-Philipp Müller t.i.m at
Fri Mar 25 16:05:00 PDT 2011


> gst-launch filesrc location=./testfile.ogg ! tcpserversink port=1234
> gst-launch tcpclientsrc protocol=none host= port=1234 !
> oggdemux ! theoradec  ! autovideosink
> However here is what I get when I launch the server:
> DRREUR : de l'élément /pipeline0/tcpserversink0 : Internal GStreamer
> error: negotiation problem. 

Try adding an ffmpegcolorspace ! videoscale before the videosink. If
that doesn't help, also try a typefind element before oggdemux.

> If I try to do the demuxing and decoding on the server side I have
> following commands:
> gst-launch filesrc location=./testfile.ogg ! oggdemux ! theoradec !
> tcpserversink port=1234
> gst-launch tcpclientsrc protocol=none host= port=1234 !
> autovideosink
> Here it does not crash but I do not get any video displayed.

Sending raw video/pixels over the network is usually a bad idea. In this
case, you will not only loose the framing, but also the timing
information, and the caps. You can use a videoparse to work around that,
but it's not really a great solution. You could also use gdppay before
sending the data and then gdpdepay on the receiving side, that will
maintain most info (but the timestamps may need fixing up then).
> Does anybody has an idea, or any better way to pass streams between
> pipelines ?

Maybe you could describe the bigger picture of what you're trying to do?


More information about the gstreamer-devel mailing list