環境
- Windows 10
- Python 3.9.4
- VSCode
使用するソースコード
以下の公開リポジトリに置いています
GitHub - masayan1126/tao-py-py: 作業自動化用 Python ライブラリ
作業自動化用 Python ライブラリ. Contribute to masayan1126/tao-py-py development by creating an account on GitHub.
事前準備

masayan
ffmpegの本体(実行ファイル)とpythonのライブラリのインストールが必要です
ffmpeg-pythonのインストール
pinenv install ffmpeg-python
ffmpegのインストール
公式サイトからインストーラーをダウンロード
Download FFmpeg
トップページの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
# ↓以降でフィルタして書き出し処理

masayan
音声トラックが消えてしまう場合があるので、ストリームにフィルタをかける前に音声を分けておいて(audio_stream)、後で結合してあげる必要があります
書き出し
# ↑ここまでで読み込み
audio_stream = stream.audio
stream.filter("fps", fps=15, round="up").output(
stream,
audio_stream, # 分けておいた音声データ
"書き出す動画ファイルのパス",
crf=30,
).run(overwrite_output=True)