📽️
MoviePyでオリジナルの動画のアス比を保つ方法
MoviePyを使っているとなぜか全ての動画が1920x1080扱いされる。何か使い方を間違えているのかもしれない、教えて詳しい人。
from moviepy.editor import VideoFileClip
video = VideoFileClip(input_file)
print(f"width: {video.width}")
print(f"height: {video.height}")
# どんな動画でも常に1920x1080になる。
>>> 1920
>>> 1080
resizeで片側だけ指定したらアス比保たれるよ!とは書かれているものの、読み込みの時点でなぜか上記のアス比なので解決に至らず。
OpenCV使ってresizeすると上手くいった。なぜ全部同じサイズに扱われるんだろう...。
import cv2
from moviepy.editor import VideoFileClip
vid = cv2.VideoCapture(input_file)
height = vid.get(cv2.CAP_PROP_FRAME_HEIGHT)
width = vid.get(cv2.CAP_PROP_FRAME_WIDTH)
video = VideoFileClip(input_file)
video_resized = video.resize(newsize=(width, height))
Discussion