マルチカメラ設定
FLYOS-FAST v1.4.0 の GoCam は、同一のホストマシン上で複数の UVC カメラを接続することをサポートしています。本記事では 2 路を例に完全な設定方法を説明します。3 路、4 路も同様です。
マルチカメラは GoCam に依存しており、FLYOS-FAST v1.4.0 以降でのみ提供されます。Crowsnest を使用するマシンについては カメラ接続と使用方法 を、単一 GoCam の基本的な使用方法については GoCam カメラサービス を参照してください。
ポートとアクセスアドレス
各カメラのポートと Web ページパスは一対一に対応しており、/webcamN/ プレフィックスは nginx に工場出荷時にプリセットされており、変更は不要です。アドレス右側のアイコンをクリックするとコピーできます:
| 路数とポート | リアルタイム映像ストリーム | 単一フレームスナップショット |
|---|---|---|
第 1 路 · 8080 | Loading... | Loading... |
第 2 路 · 8081 | Loading... | Loading... |
第 3 路 · 8082 | Loading... | Loading... |
第 4 路 · 8083 | Loading... | Loading... |
規則は次のとおりです:第 N 路のポートは 8080 + (N - 1)、Web ページパスは /webcamN/ であり、第 1 路は数字を省略して /webcam/ と記述します。
?action=stream と ?action=snapshot は GoCam が mjpg-streamer と互換性を持たせるための記述で、それぞれ /stream と /snapshot に相当します。これはインターフェース自体の動作であり、設定が必要なオプションではありません。
カメラの接続
カメラの選定、配線方法、ドライバ不要の UVC 要件については カメラ接続と使用方法 を参照してください。
マルチカメラのシナリオでは、各カメラはホストマシンの異なる USB インターフェースに接続し、同一のパッシブハブを経由しないでください。カメラの抜き差し前にプリンターを完全にシャットダウンし、電源を切断してください。
ステップ 1:設定を開く
Fluidd で設定ファイルを開き、デバイスノード(カメラ ID)を確認する方法については 設定を開く を参照してください。
マルチカメラのシナリオでは、各路ごとにそのカメラのキャプチャノード(video-index0)を記入してください。metadata ノードを指さず、USB 物理ポートに基づいて固定することで、再起動後にノード番号が変化して動作しなくなることを避けます。
ステップ 2:マルチカメラ設定を記述する
設定ファイルの場所:
/usr/share/printer_data/config/gocam.conf
2 路の設定例(device は by-path で固定、解像度は実測値に基づいて記入):
[cam 1]
port: 8080
device: /dev/v4l/by-path/platform-5311000.usb-usb-0:1:1.0-video-index0
resolution: 640x480
max_fps: 15
quality: 5
[cam 2]
port: 8081
device: /dev/v4l/by-path/platform-5101000.usb-usb-0:1:1.0-video-index0
resolution: 640x480
max_fps: 15
quality: 5
| パラメータ | 説明 |
|---|---|
port | その路がリッスンする HTTP ポート。各路間で重複不可 |
device | その路のカメラのキャプチャノード(video-index0)のパス |
resolution | カメラが実際にサポートする解像度。形式は 幅x高さ |
max_fps | 最大フレームレート。カメラの列挙値を超えないことを推奨 |
quality | MJPEG 品質。値は 1 から 31 で、数値が小さいほど画質が良く帯域幅が高くなる |
v4l2ctl | オプション。UVC パラメータ。管理ページで保存されたパラメータがこの項目に書き込まれる |
ffmpeg_flags | オプション。FFmpeg パラメータ |
YUYV 形式のみをサポートするカメラはホストマシンで MJPEG にソフトウェアエンコードする必要があり、CPU 使用率が高くなります。MJPG をサポートするカメラはパススルーでき、ほとんど CPU を消費しません。両路とも YUYV のみの場合は 640x480、15 フレームから始めることを推奨します。いずれかの路が MJPG をサポートする場合は、その路のみ解像度を上げることができます。
ステップ 3:Web ページにカメラパネルを追加する
GoCam の設定後、Moonraker にカメラを登録する必要があり、そうすることで Fluidd / Mainsail にパネルが表示されます。
Fluidd で 設定 → カメラ を開き、2 路のエントリにそれぞれ以下を記入することを確認します:
| エントリ | 映像ストリームアドレス | スナップショットアドレス |
|---|---|---|
| 第 1 路 | Loading... | Loading... |
| 第 2 路 | Loading... | Loading... |
- 第 2 路を依然として
/webcam/と記述している:2 つのパネルが同じカメラの映像を表示します。第 N 路は必ず/webcamN/を使用してください。 - Web ページで追加したエントリは Moonraker データベースに保存されます(
sourceはdatabase)。moonraker.confのみを変更しても反映されず、インターフェース上で変更する必要があります。 - Moonraker の
/server/webcams/itemインターフェースは照会、追加、削除のみをサポートし、変更はサポートしていません。こちらもインターフェース上で操作してください。
設定ファイル方式でエントリを追加する場合(データベース内の既存エントリを変更しない場合)、moonraker.conf に以下を追記できます:
[webcam cam2]
enabled: true
service: mjpegstreamer-adaptive
target_fps: 15
stream_url: /webcam2/?action=stream
snapshot_url: /webcam2/?action=snapshot
よくある質問
| 現象 | 考えられる原因 | 対処 |
|---|---|---|
ページに NO SIGNAL が表示され、frames が常に 0 | device が metadata ノードを指している、または resolution がカメラの能力を超えている | --list-formats-ext で確認し、video-index0 に変更する |
| 2 つのパネルの映像が完全に同じ | 第 2 路の URL が依然として /webcam/ と記述されている | /webcam2/?action=stream に変更する |
| 再起動後にいずれかの路が動作しない | /dev/videoN の番号が抜き差し順序で変化する | device を /dev/v4l/by-path/...-video-index0 に変更する |
| 第 2 路のポートに接続できない | [cam 2] が設定されていない、または他のサービスポートと競合している | ss -lntp | grep 8081 でリッスンを確認する |
| 映像がカクつく、ホストマシンの負荷が上昇する | YUYV ソフトウェアエンコードに高解像度・高フレームレートが重なる | 解像度やフレームレートを下げる、または MJPG をサポートするカメラに変更する |