環境
- Windows 10
- Python 3.9.4
- VSCode
事前準備
ffmpegの本体(実行ファイル)とpythonのライブラリのインストールが必要です
ffmpeg-pythonのインストール
pinenv install ffmpeg-python
ffmpegのインストール
公式サイトからインストーラーをダウンロード
https://ffmpeg.org/download.html
トップページのDownloadボタンをクリックし、下にスクロール
![](https://images.microcms-assets.io/assets/c8f47cd9ef654a2d9ca6b6e579be433f/18e848e360d2456a98256b9dee715612/image.png)
OSごとのアイコンがあるので対象をクリック
![](https://images.microcms-assets.io/assets/c8f47cd9ef654a2d9ca6b6e579be433f/dd227bdb174c47998d93a01a7973129b/image.png)
Windows builds by BtbN の方をクリック
![](https://images.microcms-assets.io/assets/c8f47cd9ef654a2d9ca6b6e579be433f/db9376817ee74306a62500711b0c66b8/image.png)
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を使用して動画トリミングを自動化する方法について紹介しています。ぜひ参考にしてみてください。