GStreamer won't work with RT image

Hey guys,

First things first: I am no linux whiz. So it is quite possible I’m just doing something wrong.

For some reason, I can’t get Gstreamer to work with the latest RT image. It works fine with unmodified Raspbian, but as soon as I try it on the emlid image it fails like so:

pi@us2m01 ~ $ gst-launch-1.0 uvch264src device=/dev/video0 name=src auto-start=true src.vidsrc ! queue ! video/x-h264, width=1280, height=720, framerate=30/1 ! h264parse ! rtph264pay ! udpsink host=10.201.1.100 port=1234
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
libv4l2: error turning on stream: Operation not permitted
ERROR: from element /GstPipeline:pipeline0/GstUvcH264Src:src/GstV4l2Src:v4l2src0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2865): gst_base_src_loop (): /GstPipeline:pipeline0/GstUvcH264Src:src/GstV4l2Src:v4l2src0:
streaming task paused, reason not-negotiated (-4)
Execution ended after 0:00:00.401054437
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

Again, I can run that exact same command on the same hardware, just by switching to an SD card with regular raspbian.

Is there anything I should be checking?

It is just an uneducated guess, but I would try to run it as root with sudo. If this does not help, I hope somebody else knows more…

GStreamer does work with the previous RT image. Have not tried the latest one yet. (But I cannot use it in flight as arducopter takes too much CPU power to run GStreamer at the same time. It runs together, but the latency for the video is several seconds. Alone the latency is around 200-300ms on 4G) Waiting for the RPi2 RT image…

To run it on RPi I used:
raspivid -n -t 0 -rot 180 -w 640 -h 480 -fps 30 -b 1000000 -o - | gst-launch-1.0 -e -vvvv fdsrc ! h264parse ! rtph264pay pt=96 config-interval=5 ! udpsink host=[##MYIP##] port=5000

And on the PC:

cd C:\gstreamer\1.0\x86_64\bin

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

Thanks guys, I’ll give it a try with the older image. Hopefully it’ll work.

I was hoping this might work since the camera i’m using has built in H264 encoding, so in this case GStreamer is really only putting an RTP wrapper on it and sending it on its way. It’s usually not too intensive.

Anyway, agreed - I hope C1 support is around the corner!