MoviePY write_videofile создание поврежденных видео

#python #opencv #mp4 #moviepy #corrupt

Вопрос:

Я пытаюсь написать программу, которая позволяет обрезать видео, рисуя ROI (область интереса), используя пакеты MoviePY и CV2. Обрезка и все работает нормально, проблема в сохранении только что обрезанного видео. Видео в конечном итоге создается, но его нельзя просмотреть. Всякий раз, когда я открываю файл, я получаю ошибку 0xc1010103.

Это мой код:

 import cv2
from moviepy.editor import VideoFileClip
from moviepy.video.fx.all import crop, resize


clip = VideoFileClip("inputvid.mp4")
clip = resize(clip, (460,720))

im = clip.get_frame(1)
r = cv2.selectROI("Image", im, False, False)
print(r)

cv2.destroyAllWindows()

if not r == (0, 0, 0, 0):
    cropped_clip = crop(clip, x1=int(r[0]), y1=int(r[1]), width=int(r[2]), height=int(r[3]))
    #cropped_clip.preview()
    cropped_clip.write_videofile("test.mp4")
 

Я знаю, что все, вплоть до файла write_videofile, работает, потому что обрезанный клип.предварительный просмотр() показывает правильно обрезанное видео, это только файл из файла write_videofile, который работает неправильно.

Любая помощь будет очень признательна!!

Комментарии:

1. Добро пожаловать в Stack Overflow! Пожалуйста, не редактируйте объявления о решении в вопросе. Примите (т. е. нажмите «галочку» рядом с ним) один из существующих ответов, если таковые имеются. Вы также можете создать свой собственный ответ и даже принять его, если ваше решение еще не охвачено существующим ответом.

2. Вероятно, это проблема игрока. Смотрите здесь , например. Когда я тестирую ваш код, выходное видео воспроизводится так, как ожидалось. Вы можете попробовать другие видеоплееры, такие как VLC. Вы также можете попробовать установить пакет кодеков K-Lite и использовать классический медиаплеер.