GStreamer Tips and Tricks
This page contains general tips and gotchas that we have found during development with GStreamer.
Testing Pipelines
You can test pipelines directly in your CLI. For example:
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw, format=I420, width=1920, height=1080, framerate=30/1 ! videoconvert ! autovideosink
Sometimes it's also helpful to use a higher level of debug statements:
GST_DEBUG=3 gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw, format=YUY2 ! videoconvert ! autovideosink
Testing GStreamer with OpenCV
There is a Python script you can use to test GStreamer with OpenCV. You will have to change the pipeline to match yours. Download the test script example.
Camera Connectivity
Check Connected Cameras
This will show you all video devices recognized by the system:
ls /dev/video*
List Camera Formats
v4l2-ctl --device=/dev/video0 --all
If you don't have v4l2 installed:
sudo apt-get install v4l-utils
You can also list recognized devices:
v4l2-ctl --list-devices
Verify Camera Reading
Install ffmpeg if not already installed:
sudo apt install ffmpeg
Test the camera:
ffplay /dev/video0
Troubleshooting
Camera Could Not Be Opened
Sometimes the previous process did not close the camera. You'll need to kill it manually:
lsof /dev/video0
kill -9 <PID>
Missing Screen Error
Sometimes you get an error in the pipeline because there's no attached screen. You can use a virtual screen:
sudo apt-get install xvfb
Xvfb :1 -screen 0 1920x1080x24 &
export DISPLAY=:1