Spherical Video PTZ - User Guide - GStreamer
Spherical Video PTZ |
---|
![]() |
Getting Started |
User Guide |
Examples |
Performance |
Contact Us |
WIP - Wiki
This wiki introduces the GstRrPanoramaptz plugin, a component of GStreamer designed to apply Pan-Tilt-Zoom (PTZ) transformations to video panoramas using CUDA. Developed with a focus on high-performance video processing, this plugin supports real-time adjustments of panoramic video feeds, enabling dynamic viewpoint changes through pan, tilt, and zoom operations. Ideal for applications requiring interactive video navigation or automated surveillance, GstRrPanoramaptz extends GStreamer's capabilities with advanced video transformation techniques. Here, you'll find setup instructions, usage examples, and insights on integrating this plugin into your video processing pipeline, offering a comprehensive guide to leveraging its features for enhanced video manipulation.
Building the project
After the Building and Installation of Spherical Video PTZ section follow this steps to build the rrpanoramaptz plugin for Gstreamer.
1. Start by cloning the project using the repository you have been given
git clone git@gitlab.ridgerun.com:$YOUR_REPO/gst-rr-panoramaptz
cd gst-rr-panoramaptz
![]() | Replace `$YOUR_REPO` with the actual repository path you were given by RidgeRun |
2. Configure the project by running the following:
meson builddir ninja -C builddir sudo ninja -C builddir install
![]() | If anything fails, please provide the output log of the configuration step to support@ridgerun.com |
Validating the Build
gst-inspect-1.0 rrpanoramaptz
Upon successful build validation with gst-inspect-1.0 rrpanoramaptz
, the output will detail the plugin's comprehensive configuration, highlighting its purpose, capabilities, and properties.
Quick start guide
The GstRrPanoramaptz plugin allows for real-time PTZ adjustments on panoramic video feeds, enabling users to explore video scenes in greater detail or from different perspectives.
Features
- CUDA-accelerated PTZ transformations.
- Support for RGBA video format.
- Dynamic parameter adjustments for pan, tilt, and zoom.
Properties
- Rotate the video on its horizontal axis. Range: -360 to 360 degrees. Default: 0.
- Rotate the video on its vertical axis. Range: -360 to 360 degrees. Default: 0.
- Dynamic parameter adjustments for pan, tilt, and zoom. WIP
Caps and Formats
- Accepts and outputs video in video/x-raw format with RGBA color space.
- Supports both system memory and NVMM memory inputs for enhanced performance on NVIDIA hardware.
Basic use example
To pan a test video source 90 degrees, you can use the following pipeline:
gst-launch-1.0 videotestsrc ! rrpanoramaptz pan=90 ! fakesink
Examples gst-launch
Using CPU
This command generates a video test pattern, applies PTZ transformations, and resizes the output video to 1280x720 pixels for display.
gst-launch-1.0 videotestsrc pattern=0 ! "video/x-raw,width=1920,height=1080" ! rrpanoramaptz zoom=2.2 tilt=40 pan=80 ! "video/x-raw,width=1280,height=720" ! queue ! videoconvert ! autovideosink sync=false
This pipeline reads an image, applies a 2x zoom transformation, and displays the result:
gst-launch-1.0 filesrc location=sample.jpg ! jpegdec ! videoscale ! video/x-raw,width=500,height=500 ! imagefreeze ! videoconvert ! video/x-raw,format=RGBA ! rrpanoramaptz zoom=2 ! videoconvert ! autovideosink sync=false
Using cam:
gst-launch-1.0 autovideosrc ! "video/x-raw,width=1920,height=1080" ! videoconvert ! "video/x-raw,format=(string)RGBA" ! rrpanoramaptz pan=80 tilt=40 zoom=2.2 ! "video/x-raw,width=1280,height=720" ! videoconvert ! autovideosink sync=false
Using GPU
gst-launch-1.0 videotestsrc pattern=0 ! nvvidconv ! "video/x-raw(memory:NVMM),format=RGBA,width=1920,height=1080" ! rrpanoramaptz ! nvvidconv ! nvv4l2h264enc idrinterval=30 insert-aud=true insert-sps-pps=true insert-vui=true ! h264parse ! mpegtsmux ! udpsink port=1234 host=192.168.0.10
Examples gstd