Ich versuche Frames aus Video zu lesen, aber das Video ist nutzlos nach dem Extrahieren von Frames. Also entscheide ich mich für das TempFile-Modul. Allerdings ist der Rahmen, den ich cv2.VideoCapture(NamedTempFile.name)
verwende, immer schwarz. Ich frage mich, ob dies der richtige Weg ist. Wenn nicht, gibt es einen besseren Weg? Ich füge den Video-Capture-Teil meines Codes unten an.
Auch bezweifle ich, dass die get_temp_video Funktion falsch sein könnte.Wie benutze ich OpenCV, um Video von einer NamedTempFile in Python zu lesen
def get_temp_video(url, temp_file):
r = requests.get(url, stream=True)
for chunk in r.iter_content(chunk_size=1024):
if chunk:
temp_file.write(chunk)
return temp_file
def get_frame(video_url):
named_temp_file = NamedTemporaryFile()
named_temp_file = get_temp_video(video_url, named_temp_file)
named_temp_file.seek(0)
video = cv2.VideoCapture(named_temp_file.name)
while video.isOpened():
ret, frame = video.read()
if ret:
temp_file = TemporaryFile()
np.save(temp_file, frame)
temp_file.seek(0)
upload_to_some_where(temp_file.read())
temp_file.close()
else:
break
video.release()
named_temp_file.close()
Vielen Dank für Ihre Antwort. Ich finde wo der Fehler ist. Genau wie Ihre Antwort eine Logik in upload_to_some_where Funktion ist falsch, –