はじめに
この記事は、FFmpegとFFprobeの基本的な説明と、Amazon EC2インスタンス上でのインストール方法について実際に行った手順を記事に残しておく目的で書いています。
FFmpegとFFprobeとは
FFmpegは、オープンソースのマルチメディアフレームワークで、動画や音声の変換、処理、ストリーミングなどが可能な強力なコマンドラインツールです。様々な形式の動画・音声ファイルを処理できることから、メディア関連のアプリケーション開発では必須のツールとなっています。
FFprobeはFFmpegプロジェクトの一部であり、マルチメディアファイルの情報(コーデック、解像度、ビットレート、メタデータなど)を解析・取得するためのツールです。FFprobeを使用することで、ファイルの詳細情報を簡単に取得でき、その情報に基づいて適切な処理が可能になります。
プロジェクトでの使用例
今回私が実装していたプロジェクト内の例として、FFmpegとFFprobeは以下のライブラリを通じて使用されていました。
主要な依存ライブラリ
-
MoviePy (1.0.3)
- 動画処理の主要ライブラリ
- 内部でFFmpegとFFprobeを使用
- 提供する主な機能:
-
VideoFileClip
: 動画ファイルの読み込み -
CompositeVideoClip
: 動画の合成 -
concatenate_videoclips
: 動画の連結 -
write_videofile
: 動画の書き出し
-
-
imageio-ffmpeg (0.6.0)
- MoviePyの依存ライブラリ
- FFmpegとのインターフェースを提供
- 動画の読み書き処理を担当
これらの機能はすべてMoviePyライブラリを通じて間接的に使用されており、MoviePyが内部でFFmpegとFFprobeを呼び出して処理を行っています。
インストール方法
Amazon EC2インスタンスの場合
静的ビルド版のインストール
John Van Sickleが提供する静的ビルド版を使用します。このビルドは依存関係なしで動作する完全な実行ファイルで、EC2などのクラウド環境で特に便利です。
# 開発ツールのインストール
sudo yum install -y git bzip2 tar gcc make openssl-devel readline-devel zlib-devel wget xz xz-devel
# FFmpegのダウンロードと解凍
mkdir ffmpeg
cd ffmpeg
wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
tar -xf ffmpeg-release-amd64-static.tar.xz
rm ffmpeg-release-amd64-static.tar.xz
# FFmpegへのシンボリックリンクの作成
sudo ln -sf /home/ec2-user/ffmpeg/ffmpeg-7.0.2-amd64-static/ffmpeg /usr/bin/ffmpeg
# FFprobeへのシンボリックリンクの作成
sudo ln -s /home/ec2-user/ffmpeg/ffmpeg-7.0.2-amd64-static/ffprobe /usr/bin/ffprobe
# ハッシュテーブルの更新
hash -r
# インストールの確認
which ffmpeg
which ffprobe
# 必要に応じて実行権限の付与
chmod +x /home/ec2-user/ffmpeg/ffmpeg-7.0.2-amd64-static/ffmpeg
注意: このインストール方法ではJohn Van Sickleが提供する静的ビルド版を使用しています。John Van Sickleは長年FFmpegの静的ビルドを個人的に提供しているコントリビューターで、これらのビルドは多くのサーバー環境で広く利用されています。公式のFFmpegプロジェクトではありませんが、信頼性の高いソースとして知られています。
ローカル環境(macOS)の場合
brew install ffmpeg
インストール後の確認
インストールが正しく完了したか確認するには、以下のコマンドを実行してください:
ffmpeg -version
ffprobe -version
システム情報の確認
cat /etc/os-release
出力例(AWS Linux 2023の場合):
NAME="Amazon Linux"
VERSION="2023"
ID="amzn"
ID_LIKE="fedora"
VERSION_ID="2023"
PLATFORM_ID="platform:al2023"
PRETTY_NAME="Amazon Linux 2023"
HOME_URL="https://aws.amazon.com/linux/amazon-linux-2023/"
BUG_REPORT_URL="https://github.com/amazonlinux/amazon-linux-2023"