How i can use gltransformation in gstreamer pipeline?

Hello every one !
I’m new to gstreamer and I can’t link elements together in a pipeline yet.
I used gstreamer pipeline to read rtsp stream with opencv as follow:

import cv2
GST_HARDWARE_PIPELINE = ( "rtspsrc location={} latency=0 "
                        "! queue ! rtph264depay ! queue ! nvv4l2decoder disable-dpb=1 enable-max-performance=1 "
                        "! nvvidconv ! video/x-raw, format=(string)BGRx "
                        "! videoconvert ! video/x-raw,format=BGR ! appsink").format('rtsp://192.168.1.100:8554/stream')
cap = cv2.VideoCapture(GST_HARDWARE_PIPELINE)

and it works well. I got best performance with nvv4l2decoder element for decoding(GPU decoding).

now I need some preprocessing on the frames. the frames should rotated in 40 degrees.
My Prefer is to do this on gpu too. I found an OpenGL plugin for gstreamer that does much of transformations like rotation with gpu and exactly meets my need.

Its exampile works well with gst-launch-1.0

gst-launch-1.0 gltestsrc ! gltransformation rotation-z=45 ! glimagesink

Now my challenge is how to place this element (gltransformation) into my pipeline!
Thanks in advanced for any guidence or solution.

1 Like