Page 1 of 1

GStreamer pipeline for Windows

Posted: Mon Aug 12, 2013 12:23 pm
by Davespice
Hey folks, has anyone been able to get a working pipeline that can be played back on a Windows box?
Most of the ones I see people using involve gdppay/gdpdepay (GStreamer data protocol payload / depayload) which are binaries that are not available under Windows for some reason.

I've been able to get it to work from Raspbian to Ubuntu with the following pipeline syntax;

Sending on the Pi

Code: Select all

raspivid -t 0 -h 720 -w 1080 -fps 25 -hf -b 2000000 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=<Pi-IP> port=5000 
Recieving on Ubuntu

Code: Select all

gst-launch-1.0 -v tcpclientsrc host=<Pi-IP> port=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false
However when trying to receive using GStreamer 1.0.9 x64 on Windows it just complains that the gdpdepay element does not exist.

Any help or suggestions would be appreciated, cheers o7

Re: GStreamer pipeline for Windows

Posted: Mon Aug 12, 2013 3:22 pm
by RaTTuS
I to would like to know this ....


[also posting so I can track this thread ;-p]

Re: GStreamer pipeline for Windows

Posted: Mon Aug 12, 2013 3:29 pm
by Davespice
Since posting this I have worked out how to playback on another Pi using hardware video decoding so its nice and fast, here is the syntax for that.

Code: Select all

gst-launch-1.0 -v tcpclientsrc host=<Pi-IP> port=5000 ! gdpdepay ! rtph264depay ! h264parse ! omxh264dec ! autovideosink sync=false

Re: GStreamer pipeline for Windows

Posted: Mon Aug 12, 2013 4:25 pm
by RaTTuS
now that looks good for the quick test we did
streaming raspberry pi cameras across the net
we need to get an accurate clock setup so we can see the time tag...
but frame rate was excellent

Re: GStreamer pipeline for Windows

Posted: Mon Aug 12, 2013 4:25 pm
by towolf
Gstreamer is subdivided in good, bad, and ugly plugin packages. gdp protocol is in the "bad" part. Do you have that? Did you make a full installation on windows. I know the Gstreamer SDK has a lot of checkboxes that are not all on by default.

Also, the plugins are not programs, they are DLLs. The pipelines you make is not made using pipe symbols ‹|› but using bangs ‹!›.

Anyway, you don’t strictly need gdppay. You can just as well specify the stream specs ("caps") manually, but that is a bit of a pain. GDP merely transmits this metadata conveniently for you. Normally in RTP streaming the specs are transmitted out-of-band.

Re: GStreamer pipeline for Windows

Posted: Mon Aug 12, 2013 4:48 pm
by Davespice
Thanks for that towolf. Maybe if someone could provide a working capsfilter caps="???" we might be able to do it.
I downloaded the Windows MSI from here and yes I did a full/complete install of the package. I ran gst-inspect-1.0 and the gdp plugins did not show in the list :?

Also... the pipeline thing... this wasn't with reference to a command line using pipe characters. It was with reference, conceptually, to the data stream, payloading and depayloading, pipe line that the video data moves through to go from source to destination :)

Re: GStreamer pipeline for Windows

Posted: Mon Aug 12, 2013 5:47 pm
by towolf
Okay, just wanted to make sure you didn’t try to run "> gdppay" in that dos box and it didn’t work ...

There’s another GStreamer distribution for Windows called GStreamer SDK that might contain these plugins.

Otherwise, read here and Ctrl-F for "This will not work": http://gstreamer-devel.966125.n4.nabble ... 58747.html

So I found this pipeline using TCP on this forum. Before I was always streaming RTP using UDP. And with UDP you have to give the udpsrc element the caps directly.

This was my sending pipeline:

Code: Select all

gst-launch-1.0 -e -vvvv fdsrc ! h264parse ! rtph264pay pt=96 config-interval=5 ! udpsink host=10.38.110.4 port=5001
This was on the receiver

Code: Select all

gst-launch-1.0 -e -v udpsrc port=5001 ! application/x-rtp, payload=96 ! rtpjitterbuffer ! rtph264depay ! avdec_h264 ! fpsdisplaysink sync=false text-overlay=false
When verbose output on the receiver gives the caps for the H264 video and some of them are important. I have not yet completely understood which of those are important and which aren’t.

Re: GStreamer pipeline for Windows

Posted: Tue Aug 13, 2013 10:13 am
by RaTTuS
after a bit of experimenting with my
Model A as the camera host
a 1Mbps serial link to another RPi
a network link to a 3rd Rpi as the display unit
I get lag of much less than 1 second
in the order of 300ms or so - I cannot get any better timing of that

the model A was pointing the camera at the screen that the 3rd RPi was using as output
the 3rd RPi was running date in a infinite loop

Re: GStreamer pipeline for Windows

Posted: Mon Jan 20, 2014 11:26 pm
by Jacques Bouault
Hello everybody

Does anyone finally managed to receive a stream in windows using gstreamer ?

I am using windows 7 64 bit on my PC and I try to receive video streaming from my raspberry pi.
I tryed :

gst-launch-1.0 -e -v udpsrc port=5001 ! application/x-rtp, payload=96 ! rtpjitterbuffer ! rtph264depay ! avdec_h264 ! fpsdisplaysink sync=false text-overlay=false

but i had this error message :

erroneous pipeline: no element "avdec_h264"

If anyone have an idea....

Please be indulgent with my english

Re: GStreamer pipeline for Windows

Posted: Tue Jan 21, 2014 12:18 am
by towolf
Do you have ffdec_h264? There’s this annoying fork between ffmpeg and libav projects.

Use gst-inspect-1.0 to list all plugins and search for h264. Is it even possible to grep in windows?

Re: GStreamer pipeline for Windows

Posted: Wed Jan 22, 2014 8:02 am
by Jacques Bouault
Thank you towolf for your quick reply.
When I run gst-inspect, I can read :

rtph264pdepay
rtp264pay

Re: GStreamer pipeline for Windows

Posted: Wed Jan 22, 2014 2:43 pm
by towolf
So, you don't have all the codecs. The proprietary codecs like H.264 are supported by the gstreamer-ffmpeg package, install that. Or install the GStreamer SDK for Windows and make sure that you tick /all the boxes/.

Re: GStreamer pipeline for Windows

Posted: Wed Jan 22, 2014 9:24 pm
by Jacques Bouault
Thank you very much towolf ! It's work fine now, you was right.
I have only about 100 millis of latency, with 1280x720 resolution and 25 fps, it's great ! With netCat the latency was about 2 seconds...
Unfortunatly it's don't work fine with a wifi connection.

For me the next step will be to catch the stream in vvvv. vvvv is like max or pd, it's running on windows using dx9.If somebody is trying the do something like that, please let me know.

Re: GStreamer pipeline for Windows

Posted: Fri Sep 12, 2014 10:55 am
by Cancelor
Davespice wrote:Since posting this I have worked out how to playback on another Pi using hardware video decoding so its nice and fast, here is the syntax for that.

Code: Select all

gst-launch-1.0 -v tcpclientsrc host=<Pi-IP> port=5000 ! gdpdepay ! rtph264depay ! h264parse ! omxh264dec ! autovideosink sync=false
Just for reference, I got mine 'streaming' (point to point) to my Ubuntu laptop with netcat and mplayer .... this on the Laptop (started first)

Code: Select all

nc -l -p 5001 | mplayer -fps 31 -cache 1024 -
and this on the Pi

Code: Select all

raspivid -t 0 -o - | nc 192.168.1.64 5001
(P.S. If in doubt, it's a hyphen!)

Re: GStreamer pipeline for Windows

Posted: Tue Apr 07, 2015 2:10 pm
by shubhamjan12
Jacques Bouault wrote:Thank you very much towolf ! It's work fine now, you was right.
I have only about 100 millis of latency, with 1280x720 resolution and 25 fps, it's great ! With netCat the latency was about 2 seconds...
Unfortunatly it's don't work fine with a wifi connection.

For me the next step will be to catch the stream in vvvv. vvvv is like max or pd, it's running on windows using dx9.If somebody is trying the do something like that, please let me know.
Hi Jacques Bouault,
I am trying to play the stream from Pi to Windows 7 but not through gstreamer pipeline. Through pipeline i am able to do so but i want to receive that stream on VLC media player and on RPi i want to create a RTSP server.

I have posted all my situations in below link. Please help me.
http://www.raspberrypi.org/forums/viewt ... 66#p732366