0
ビデオからフレームを読み込もうとしていますが、フレームを抽出してからビデオが無駄です。だから私はTempFileモジュールを使うことにしました。しかし、私が使用するフレームcv2.VideoCapture(NamedTempFile.name)
は常に黒です。私はこれが正しい方法であるかどうか疑問に思います。そうでない場合は、より良い方法がありますか? 以下のコードのビデオキャプチャ部分を添付します。
また、get_temp_video関数が間違っている可能性があります。OpenCVを使ってPythonのNamedTempFileからビデオを読み込むにはどうすればいいですか?
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()
あなたの答えをありがとう。私はどこにエラーがあるかを見つける。ちょうどあなたの答えのようにいくつかのロジックupload_to_some_where関数が間違っている、 –