HOWTO · Python

Python スクリプトでの FFmpeg

このチュートリアルでは、Python スクリプトで FFmpeg を使用する方法を説明します。

FFmpeg は Fast Forward Moving Picture Experts Group の略です。 ffmpegffplayffprobe などのマルチメディア ファイルを処理するツールを提供するオープン ソース プロジェクトです。

FFmpeg は、ビデオ/オーディオ形式の変換、ビデオの圧縮、ビデオからのオーディオの抽出、GIF の作成、ビデオのカットなどに役立つコマンドライン ユーティリティです。

このチュートリアルでは、Python で FFMPEG コマンドを使用する方法を説明します。

FFmpeg Python パッケージをインストールする

まず、FFmpeg をシステムにインストールする必要があります。 管理者としてコマンド プロンプトを開き、次のコマンドを実行して choco を使用して FFmpeg をインストールします。

choco install ffmpeg

次に、Python パッケージ マネージャー ツール pip を使用して、ffmpeg-python パッケージをインストールします。

プロンプトで次のコマンドを実行して、pip でパッケージをインストールします。

pip install ffmpeg-python

出力:

Successfully built ffmpeg
Installing collected packages: ffmpeg
Successfully installed ffmpeg-1.4

FFmpeg を使用して Python でビデオをトリミングする

システムで FFmpeg を既に構成しているので、いくつかの FFmpeg コマンドを使用して Python でビデオを操作してみましょう。

次の例では、ビデオ Pencil.mp4 を 5 秒から 10 秒にカットし、output.mp4 として保存します。

import ffmpeg

video = ffmpeg.input("Pencil.mp4")
video = video.trim(start=5, duration=5)
video = ffmpeg.output(video, "output.mp4")
ffmpeg.run(video)

FFmpeg を使用して Python でビデオの幅と高さを取得する

次の例では、指定したビデオの幅と高さを Python で出力します。

import ffmpeg

probe = ffmpeg.probe("output.mp4")
video = next(
    (stream for stream in probe["streams"] if stream["codec_type"] == "video"), None
)
width = int(video["width"])
height = int(video["height"])
print("Width:", width)
print("Height:", height)

出力:

Width: 1280
Height: 720

FFmpeg を使用して Python でビデオからサムネイルを保存する

Python で FFmpeg を使用してビデオからサムネイルを保存することもできます。

次の例では、動画の時間 4 秒から幅 500px のサムネイルを生成します。

import ffmpeg

video = ffmpeg.input("Pencil.mp4", ss=4)
video = video.filter("scale", 500, -1)
video = ffmpeg.output(video, "output.png", vframes=1)
ffmpeg.run(video)

高さはアスペクト比によって自動的に決定されます。

出力画像:

Python の動画のサムネイル

FFmpeg を使用して Python でビデオを反転する

Python では、ffmpeg.hflip() を使用してビデオを水平方向に反転し、ffmpeg.vflip() を使用してビデオを垂直方向に反転できます。

ビデオを水平方向に反転します。

import ffmpeg

video = ffmpeg.input("Pencil.mp4")
video = ffmpeg.hflip(video)
video = ffmpeg.output(video, "horizontal.mp4")
ffmpeg.run(video)

ビデオを垂直に反転します。

import ffmpeg

video = ffmpeg.input("Pencil.mp4")
video = ffmpeg.vflip(video)
video = ffmpeg.output(video, "vertical.mp4")
ffmpeg.run(video)

FFmpeg は、マルチメディア ファイルに対してさまざまな操作を実行するための便利なツールです。 ビデオのトリミング、ファイル形式の変更、オーディオの抽出、GIF の作成などをすばやく行うことができます。

この時点で、Python スクリプトで FFmpeg コマンドを使用する方法を明確に理解しているはずです。 このチュートリアルがお役に立てば幸いです。