MoviePyでワイプ画面の追加

MoviePyでワイプ画面の追加

無料の動画編集ソフトでも動画にワイプ画面を追加できますが、MoviePyでもできるということで試してみました。

コードはこちらを参考にしました。

from moviepy.editor import *

file_path1 = ""
file_path2 = ""
save_path = ""

video1 = VideoFileClip(file_path1)
video2 = VideoFileClip(file_path2)
w1,h1 = moviesize = video1.size
w2,h2 = moviesize2 = video2.size

# 動画のサイズにより、縮小率を変更

if w1 > h1 and w2 > h2:
    w = w1 / 4
    h = w * h2 / w2

elif w1 < h1 and w2 > h2:
    w = w1 / 2
    h = w  * h2 / w2 

elif w1 > h1 and w2 < h2:
    h = h1 / 2
    w = h *  w2 / h2

else:
    h = h1 / 4
    w = h *  w2 / h2

# 短いほうの動画に再生時間を合わせるために、時間を取得。

duration1 = video1.duration
duration2 = video2.duration
if duration2 >= duration1:
        d = int(duration1)
else:
        d = int(duration2)

wipe = (VideoFileClip(file_path2).       # ワイプ動画をロード
        resize((w, h)).                  # ワイプサイズを設定
        margin( 2,color=(255,255,255)).  # マージンを白にして枠をつくる
        margin( bottom=20, right=20, opacity=0).    # 位置の微調整。右側と下側に余白をつくる
        set_pos(('right','bottom')) )               # セットポジション

final_clip = CompositeVideoClip([video1, wipe])
final_clip.subclip(0,d).write_videofile(save_path, fps=30) # 0~d秒間を書き出し

その他、画面の反転、フェードイン、動画の結合、逆再生などもできるようなので、もう少し研究してみようと思います。

https://moviepy-tburrows13.readthedocs.io/en/latest/getting_started/compositing.html

お薦め動画