Я пытаюсь записать список изображений в видео mp4. Когда я использую VideoWriter для локального пути к файлу mp4, этот код работает отлично, и мой файл mp4 сохраняется на диск.
Однако мне нужно выполнить эту операцию на сервере, используя временный файл, чтобы затем отправить его в другие места. Чтобы протестировать использование временного файла, я просто меняю имя файла VideoWriter на file_out.name (через NamedTemporaryFile) и копирую на диск, чтобы убедиться, что он работает правильно. На выходе я получаю файл mp4 одинакового размера, но его нельзя открыть ни одним видеоплеером, поэтому с файлом должно быть что-то не так.
file_out = tempfile.NamedTemporaryFile(suffix='.mp4')
video = cv2.VideoWriter(file_out.name,cv2.VideoWriter_fourcc(*'avc1'),20,(width,height))
for i in range(len(images)):
video.write(np.asarray(images[i]))
shutil.copy(file_out.name, '/path/to/test_output.mp4')
Что может происходить, из-за чего VideoWriter не может корректно записать в мой временный файл?
P.S. Моей первой попыткой было записать VideoWriter в BytesIO, чтобы затем отправить напрямую через http - это не сработало, поэтому я вернулся к временному файлу.