I have built my own opencv python package from source.
import cv2
print(cv2.__version__)
prints: 3.4.5
Now the issue I am facing is regarding the use of gstreamer from the VideoCapture class of opencv. I am trying to get this mimimum working example running on python3
cap = cv2.VideoCapture("videotestsrc ! appsink")if not cap.isOpened():print("Cannot capture test src. Exiting.")quit()while True:ret, frame = cap.read()if ret == False:breakcv2.imshow("CVtest",frame)if cv2.waitKey(1) & 0xFF == ord('q'):break
Capture fails, producing my print above (see if
statement). I checked:
import cv2
print(cv2.getBuildInformation())
prints:
Video I/O:
DC1394: NO
FFMPEG: NOavcodec: NOavformat: NOavutil: NOswscale: NOavresample: NO
GStreamer: NO
libv4l/libv4l2: NO
v4l/v4l2: linux/videodev2.h
Seeing that, it made absolute sense that my gstreamer pipeline didn't work. I ensured WITH_GSTREAMER was set to ON during ccmake of OpenCV (which it already was). Still the issue maintained. I even tried setting WITH_GSTREAMER_0_10 to ON as well. Still no luck having gstreamer enabled from the cv2 python module.
Before anyone suggests using pip3 to install cv2. I tried that, too. The issue with getting the package from pip is, it doesn't let you configure gstreamer support at all.
Can anyone provide help here?