Hyperion とは
Hyperion は、ディスプレイ上の映像内容をリアルタイムで分析し、それに同期したバックライト効果を実装するためのオープンソースソリューションです。Raspberry Pi や Linux ベースのシステム上で動作し、WS2812 等の LED ストリップ駆動をサポートしています。
ディレクトリ構成と機能概要
ビルドされたプロジェクトの主な構成要素は以下の通りです。
project_root/
├── build/ # ビルドアセットや中間オブジェクトが出力される場所
├── src/ # ソースコード本体
│ ├── core/ # 核心ロジックとデータ処理パイプライン
│ ├── providers/ # グレーバ(映像取得)実装群
│ ├── backend/ # ハードウェア通信インターフェース
│ └── filters/ # 色変換やエフェクト適用フィルター
├── scripts/ # インストール補助スクリプト
├── cmake/ # ビルドシステム定義
└── CMakeLists.txt # 全体コンフィグレーション
このうち src/providers が画面キャプチャを担当し、src/backend が物理 LED の制御を行います。
デーモンの起動方法
コアサービスは hyperiond というプロセス名で管理されます。コンパイル後のバイナリが存在する場合、以下のコマンド引数を使用して初期化パラメータを指定できます。
/opt/hyperion/bin/hyperiond -c /etc/hyperion/system_config.json
ここで -c フラグにより、読み込む設定パスを明示的に指定します。
設定ファイルの仕様
システム動作は JSON 形式の設定ファイルによって定義されます。主なセクションには以下が含まれます。
- ledConfig: LED の物理配置、タイプ、ピン番号定義
- grabber: キャプチャ解像度と取得レート
- transformations: 色補正マッピング設定
- webserver: GUI アクセスに必要なポート情報
代表的な構成例を次に示します。
{
"hardware": {
"type": "sk6812",
"count": 120,
"gpio_pin": 13
},
"screen_capture": {
"width": 1280,
"height": 720,
"priority": 100
},
"effects_list": [
{
"name": "color_chase",
"enabled": true
}
],
"network": {
"api_port": 19445,
"ssl_enabled": false
}
}
各ハードウェア環境に合わせてGPIO ピンや色空間値を調整する必要があります。