How To Resize a Video Clip in Python

Moviepy Resize function

>>> myClip.resize( (460,720) ) # New resolution: (460,720)
>>> myClip.resize(0.6) # width and heigth multiplied by 0.6
>>> myClip.resize(width=800) # height computed automatically.
>>> myClip.resize(lambda t : 1+0.02*t) # slow swelling of the clip

Here is how you resize a movie with moviepy: see the mpviepy doc here

import moviepy.editor as mp
clip = mp.VideoFileClip("movie.mp4")
clip_resized = clip.resize(height=360) # make the height 360px ( According to moviePy documenation The width is then computed so that the width/height ratio is conserved.)
clip_resized.write_videofile("movie_resized.mp4")

You can also tune the quality by adding the parameter bitrate="500k" or bitrate="5000k" in the last line.

As said above, you could also use ffmpeg directly, it will be simpler if you just need a quick script.


Why not ffmpeg?

ffmpeg -i movie.mp4 -vf scale=640:360 movie_360p.mp4

If you use 640:-2 then, in this example, the scale filter will preserve the aspect ratio and automatically calculate the correct height.

Look at the H.264 encoding guide for additional options.