Difference between revisions of "GStreamer Pan Tilt Zoom and Rotate Element - iMX6 Pipelines"
Jcaballero (talk | contribs) |
m |
||
(9 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | {{GStreamer Pan Tilt Zoom and Rotate Element | + | {{GStreamer Pan Tilt Zoom and Rotate Element/Head |previous=PC Pipelines|next=Tegra Pipelines|metakeywords=GstPTZR iMX6 Pipelines, iMX6 Pipelines, iMX6 GStreamer Pipelines, GstPTZR iMX6 GStreamer Pipelines}} |
− | |||
− | |||
− | + | <br> | |
− | + | <br> | |
− | == | + | <table> |
− | + | <tr> | |
− | + | <td><div class="clear; float:right">__TOC__</div></td> | |
− | + | <td valign=top> | |
− | + | {{GStreamer debug}} | |
+ | </td> | ||
+ | </table> | ||
− | == | + | == GStreamer pipelines == |
The following pipelines will send the resulting video stream via UDP to another computer where it can be displayed. | The following pipelines will send the resulting video stream via UDP to another computer where it can be displayed. | ||
− | + | ===On receiver computer=== | |
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
− | + | HOST='xx.xxx.xx.x' | |
PORT=5004 | PORT=5004 | ||
− | gst-launch-1.0 udpsrc address=$ | + | gst-launch-1.0 udpsrc address=$HOST port=$PORT ! tsparse ! tsdemux ! h264parse ! avdec_h264 ! videoconvert ! identity silent=false ! autovideosink -v |
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | ===On board=== | |
Same input and output resolution with zoom level 1: | Same input and output resolution with zoom level 1: | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
− | + | CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1' | |
− | + | IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1' | |
− | gst-launch-1.0 videotestsrc | + | OUT_CAPS='video/x-raw,width=640,height=480' |
+ | PORT=5004 | ||
+ | HOST=<IP address> | ||
+ | gst-launch-1.0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 34: | Line 37: | ||
Magnification (zoom level > 1): | Magnification (zoom level > 1): | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
− | + | CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1' | |
− | + | IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1' | |
− | + | OUT_CAPS='video/x-raw,width=640,height=480' | |
− | < | + | PORT=5004 |
+ | HOST=<IP address> | ||
− | + | gst-launch-1.0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr zoom-level=2 ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST | |
− | |||
− | |||
− | |||
− | gst-launch-1.0 videotestsrc | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | You can perform translations relative to the center of the input image by setting the "pan-level" and "tilt-level" properties or perform translations relative to the current position with "pan-delta" and "tilt-delta". | + | You can perform translations relative to the center of the input image by setting the "pan-level" and "tilt-level" properties or perform translations relative to the current position with "pan-delta" and "tilt-delta". The element supports input and output of any resolution and aspect ratio. |
Translate right (-1 < pan level < 0): | Translate right (-1 < pan level < 0): | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
− | + | CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1' | |
− | + | IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1' | |
− | gst-launch-1.0 videotestsrc | + | OUT_CAPS='video/x-raw,width=320,height=240' |
+ | PORT=5004 | ||
+ | HOST=<IP address> | ||
+ | |||
+ | gst-launch-1.0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr pan-level=-1 ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Translate left (0 < pan level < 1): | Translate left (0 < pan level < 1): | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
− | + | CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1' | |
− | + | IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1' | |
− | gst-launch-1.0 videotestsrc | + | OUT_CAPS='video/x-raw,width=320,height=240' |
+ | PORT=5004 | ||
+ | HOST=<IP address> | ||
+ | |||
+ | gst-launch-1.0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr pan-level=1 ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Translate down (-1 < tilt level < 0): | Translate down (-1 < tilt level < 0): | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
− | + | CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1' | |
− | + | IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1' | |
− | gst-launch-1.0 videotestsrc | + | OUT_CAPS='video/x-raw,width=320,height=240' |
+ | PORT=5004 | ||
+ | HOST=<IP address> | ||
+ | |||
+ | gst-launch-1.0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr tilt-level=-1 ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Translate up (0 < tilt level < 1): | Translate up (0 < tilt level < 1): | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
− | + | CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1' | |
− | + | IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1' | |
− | gst-launch-1.0 videotestsrc | + | OUT_CAPS='video/x-raw,width=320,height=240' |
+ | PORT=5004 | ||
+ | HOST=<IP address> | ||
+ | |||
+ | gst-launch-1.0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr tilt-level=1 ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 80: | Line 96: | ||
Turn off translation normalization: | Turn off translation normalization: | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
− | + | CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1' | |
− | + | IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1' | |
− | gst-launch-1.0 videotestsrc | + | OUT_CAPS='video/x-raw,width=320,height=240' |
+ | PORT=5004 | ||
+ | HOST=<IP address> | ||
+ | |||
+ | gst-launch-1.0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr normalize-translation=false ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 89: | Line 109: | ||
Set input coordinate system as reference for translations: | Set input coordinate system as reference for translations: | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
− | + | CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1' | |
− | + | IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1' | |
− | gst-launch-1.0 videotestsrc | + | OUT_CAPS='video/x-raw,width=320,height=240' |
+ | PORT=5004 | ||
+ | HOST=<IP address> | ||
+ | |||
+ | gst-launch-1.0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr output-reference=false ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 98: | Line 122: | ||
Rotate counter-clockwise (rotate level < 0): | Rotate counter-clockwise (rotate level < 0): | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
− | + | CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1' | |
− | + | IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1' | |
− | gst-launch-1.0 videotestsrc | + | OUT_CAPS='video/x-raw,width=320,height=240' |
+ | PORT=5004 | ||
+ | HOST=<IP address> | ||
+ | |||
+ | gst-launch-1.0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr rotate-level=-100 ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Rotate clockwise (rotate level > 0): | Rotate clockwise (rotate level > 0): | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
− | + | CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1' | |
− | + | IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1' | |
− | + | OUT_CAPS='video/x-raw,width=320,height=240' | |
− | < | + | PORT=5004 |
− | + | HOST=<IP address> | |
− | |||
− | + | gst-launch-1.0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr rotate-level=100 ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST | |
− | |||
− | |||
− | |||
− | gst-launch-1.0 videotestsrc | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | == Gstd pipelines == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Run the element with gstd to change parameters dynamically: | Run the element with gstd to change parameters dynamically: | ||
<br> | <br> | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
− | + | CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1' | |
− | + | IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1' | |
+ | OUT_CAPS='video/x-raw,width=320,height=240' | ||
+ | PORT=5004 | ||
+ | HOST=<IP address> | ||
gstd& | gstd& | ||
− | gstd-client pipeline_create p0 videotestsrc | + | gstd-client pipeline_create p0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr name=ptzr0 ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST |
gstd-client pipeline_play p0 | gstd-client pipeline_play p0 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 189: | Line 192: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | {{GStreamer Pan Tilt Zoom and Rotate Element/Foot |previous=PC Pipelines|next=Tegra Pipelines}} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | }} |
Latest revision as of 03:55, 4 March 2023
GStreamer PTZR |
---|
![]() |
GstPTZR Basics |
User Guide |
Getting Started |
Examples |
Contact Us |
|
GStreamer pipelines
The following pipelines will send the resulting video stream via UDP to another computer where it can be displayed.
On receiver computer
HOST='xx.xxx.xx.x'
PORT=5004
gst-launch-1.0 udpsrc address=$HOST port=$PORT ! tsparse ! tsdemux ! h264parse ! avdec_h264 ! videoconvert ! identity silent=false ! autovideosink -v
On board
Same input and output resolution with zoom level 1:
CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1'
IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1'
OUT_CAPS='video/x-raw,width=640,height=480'
PORT=5004
HOST=<IP address>
gst-launch-1.0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST
You can change the zoom level by changing "zoom-level".
Magnification (zoom level > 1):
CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1'
IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1'
OUT_CAPS='video/x-raw,width=640,height=480'
PORT=5004
HOST=<IP address>
gst-launch-1.0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr zoom-level=2 ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST
You can perform translations relative to the center of the input image by setting the "pan-level" and "tilt-level" properties or perform translations relative to the current position with "pan-delta" and "tilt-delta". The element supports input and output of any resolution and aspect ratio.
Translate right (-1 < pan level < 0):
CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1'
IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1'
OUT_CAPS='video/x-raw,width=320,height=240'
PORT=5004
HOST=<IP address>
gst-launch-1.0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr pan-level=-1 ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST
Translate left (0 < pan level < 1):
CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1'
IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1'
OUT_CAPS='video/x-raw,width=320,height=240'
PORT=5004
HOST=<IP address>
gst-launch-1.0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr pan-level=1 ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST
Translate down (-1 < tilt level < 0):
CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1'
IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1'
OUT_CAPS='video/x-raw,width=320,height=240'
PORT=5004
HOST=<IP address>
gst-launch-1.0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr tilt-level=-1 ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST
Translate up (0 < tilt level < 1):
CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1'
IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1'
OUT_CAPS='video/x-raw,width=320,height=240'
PORT=5004
HOST=<IP address>
gst-launch-1.0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr tilt-level=1 ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST
The property "normalize-translation" (true by default) lets you switch the translation normalization ON and OFF. When translation normalization is true the minimum and maximum translation values are mapped to -1 and 1. On the other hand, when it is set to false, the pan and tilt levels reflect pixels on the input image.
Turn off translation normalization:
CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1'
IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1'
OUT_CAPS='video/x-raw,width=320,height=240'
PORT=5004
HOST=<IP address>
gst-launch-1.0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr normalize-translation=false ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST
The property "output-reference" (true by default) lets you change the coordinate system used as reference for translations. This is specially useful after performing a rotation. If you want to move over the input image axis, it must be changed to false.
Set input coordinate system as reference for translations:
CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1'
IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1'
OUT_CAPS='video/x-raw,width=320,height=240'
PORT=5004
HOST=<IP address>
gst-launch-1.0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr output-reference=false ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST
To rotate the input modify the "rotate-level" property (degrees). You can also perform rotation relative to the current angle with "rotate-delta":
Rotate counter-clockwise (rotate level < 0):
CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1'
IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1'
OUT_CAPS='video/x-raw,width=320,height=240'
PORT=5004
HOST=<IP address>
gst-launch-1.0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr rotate-level=-100 ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST
Rotate clockwise (rotate level > 0):
CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1'
IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1'
OUT_CAPS='video/x-raw,width=320,height=240'
PORT=5004
HOST=<IP address>
gst-launch-1.0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr rotate-level=100 ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST
Gstd pipelines
Run the element with gstd to change parameters dynamically:
CAPTURE_CAPS='video/x-raw,width=640,height=480,framerate=30/1'
IN_CAPS='video/x-raw,format=RGBA,width=640,height=480,framerate=30/1'
OUT_CAPS='video/x-raw,width=320,height=240'
PORT=5004
HOST=<IP address>
gstd&
gstd-client pipeline_create p0 videotestsrc is-live=true num-buffers=-1 ! $IN_CAPS ! imxg2dvideotransform ! $IN_CAPS ! ptzr name=ptzr0 ! $OUT_CAPS ! imxipuvideotransform input-crop=false ! $OUT_CAPS ! imxvpuenc_h264 bitrate=4000 gop-size=15 idr-interval=15 ! mpegtsmux alignment=7 ! udpsink port=$PORT host=$HOST
gstd-client pipeline_play p0
Change propierties:
gstd-client element_set p0 "ptzr0 zoom-level 0.0"
gstd-client element_set p0 "ptzr0 zoom-level 2.0"
gstd-client element_set p0 "ptzr0 zoom-level 1.0"
gstd-client element_set p0 "ptzr0 tilt-level -1.0"
gstd-client element_set p0 "ptzr0 tilt-level 1.0"
gstd-client element_set p0 "ptzr0 tilt-level 0.0"
gstd-client element_set p0 "ptzr0 pan-level -1.0"
gstd-client element_set p0 "ptzr0 pan-level 1.0"
gstd-client element_set p0 "ptzr0 pan-level 0.0"
gstd-client element_set p0 "ptzr0 tilt-delta -1.0"
gstd-client element_set p0 "ptzr0 tilt-delta 1.0"
gstd-client element_set p0 "ptzr0 tilt-delta 0.0"
gstd-client element_set p0 "ptzr0 pan-delta -1.0"
gstd-client element_set p0 "ptzr0 pan-delta 1.0"
gstd-client element_set p0 "ptzr0 pan-delta 0.0"
gstd-client element_set p0 "ptzr0 rotate-level -90.0"
gstd-client element_set p0 "ptzr0 rotate-level 90.0"
gstd-client element_set p0 "ptzr0 rotate-level 0.0"
gstd-client element_set p0 "ptzr0 rotate-delta -90.0"
gstd-client element_set p0 "ptzr0 rotate-delta 90.0"
gstd-client element_set p0 "ptzr0 rotate-delta 0.0"
gstd-client element_set p0 "ptzr0 normalize-translation false"
gstd-client element_set p0 "ptzr0 normalize-translation true"
gstd-client element_set p0 "ptzr0 output-reference false"
gstd-client element_set p0 "ptzr0 output-reference true"
Stop the pipeline:
gstd-client pipeline_stop p0
gstd-client pipeline_delete p0