メインコンテンツにスキップ

マルチカメラ設定

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最大フレームレート。カメラの列挙値を超えないことを推奨
qualityMJPEG 品質。値は 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 が常に 0device が 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 をサポートするカメラに変更する
Loading...