技術は使ってなんぼ

自分が得たものを誰かの役に立てたい

【MoviePy】トリミングした動画の映像が止まる / 動画音声がiphoneスマホで音がでない バグ対策のTips

動画編集を自動化する依頼を多々受ける中で、タイトルのようなバグが発生したので、その対策ネタを紹介します。


MoviePyに対する日本語記事って実はあんまり多くないんですよね。


なので何か問題があったときに原因をググりまくってみたけど、類似の案件が見つからない!


というわけで、他のMoviePyユーザーのために私が気づいたことを書くことにしました。


前半はタイトルの対策ネタ、後半はMoviePyについての解説になります。




【目次】

対策の結論!


・トリミングした動画の映像が止まる!


編集前の動画に編集後の動画を上書きするとバグります。


→上書きやめると直ります。


・動画音声がiphoneスマホで音がでない


write_videofileのcodec引数に問題がある可能性があります。
iphone用のcodec引数は以下。
codec='libx264', audio_codec='aac', temp_audiofile='temp-audio.m4a', remove_temp=True


これといって詳しい解説はありません。


調べてみるとMoviePyの仕様上の問題や動画データのエンコード・デコードに関する問題のようでした。


後は実際に試してみて、上記の原因や対策を見つけたってのが詳細になります。


では、後半はMoviePyについての解説。

MoviePyとは


Pythonを使って動画編集ができるオープンソース(無料)になります。


公式サイトは以下です。
zulko.github.io


上記サイトにアクセスすると、トップ画面に以下のような画面が表示されます。

サンプルコード


VideoFileClipというモジュールの引数に、対象の動画ファイル名を指定してやるだけで、動画を読み込むことができます。


読み込める動画の拡張子はmp4、mov、avi等幅広く対応しています。


非常に引数が多彩で、audioやfps等の出力設定も簡単に設定できる優れもの。


ちなみにトリミングをする際は、VideoFileClipのsubclipという関数を呼び出すことで実装できます。


subclipの引数に開始時間と終了時間を指定できるので、Pythonプログラミングと組み合わせれば自由にトリミング時間を設定できるのです。

MoviePyでどんな動画編集ができるのか?

  • トリミング
  • 映像の結合・合成
  • 画像データとしての切り取り
  • 字幕挿入(やや設定が面倒)

上記のように、割と簡単な編集作業はMoviePyで自動化できます。


コードの書き方もそんなに難しくないので、Python使える方で動画編集に困っている方は一度お試しください。


Python書けないけど動画の簡単な編集作業を自動化したい!という方は、ぜひ私にご相談ください。

coconala.com


宣伝です。


今回はここまで!