ich habe hier ein Problem, was mir echt Kopfzerbrechen bereitet:
cv2.error: OpenCV(4.5.1) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-wvn_it83\opencv\modules\highgui\src\window.cpp:376: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'
Natürlich habe ich mich schon umfangreich schlau gemacht, wo der Fehler liegt. Es hat definitiv mit meinem Pfad zu tun...aber hier wird es irgendwie strange (natürlich kann ich zu 100% ausschließen, dass ein Fehler im Pfad selbst liegt) Selbstverständlich gibt es die Videodatei auch und sie ist auch nicht korrupt.
Folgende Funktion habe ich geschrieben, um den Fehler einzugrenzen:
Code: Alles auswählen
def playout(path):
cap = cv2.VideoCapture(path)
cap.set(cv2.CAP_PROP_POS_FRAMES,0)
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
print(ret)
print(frame)
# Display the resulting frame
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
#sleep(3.5)
Code: Alles auswählen
x = r"L:\Cam15-MP4\frame_store\100\Video1\complete\video.100.1599549930306.unk.Video1.1618456766.1618457369873.1619177086780.1456675434085540.1456675434085540.1618457375872.1619180686860.1456675758085540.1456675758085540.3600.mp4"
y = r"L:/Cam15-MP4/frame_store/100/Video1/complete/video.100.1599549930306.unk.Video1.1618456766.1618457369873.1619177086780.1456675434085540.1456675434085540.1618457375872.1619180686860.1456675758085540.1456675758085540.3600.mp4"
b = r"L:\\Cam15-MP4\\frame_store\\100\\Video1\\complete\\video.100.1599549930306.unk.Video1.1618456766.1618457369873.1619177086780.1456675434085540.1456675434085540.1618457375872.1619180686860.1456675758085540.1456675758085540.3600.mp4"
z= r"video.100.1599549930306.unk.Video1.1618456766.1618457369873.1619177086780.1456675434085540.1456675434085540.1618457375872.1619180686860.1456675758085540.1456675758085540.3600.mp4"
w = x + z
path_a = r"L:\Cam15-MP4\frame_store\100\Video1\complete"
wave = Path(r"L:\Cam15-MP4\frame_store\100\Video1\complete", "video.100.1599549930306.unk.Video1.1618456766.1618457369873.1619177086780.1456675434085540.1456675434085540.1618457375872.1619180686860.1456675758085540.1456675758085540.3600.mp4")
path = os.path.join(path_a, z)
s = os.path.join(x)
L:\Cam15-MP4\frame_store\100\Video1\complete
Nun habe ich sowohl den Pfad wie auch die Datei folgendermaßen geprüft:
Code: Alles auswählen
playout(s)
if os.path.exists(r"L:\Cam15-MP4\frame_store\100\Video1\complete"):
# Does only exists as raw string formatting
print("path exist")
else:
print("path does not exist")
if os.path.isfile(r"L:\Cam15-MP4\frame_store\100\Video1\complete\video.100.1599549930306.unk.Video1.1618456766.1618457369873.1619177086780.1456675434085540.1456675434085540.1618457375872.1619180686860.1456675758085540.1456675758085540.3600.mp4"):
# File exists!
print("file exist")
else:
print("file does not exists")
Nun meine Frage, wo liegt der Fehler? Das Video gibt es, der Pfad ist korrekt (er ist ultra lang, aber das ist leider auf dem Server so). Ich kann das File auch über die Funktion Playout() anspielen, ABER NUR wenn ich die Variante auf dem Desktop benutze.
Ich hab auch noch andere Pfade, die ich der Funktion übergebe, die relativ ähnlich sind und die funktionieren problemlos! Das ist wichtig, die Logik funktioniert bei einigen Fällen ganz genau so, wie ich es geschrieben habe. Nur in diesem Testfall, den ich versuche zu verstehen, kommt der o.g. openCV Traceback...wenn ich den gesamten Pfad angebe.
Ich würde mich tierisch freuen, wenn ihr mir hier weiterhelfen könnt, weil es das letzte Problem ist, was es für mich zu lösen gilt.
Über jeden Hinweis bin ich echt dankbar.
Viele Grüße,
Marc