Wie kann ich auf einem Raspberry Pi 4B mit opencv-python ein Video mit MJPG statt YUYV aufnehmen?Python

Python-Programme
Anonymous
 Wie kann ich auf einem Raspberry Pi 4B mit opencv-python ein Video mit MJPG statt YUYV aufnehmen?

Post by Anonymous »

Ich zeichne derzeit Live-Videos mit meiner USB-Webcam auf meinem Raspberry Pi mit dem folgenden Code auf:

Code: Select all

import cv2 as cv
import time

class CameraInst():
# Constructor...
def __init__(self):

cap = cv.VideoCapture(0)  # Capture Video...
cap.set(cv.CAP_PROP_FOURCC, cv.VideoWriter_fourcc('M','J','P','G'))
cap.set(cv.CAP_PROP_FPS, 15)
cap.set(cv.CAP_PROP_FRAME_WIDTH, 1920)
cap.set(cv.CAP_PROP_FRAME_HEIGHT, 1080)

self.cap = cap

print("Aufnahme wird vorbereitet")
time.sleep(1)

def captureVideo(self):
# Capture
ret, self.frame = self.cap.read()
cv.moveWindow('frame',0,0)
cv.imshow('frame',self.frame)

def main():
cam1 = CameraInst()

while(True):
# Display the resulting frames...
cam1.captureVideo()    # Live stream of video on screen...
if cv.waitKey(1) & 0xFF == ord('q'):
break

if __name__=='__main__':
main()
Der Code funktioniert nicht mehr, wenn ich die Funktion cap.set(cv.CAP_PROP_FPS, 15) verwende und ich weiß nicht, was ich falsch gemacht habe.
Ich erhalte die folgenden Fehlermeldungen:

Code: Select all

[ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (961) open OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1
[ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (1214) setProperty OpenCV | GStreamer warning: GStreamer: unhandled property
[ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (1824) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module v4l2src0 reported: Internal data stream error.
[ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (536) startPipeline OpenCV | GStreamer warning: unable to start pipeline
[ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (1085) setProperty OpenCV | GStreamer warning: no pipeline
[ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (1085) setProperty OpenCV | GStreamer warning: no pipeline
Aufnahme wird vorbereitet
Traceback (most recent call last):
File "/home/pi/Documents/RPV_Video_V8.py", line 45, in 
main()
File "/home/pi/Documents/RPV_Video_V8.py", line 40, in main
cam1.captureVideo()    # Live stream of video on screen...
File "/home/pi/Documents/RPV_Video_V8.py", line 31, in captureVideo
cv.imshow('frame',self.frame)
cv2.error: OpenCV(4.5.1) ../modules/highgui/src/window.cpp:376: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'imshow'

Nicht die Sache ist, wenn ich cap.set(cv.CAP_PROP_FPS, 15) entferne dann funktioniert der Code gut, aber dann zeichnet die Kamera mit YUYV und nicht mit MJPG auf.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post