GigEカメラのマルチキャスト構成と設定手順
概要
産業用のGigE Visionカメラ1台を使って、複数のPCに同時に同じ映像を配信したい場合、マルチキャスト機能を使用します。通常、カメラとPCは1対1で接続されますが、マルチキャストを利用することで以下のような分散処理システムを構築できます。これにより、1台のPCに負荷を集中させることなく、システム全体のパフォーマンスを最大化できます。
GigE Visionプロトコルとは
GigE Visionは産業用カメラのインターフェース規格であり、Ethernetネットワーク上で映像データと制御コマンドを伝送するためのフレームワークを提供しています。UDPプロトコルをベースとしており、主に以下の2つのプロトコルで構成されています。
- GVCP(GigE Vision Control Protocol)
通信方式:ユニキャスト(1対1)
カメラの制御(露光時間、ゲイン、トリガー設定など)を行うためのプロトコルです。ユニキャスト(1対1)で行われ、制御権を持つ「Master PC」だけがカメラと通信できます。他のPC(Monitor)は設定を変更できません。 - GVSP(GigE Vision Stream Protocol)
通信方式:デフォルトはユニキャスト、設定によりマルチキャストに変更可能
画像データを転送するためのプロトコルです。
カメラのマルチキャスト機能とは
マルチキャストとは、単一の送信元から特定のグループに所属する複数の受信者へ、パケットを同時送信する通信方式です。不特定多数を対象とするブロードキャストとは異なり、特定の宛先グループのみにデータを転送します。GigEカメラの映像を配信するのに、送信元(カメラ)は常に1本のストリームのみを送信し、スイッチングハブが受信を要求しているポートに対してのみ転送を行います。そのため、ネットワークを不必要に混雑させることなく、複数のPCへ映像を配信できます。マルチキャスト設定時は、カメラが特定のマルチキャストグループアドレス(例: 224.0.0.1)宛てにパケットを転送することにより、複数のPCへGVSPを出力することができます。
補足:マルチキャストグループへの参加
PCやカメラ、スイッチングハブ、その他ネットワーク機器の接続構成によっては、IGMP(Internet Group Management Protocol)というプロトコルを使用し、特定のマルチキャストグループに参加すること通知する必要があります。詳細は下記をご参照ください。
GigEカメラのGVSPマルチキャスト出力をIGMP制御
IC Imaging Control_Ver4.0(C#/.NET) サンプルプログラム
マルチキャスト機能の設定方法
ic4-ctrlは、The Imaging Source社が提供するSDK「IC Imaging Control 4.0」に含まれるコマンドラインツールです。下記の手順でic4-ctrlを使用してカメラ、MasterPC、MonitorPC1、MonitorPC2のそれぞれを設定します。
Master PCで設定する事
-
カメラのIPアドレスを固定に設定します。 カメラのIPアドレス変更は、IC Capture4.0を使用し、下図の通りPersistent IP Addressの項目で設定してください。

-
コントロールパネル > ネットワークとインターネット > ネットワークと共有センター > アダプターの設定の変更の順に遷移します。設定対象のネットワークアダプターを右クリックし、「プロパティ」を選択します。[インターネット プロトコル バージョン 4 (TCP/IPv4)] を選択し、「プロパティ」をクリックします。「次のIPアドレスを使う」にチェックを入れ、以下の値を入力して「OK」をクリックします。
以下のように設定します。
IP アドレス:192.168.0.1
サブネットマスク:255.255.255.0
デフォルトゲートウェイ:(空白もしくは 0.0.0.0)
-
下記のコマンドでMaster PCからカメラに対して、画像ストリームをマルチキャストで配信する設定を行います。
::Master PCのみ ::マルチキャストモードを有効にする ic4-ctrl prop --device-driver 32520316 GevStreamDestinationOverride=true ::マルチキャストアドレスを設定 ic4-ctrl prop --device-driver 32520316 GevStreamDestinationAddress=224.0.0.1 ::ポート番号を設定 ic4-ctrl prop --device-driver 32520316 GevStreamDestinationPort=50000※32520316は、実際に使用するカメラのシリアル番号に置き換えてください。
上記はGVSPをマルチキャストで送信するために、GevStreamDestinationOverrideで有効化して、マルチキャストアドレスを224.0.0.1、ポート番号を50000に設定しています。
マルチキャスト通信では、送信元であるカメラのIP アドレスは通常のユニキャスト通信と同じく、192.168.xxx.yyyのような一般的なIPv4アドレスが使用されます。宛先 IPアドレスには、IPv4 でマルチキャスト用として予約されている224.0.0.0~239.255.255.255の範囲を指定します。今回、例としてマルチキャストアドレスとして224.0.0.1を使用しています。また、ポート番号としてOSや他のサービスと競合しにくいポート番号として50000を指定しています。
なお、上記コマンドを実行する際にはIC Capture4.0は閉じた状態で行ってください。
Monitor PC1で設定する事
-
コントロールパネル > ネットワークとインターネット > ネットワークと共有センター > アダプターの設定の変更の順に遷移します。設定対象のネットワークアダプターを右クリックし、「プロパティ」を選択します。[インターネット プロトコル バージョン 4 (TCP/IPv4)]を選択し、「プロパティ」をクリックします。「次のIPアドレスを使う」にチェックを入れ、以下の値を入力して「OK」をクリックします。
以下のように設定します。
IP アドレス:192.168.0.2
サブネットマスク:255.255.255.0
デフォルトゲートウェイ:(空白もしくは 0.0.0.0)
-
マルチキャストによるストリーミングを受信するためのモニターインスタンスを有効化します。
::インターフェース番号の確認 ic4-ctrl list ::インデックス「1」のインターフェースでモニターインスタンスを有効化 ic4-ctrl prop --interface 1 GevDeviceSpawnMonitorInstance=1ic4-ctrl listを実行し、カメラが接続されているインターフェースのインデックス番号を確認します。次にそのインターフェースに対してGevDeviceSpawnMonitorInstanceを有効化します。
この設定を行うことで、IC4(SDK)の内部でマルチキャストストリームを受信するための仮想的なモニターデバイスが生成されます。再度
ic4-ctrl listを実行し、デバイスリストにシリアル番号の末尾が「-Monitor」となっているモニターデバイスが表示されていれば、正常に有効化されています。このモニターデバイスをオープンすることで、受信専用として映像を見ることが可能になります。ただし、モニターデバイスで映像を受信するには、Master PC側でライブストリーミングが開始されている必要があります。 ストリーミングが停止している状態では、モニター側でデバイスをオープンできても画像は表示されません。
Monitor PC2で設定する事
-
コントロールパネル > ネットワークとインターネット > ネットワークと共有センター > アダプターの設定の変更の順に遷移します。設定対象のネットワークアダプターを右クリックし、「プロパティ」を選択します。[インターネット プロトコル バージョン 4 (TCP/IPv4)] を選択し、「プロパティ」をクリックします。「次のIPアドレスを使う」にチェックを入れ、以下の値を入力して「OK」をクリックします。
以下のように設定します。
IP アドレス:192.168.0.3
サブネットマスク:255.255.255.0
デフォルトゲートウェイ:(空白もしくは 0.0.0.0)
-
マルチキャストによるストリーミングを受信するためのモニターインスタンスを有効化します。
::インターフェース番号の確認 ic4-ctrl list ::インデックス「1」のインターフェースでモニターインスタンスを有効化 ic4-ctrl prop --interface 1 GevDeviceSpawnMonitorInstance=1ic4-ctrl listを実行し、カメラが接続されているインターフェースのインデックス番号を確認します。次にそのインターフェースに対してGevDeviceSpawnMonitorInstanceを有効化します。
この設定を行うことで、IC4(SDK)の内部でマルチキャストストリームを受信するための仮想的なモニターデバイスが生成されます。再度
ic4-ctrl listを実行し、デバイスリストにシリアル番号の末尾が「-Monitor」となっているモニターデバイスが表示されていれば、正常に有効化されています。このモニターデバイスをオープンすることで、受信専用として映像を見ることが可能になります。ただし、モニターデバイスで映像を受信するには、Master PC側でライブストリーミングが開始されている必要があります。 ストリーミングが停止している状態では、モニター側でデバイスをオープンできても画像は表示されません。
ライブ表示の開始
ic4-ctrlを使用して、Master PC,Monitor PC1,Monitor PC2で映像が表示されるか確認します。
Master PC(配信元・制御権あり)で表示開始
まず、制御権をもつMaster PCでストリーミングを開始します。
ic4-ctrl live 0
Monitor PC(受信専用・制御権なし)で表示開始
次に、Monitor PC側で「モニターデバイス」を指定して表示を開始します。
ic4-ctrl live 1
必ずMaster PC側でライブストリーミング(ic4-ctrl live 0)を開始してから、Monitor PC側で受信(ic4-ctrl live 1)を開始してください。
Master PC側でストリーミングが開始されていない場合、Monitor PC側ではストリームをオープンできず、エラーにより映像を表示できません。また、Master PC側のストリーミングを停止すると、それに追従してMonitor PC側の表示も停止(フリーズまたは終了)します。



