CSI Camera, rendering video in Qt5, and starting/stopping a recording.

I would like to render a consistent Qt5 video preview of the CSI/MIPI camera.

I would also like to start/stop a recording, without affecting live preview.

Can someone point my in the right direction? I found a way to preview the CSI camera using gst-launch, but this is a command line tool. Can someone point me to some libs/headers?


gst-launch is only a quick way to test your pipelines, you can use the gstreamer API to create your own application and control the pipelines, however, it takes some time to get it done. Another faster way to do it is to use gstreamer daemon [1][2]. There is one version for gst 1.0 and one version for gst 0.10.

Furthermore, if you want to capture, display and record at the same time I would recommend you to use interpipes [3] It would allow you to have three individual pipelines, one for the camera, one for recording and one for display and you can control them as you want. interpipes and gstreamer daemon can be used together. The cool part is that gstreamer daemon can be controlled by dbus so it should be easy for you to control it from your GUI.


[1] https://gstreamer.freedesktop.org/data/events/gstreamer-conference/2015/Melissa%20Montero%20-%20GST%20Daemon%20and%20Interpipes:%20A%20simpler%20way%20to%20get%20your%20applications%20done%20.pdf

[2] https://vimeo.com/157287702

[3] https://developer.ridgerun.com/wiki/index.php?title=GstInterpipe

Interpipes look really cool, I’m going to have to test it out!

There are a variety of ways to do the native app gstreamer integration. The classic way with Qt is to use bindings via the qt-gstreamer project.