はじめに (対象読者・この記事でわかること)

本記事は、レガシー環境のサーバー管理者や、CentOS 6 上で動画処理・ストリーミングを行いたいエンジニアを対象としています。CentOS 6 の公式リポジトリには ffmpeg が存在しないため、ソースコンパイルやサードパーティリポジトリの利用が必須です。この記事を読むことで、EPEL と RPM Fusion の設定方法、依存関係の解決、ffmpeg のビルド・インストール手順、そして実際に動作確認できるまでの流れがすべて把握でき、トラブルが起きた際の対処法も身につきます。古い環境でも安全に最新の ffmpeg 機能を活用したい方に最適です。

前提知識

この記事を読み進める上で、以下の知識があるとスムーズです。
- Linux の基本的なコマンド操作(yum、rpm、tar 等)
- 基本的なシェルスクリプトの理解
- ネットワーク経由でパッケージを取得できる環境

概要と必要性

CentOS 6 は 2020 年に LTS サポートが終了し、公式リポジトリからは新しいマルチメディアライブラリが提供されません。その結果、ffmpeg のような高度なエンコーディング・デコーディングツールが利用できず、動画変換やライブストリーミングの実装が困難になります。多くの企業・教育機関では、既存のインフラをすぐに置き換えるコストが足りず、既存の CentOS 6 環境に ffmpeg を導入する必要があります。
本セクションでは、ffmpeg が何であるか、なぜ CentOS 6 での導入が難しいのか、そしてそれを克服するための主要なアプローチ(EPEL + RPM Fusion の併用、ソースからのビルド)を概観します。特に、依存関係の衝突や古いライブラリバージョンが障壁となりやすいため、適切なリポジトリ構成とビルドオプションの選定が成功の鍵となります。

CentOS 6 へ ffmpeg をインストールする手順

ステップ 1 – リポジトリの設定と更新

  1. EPEL (Extra Packages for Enterprise Linux) の有効化
    bash sudo yum install -y epel-release EPEL は多くの追加パッケージを提供しますが、ffmpeg 本体は含まれていません。

  2. RPM Fusion の有効化
    CentOS 6 用の RPM Fusion は公式サイトから直接入手します。以下のコマンドで free と nonfree リポジトリを追加します。
    bash sudo rpm -Uvh http://download1.rpmfusion.org/free/el/rpmfusion-free-release-6.noarch.rpm sudo rpm -Uvh http://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-6.noarch.rpm

  3. yum キャッシュのクリアと更新
    bash sudo yum clean all sudo yum -y update

ステップ 2 – 必要な依存パッケージのインストール

ffmpeg のビルドに必要な開発ツールとライブラリを一括でインストールします。

Bash
sudo yum groupinstall -y "Development Tools" sudo yum install -y \ nasm yasm libtool \ libX11-devel libXext-devel libXfixes-devel \ libXv-devel libXrandr-devel mesa-libGL-devel \ libv4l-devel \ libjpeg-turbo-devel \ libpng-devel \ freetype-devel \ libtheora-devel \ libvorbis-devel \ opus-devel \ libass-devel \ libfreetype6-devel \ libx264-devel \ libx265-devel \ libvpx-devel \ libwebp-devel \ librtmp-devel \ librabbitmq-devel

※ 特に libx264-devellibx265-devel は EPEL から提供されますが、CentOS 6 用のパッケージは古い場合があります。その際はソースからのインストールが必要です(次章で補足)。

ステップ 3 – ffmpeg ソースの取得とコンパイル

  1. ソースコードの取得
    最新の安定版を公式サイトからダウンロードします。以下は 2023 年 12 月リリース版の例です。
    bash cd /usr/local/src sudo wget https://ffmpeg.org/releases/ffmpeg-6.0.tar.bz2 sudo tar xjf ffmpeg-6.0.tar.bz2 cd ffmpeg-6.0

  2. コンフィギュレーション
    依存ライブラリを有効にした状態でビルドできるようオプションを設定します。
    bash sudo ./configure \ --prefix=/usr/local/ffmpeg \ --pkg-config-flags="--static" \ --extra-cflags="-I/usr/include" \ --extra-ldflags="-L/usr/lib64" \ --extra-libs="-lpthread -lm" \ --enable-gpl \ --enable-nonfree \ --enable-libx264 \ --enable-libx265 \ --enable-libvpx \ --enable-libfreetype \ --enable-libass \ --enable-libmp3lame \ --enable-libopus \ --enable-libvorbis \ --enable-libtheora \ --enable-libwebp \ --enable-libsoxr \ --enable-libfdk-aac \ --enable-libdav1d \ --enable-shared

  • --enable-nonfreelibfdk-aac など非フリーライセンスのコーデックを使用する場合に必須です。
  • --enable-shared により、共有ライブラリとしてインストールされ、システム全体で利用可能になります。
  1. ビルドとインストール
    bash sudo make -j$(nproc) sudo make install

ビルド完了後、/usr/local/ffmpeg/bin/ffmpeg が生成されます。PATH に追加しておくと便利です。
bash echo 'export PATH=$PATH:/usr/local/ffmpeg/bin' | sudo tee /etc/profile.d/ffmpeg.sh source /etc/profile.d/ffmpeg.sh

ステップ 4 – 動作確認

Bash
ffmpeg -version

出力例:

ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 4.8.5 (Red Hat 4.8.5-44)
configuration: --prefix=/usr/local/ffmpeg --enable-gpl --enable-nonfree --enable-libx264 ...

ハマった点やエラー解決

1. libx264-devel が古すぎる

CentOS 6 の EPEL では libx264 が 0.100 系に止まっており、ffmpeg の最新版が要求する 0.160 以上と互換性がありません。その結果、./configure 時に以下のエラーが出ます。

ERROR: libx264 not found

解決策
- ソースから libx264 をビルド
bash cd /usr/local/src sudo git clone --depth 1 https://code.videolan.org/videolan/x264.git cd x264 sudo ./configure --enable-static --enable-pic sudo make -j$(nproc) sudo make install インストール後、PKG_CONFIG_PATH/usr/local/lib/pkgconfig を追加すると ./configure が成功します。

2. yasm がインストールされていない

一部のエンコーダ(libx264、libx265)は yasm が必須です。yum install yasm で解決できない場合があります。

解決策
- ソースから yasm をインストール
bash cd /usr/local/src sudo wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz sudo tar xzf yasm-1.3.0.tar.gz cd yasm-1.3.0 sudo ./configure --prefix=/usr/local sudo make -j$(nproc) sudo make install その後、export PATH=/usr/local/bin:$PATH を実行。

3. glibc のバージョン不整合

CentOS 6 の glibc が古く、最新 ffmpeg が要求するシンボルが見つからないケースがあります。

解決策
- ビルド時に --disable-runtime-cpudetect オプションを付与
これにより、CPU検出コードが除外され、古い glibc でも動作します。
bash ./configure ... --disable-runtime-cpudetect

4. rpmfusion のリポジトリが 404

公式サイトの URL が変更され、古い URL では 404 が返ります。

解決策
- 公式サイトの最新 RPM Fusion リポジトリ URL(2025 年版)を確認し、適切なパッケージを取得
bash sudo rpm -Uvh https://download1.rpmfusion.org/free/el/rpmfusion-free-release-6.noarch.rpm

まとめ

本記事では、CentOS 6 における ffmpeg のインストール手順を、リポジトリ設定から依存関係の解消、ソースビルド、そしてトラブルシューティングまで包括的に解説しました。
- EPEL と RPM Fusion の組み合わせで必要パッケージを取得
- 古いライブラリのバージョン問題に対してはソースビルドで対処
- 代表的なエラー例と具体的な解決策を提示

これにより、レガシー環境でも最新の ffmpeg 機能を活用でき、動画変換やストリーミングの自動化が可能になります。次回は、ffmpeg を用いたバッチエンコードスクリプトの作成例や、CentOS 7/8 への移行ガイドを予定しています。

参考資料