例えば1080×1920の動画を作りたいけど、元の動画が1080×1350だった時は、立幅を+570してやればいい。
つまり上下に285pxずつ余白を入れてやれば解決する。


とりあえずこんな感じでうまいぐあいに余白が入った。
横長の動画を縦長にするとか、想定外の動画は改修する必要があるのであしからず。
clip1 = VideoFileClip(mp4_path)
w = clip1.w
h = clip1.h
target_w = 1080
target_h = 1920
if w < target_w or h < target_h:
# 動画が小さい場合はwかhを近い方に合わせる
if w < target_w and h < target_h:
w_rate = target_w/w
h_rate = target_h/h
rate = min(w_rate, h_rate)
clip1 = clip1.resize(newsize=(int(clip1.w*rate), int(clip1.h*rate)))
w = clip1.w
h = clip1.h
# 足りないところは黒塗りの余白で埋める
if w < target_w or h < target_h:
margin_x = int((target_w-w)/2)
margin_y = int((target_h-h)/2)
clip1 = clip1.margin(left=margin_x, right=margin_x, top=margin_y, bottom=margin_y, opacity=0)
w = clip1.w
h = clip1.h