Masayan tech blog.

  1. ブログ記事一覧>
  2. Pythonで動画トリミングを自動化する方法

Pythonで動画トリミングを自動化する方法

公開日

環境

  • Windows 10
  • Python 3.9.4
  • VSCode

事前準備

ffmpegの本体(実行ファイル)とpythonのライブラリのインストールが必要です

ffmpeg-pythonのインストール

pinenv install ffmpeg-python

ffmpegのインストール

公式サイトからインストーラーをダウンロード

https://ffmpeg.org/download.html

トップページのDownloadボタンをクリックし、下にスクロール

OSごとのアイコンがあるので対象をクリック

Windows builds by BtbN の方をクリック

Githubのリポジトリに飛ぶので、win64-gplとファイル名に入っているzipファイルをダウンロード

最後に、落としてきた圧縮ファイルを適当なフォルダに展開して、展開したフォルダ内にあるbinフォルダにPATHを通せば完了

which ffmpeg
# /c/Program Files/Ffmpeg/bin/ffmpeg 

トリミングの実装例

読み込み

import ffmpeg

stream = ffmpeg.input(
    "input.mp4", # 読み込む動画のファイルパス
    ss=9227.07, # 開始時間
    t=6.64, # 開始時間からトリミングする動画時間
)

audio_stream = stream.audio

# ↓以降でフィルタして書き出し処理

音声トラックが消えてしまう場合があるので、ストリームにフィルタをかける前に音声を分けておいて(audio_stream)、後で結合してあげる必要があります

書き出し

# ↑ここまでで読み込み

audio_stream = stream.audio

stream.filter("fps", fps=15, round="up").output(
    stream,
    audio_stream, # 分けておいた音声データ
    "書き出す動画ファイルのパス",
    crf=30,
).run(overwrite_output=True)

まとめ

いかがでしたでしょうか。本記事では、本記事では、Pythonでffmpegを使用して動画トリミングを自動化する方法について紹介しています。ぜひ参考にしてみてください。