According to docummentation Accelerated_GStreamer_User_Guide_Release_24.2.1, nvvidconv provide 7 method to flip the frame.
I want to do nvvidconv flip-method=4 and nvvidconv flip-method=6 at the same time. How should I write the gstreamer pipeline in Python with cv2 on Jetson Nano?
The Code:
import cv2 width = 640 height = 480 framerate = 30 gs_pipeline = f"v4l2src device=/dev/video0 io-mode=2 " \ f"! image/jpeg, width={width}, height={height}, framerate={framerate}/1, format=MJPG " \ f"! nvv4l2decoder mjpeg=1 " \ f"! nvvidconv flip-method=[4, 6] " \ f"! video/x-raw, format=BGRx " \ f"! videoconvert " \ f"! video/x-raw, format=BGR " \ f"! appsink drop=1" gs_pipeline = gs_pipeline print(f"gst-launch-1.0 {gs_pipeline}\n") v_cap = cv2.VideoCapture(gs_pipeline, cv2.CAP_GSTREAMER) if not v_cap.isOpened(): print("failed to open video capture") v_cap.release() exit(-1) while v_cap.isOpened(): ret_val, frame = v_cap.read() if not ret_val: break cv2.imshow('', frame) input_key = cv2.waitKey(1) if input_key != -1: print(f"input key = {input_key}") if input_key == ord('q'): break v_cap.release() cv2.destroyAllWindows() 1 Answer
Flipping horizontally and vertically would be equivalent to 180° rotation, so just use:
... ! nvvidconv flip-method=2 ! ...