New gst-rpicamsrc features

I’ve pushed some new changes to my Raspberry Pi camera GStreamer wrapper, at

These bring the GStreamer element up to date with new features added to raspivid since I first started the project, such as adding text annotations to the video, support for the 2nd camera on the compute module, intra-refresh and others.

Where possible, you can now dynamically update any of the properties – where the firmware supports it. So you can implement digital zoom by adjusting the region-of-interest (roi) properties on the fly, or update the annotation or change video effects and colour balance, for example.

The timestamps produced are now based on the internal STC of the Raspberry Pi, so the audio video sync is tighter. Although it was never terrible, it’s now more correct and slightly less jittery.

The one major feature I haven’t enabled as yet is stereoscopic handling. Stereoscopic capture requires 2 cameras attached to a Raspberry Pi Compute Module, so at the moment I have no way to test it works.

I’m also working on GStreamer stereoscopic handling in general (which is coming along). I look forward to releasing some of that code soon.


7 thoughts on “New gst-rpicamsrc features”

  1. Be good if you could post a sample invocation with say, hlssink.

    Maybe some sample output too? 🙂

  2. For example I’m using:

    raspivid -t 0 -w 640 -h 480 -fps 15 -vf -b 1000000 -o – | gst-launch-1.0 fdsrc ! hlssink target-duration=10 max-files=5

    With limited success

    1. You’re not quite using hlssink right – you need a parser and muxer in the chain. Try this:

      gst-launch-1.0 rpicamsrc bitrate=1000000 vflip=true ! video/x-h264,width=640,height=480,framerate=15/1 ! h264parse ! mpegtsmux name=muxer ! hlssink target-duration=10 max-files=5

      If you have problems, please file a bug! Although problems are most likely to be in hlssink 🙂

  3. Don’t suppose you’ve made any progress with enabling stereoscopic support? The raspivid “3d” option isn’t working for me for some reason, and I can’t find any other way to get video from both cameras at the same time.

  4. Would it be possible (or have a missed) to have a property to set the preview window size and position without relating it to the video being sent by Gstreamer?

    For clarity, what I mean is a preview window at 640, 480 that is 640 x 480 in resolution, but I want to send 1280 x 960 video using the camera?

    This can be done using raspivid -p x,y,w,h to set the preview size and location, and use -w and -h to set the size of the video being transmitted. But I can’t figure out how to do it with rpicamsrc.


Leave a Reply

Your email address will not be published. Required fields are marked *