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_ 기능이 잘못되어 있습니다. –