
【Python】MoviePyで動画編集の自動化【動画編集への道#1】
この記事は、FFmpegコマンドを直接書くのに疲れた人が、PythonでサクッとカットやテロップやBGMミックスまで自動化するための入門メモです。 MoviePyはコアにFFmpegを使いつつ、Pythonらしいオブジェクト指向で VideoFileClip(...).subclip(...).write_videofile(...) のようにつなげて書けるので、動画編集ソフトを開かずに同じ加工を繰り返したいときに向いています。 まず手を動かすなら、後述の 指定時間でカット からどうぞ。1分尺の動画から数秒だけ切り出して書き出すだけなら、10行ほどで済みます。 準備 Pythonやシェルを使った動画編集の第一弾としまして、MoviePyでの動画編集をご紹介していきます。MoviePyの全体像や最新情報は 公式ドキュメント にまとまっていますので、ご覧ください。 次のような動画フォーマットを元に、MoviePyで動画を編集していきますね。 項目 値 サイズ 1280 × 720 エンコード H.264、 AAC MoviePyのインストール pipでMoviePyをインストールしましょう。Pythonは3.x系を使っていきます。 本記事のサンプルは from moviepy.editor import * や subclip を前提とした 1.x 系で書いています。2.x 系ではインポートパスや一部APIが変わっておりサンプルがそのままでは動かないため、バージョンを固定してインストールしてください。 $ pip install "moviepy<2" なお、MoviePyのコアでは ffmpeg のバイナリを呼び出します。OS側に ffmpeg が入っていない場合は事前にインストールしてください(macOSなら brew install ffmpeg、Ubuntuなら sudo apt install ffmpeg)。 それではMoviePyの使い方、プログラミング例をご紹介していきます。 指定時間でカット from moviepy.editor import * start = "00:00:03" # 開始時刻 end = "00:00:06" # 終了時刻 final_clip = VideoFileClip("in.mp4").subclip(start, end) final_clip.write_videofile( "split.mp4", codec='libx264', audio_codec='aac', temp_audiofile='temp-audio.m4a', remove_temp=True ) 音が出ない時の対処 write_videofile に何も指定しないと、環境によっては音が落ちて書き出されることがあります。MP4 で配るなら audio_codec='aac' と一時ファイル名 temp-audio.m4a を明示しておくと安定します。書き出し後はQuickTime / VLCなどで実際に音が出るかも軽く確認しておくのがおすすめです。 ...



