広告 ブログ

moviepyで動画のアスペクト比を保ちながらサイズを変更する

3月 14, 2025

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

1080×1350の動画のイメージ
上下に余白を入れて1080×1920にした

とりあえずこんな感じでうまいぐあいに余白が入った。
想定外の動画は改修する必要があるかもなのであしからず。

    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_rate = target_w/w
        h_rate = target_h/h

        # widthかheightを目標に遠い方に合わせる
        rate = w_rate
        if w_rate > h_rate:
            rate = h_rate

        # 動画のリサイズ
        clip1 = clip1.resize(newsize=(int(clip1.w*rate), int(clip1.h*rate)))
        w = clip1.w
        h = clip1.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
  • この記事を書いた人

たろう

海外ノマド5年目🇲🇹→🇹🇭のアフィリエイター
2023年8月~ブログ開始でようやく月5万の壁突破

最新総フォロワー数: 11038
𝕏: 3,029
インスタ: 7,482
TikTok: 527

現在SNSアフィ挑戦中|英語・タイ語ガチ勢|現地民とお酒を飲むために語学勉強

-ブログ