#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 и использовать классический медиаплеер.