Когда я использую opencv- python VideoWriter для локального пути к файлу mp4, приведенный ниже код работает отлично, и файл mp4 сохраняется на диск. Эта операция сохранения на диск должна работать так же, как и сохранение в временном файле.
Чтобы проверить использование временного файла, я просто изменяю имя файла VideoWriter на file_out.name (через NamedTeoraryFile) и копирую на диск, чтобы убедиться, что оно работал правильно. Вывод, который я получаю, - это файл mp4 одинакового размера, но он не может быть открыт ни одним видеопроигрывателем - поэтому с файлом должно быть что-то не так.
Код, который работал правильно:
video = cv2.VideoWriter('/path/to/test_output.mp4',cv2.VideoWriter_fourcc(*'avc1'),20,(width,height))
for i in range(len(images)):
video.write(np.asarray(images[i]))
Код, который создал нечитаемый вывод 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')