🐡
【MoviePy】 アプデが改悪すぎる件について
MoviePyが最近Ver.2になりましたが、それでめっちゃ混乱おきてるみたいなので変更点をまとめておきます。
もちろん改悪なものだけではなく、結構役立つアプデもあったので一緒に書いておきます。
editor.py
を使用せず、直接インポートできるようになった
1: from moviepy.editor import VideoFileClip
これが
from moviepy import VideoFileClip
みたいにできるようになりました。
知らなかったら『なんでエラー起きるの??』となるので正直やめてほしいです..
せめてmoviepy.editorが見つからないっていうエラーが起きたときにはeditorは廃止されたって旨のメッセージくらいは出してほしかったですね...。
subclip
がsubclipped
になった
2: よく使うメソッドですね。
正直ここはVSCodeで予測変換で出るのでなんともないです。
個人的に最高のアプデ
変更1: オブジェクトに不変性を持たせた
変更前
clip = VideoFileClip("example.mp4")
clip = clip.subclip(10, 20) # 自身を変更
clip.set_duration(10) # 同じオブジェクトを変更
変更後
clip = VideoFileClip("example.mp4")
clip = clip.subclipped(10, 20) # 新しいクリップを返す(元のclipは変化しない)
clip = clip.with_duration(10) # 新しいクリップを代入し直す
これだけでかなり使いやすくなった。
ちなみに、この影響で多くのメソッドがset_
からwith_
に変更されているらしいです。
変更2: エフェクトAPIが一新
変更前
from moviepy.editor import vfx
fade_in_clip = clip.fx(vfx.fadein, 1)
fade_out_clip = fade_in_clip.fx(vfx.fadeout, 1)
変更後
from moviepy import vfx
clip = clip.with_effects([vfx.FadeIn(1), vfx.FadeOut(1)])
かなーり使いやすくなった。
変更3: 音量は乗算で行うようになった
変更前
from moviepy.editor import afx
clip = clip.fx(afx.volumex, 0.8)
変更後
clip = clip.with_audio(clip.audio * 0.8)
直感でできるようになったので最高です!
Discussion