Я пытаюсь записать список изображений в видео mp4. Когда я использую VideoWriter для локального пути к файлу mp4, этот код работает отлично, и мой файл mp4 сохраняется на диск.
Однако мне нужно выполнить эту операцию на сервере, используя временный файл, чтобы затем отправить его в другие места. Чтобы протестировать использование временного файла, я просто изменяю имя файла VideoWriter на file_out.name (через NamedTeilitaryFile) и копирую на диск, чтобы убедиться, что оно работает правильно. Вывод, который я получаю, - это файл 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 не не могу правильно написать в мой временный файл?
PS Моя первая попытка была записать VideoWriter в BytesIO для последующей отправки напрямую через http - это не сработало, поэтому я вернулся к временному файлу.