コンテンツにスキップ

Disguise の NMOS

Designer は、IP-VFC カードからの ST 2110 ビデオ出力に NMOS を使うことをサポートするようになりました。Sony が開発した nmos-cpp というオープンソースのコードソリューションを採用し、IP-VFC カードが ST 2110 形式で出力しているときに Designer からのディスプレイ更新を受信できるよう拡張しました。これは Designer の実行時に各 Disguise サーバーで動作し、サーバーを NMOS ノードとして、各 IP-VFC カードを NMOS デバイスとして、各 ST 2110 ストリームを NMOS センダーとしてアドバタイズします。

要約すると、各 Disguise サーバーは次のことを行う NMOS ノードサービスを実行します:

  • サーバー自体を NMOS Node として登録します。
  • 各 IP-VFC カードを NMOS Device として公開します。
  • 各 ST 2110 ストリームを NMOS Sender として公開します。
  • セッション内の各マシンについて、各 IP Video Capture インスタンスを NMOS Receiver として公開します(たとえばマシンが 3 台ある場合、各 IP Video について 3 つの NMOS Receiver が表示され、それらのマシンのいずれかが ST 2110 ストリームを受信できることを示します)。

ノードの検出と登録のために、ネットワーク上にアクティブな NMOS レジストリが利用可能である必要があります。

レジストリに送られる NMOS Node、Device、Sender の情報は、レジストリソフトウェアに応じて表示されますが、おおよそ次のように見えます:

Disguise NMOS

d3 メニューからアクセスできる NMOS Configuration ウィジェットが追加されました。これにより、mDNS 検出をオーバーライドしたい場合に特定の NMOS レジストリの詳細を指定できます。

Disguise NMOS Configuration

Chosen Network Adapter(選択ネットワークアダプター) - NMOS ノードがレジストリと通信するために使うネットワークアダプターです。API のアドバタイズにもこの IP アドレスを使います。空白のままにすると、d3Manager でユーザーが選択したネットワークアダプターがデフォルトになります。

Display Change Port Number(表示変更ポート番号) - Designer が NMOS ノードにディスプレイの更新を送るために使うポートです。デフォルトは 3207 ですが、他と競合する場合は変更できます。

Registry IP Address(レジストリ IP アドレス) - NMOS ノードの自動検出が NMOS レジストリを見つけられない場合や、使いたくないレジストリに接続している場合に、使いたいレジストリの IP アドレスを指定できます。自動検出を使いたい場合は空のままにします。

Registration Port Number(登録ポート番号) - NMOS ノードが NMOS レジストリを見つけると、登録 API を使って自身を登録します。これは特定のポート番号で行われます。デフォルトポートの 3211 が使われますが、NMOS レジストリによって異なることがあるため、ここで設定できます。

Registry Network Domain(レジストリネットワークドメイン) - Disguise サーバーがレジストリと異なるドメインにある場合、ここで指定できます。同じドメインで自動検出を使いたい場合は空のままにします。

Enable Logging(ログを有効化) - デバッグに使いますが、デフォルトではオフです。

1. NMOS ノードが実行中で正しく構成されているか確認する:

Section titled “1. NMOS ノードが実行中で正しく構成されているか確認する:”
  • ノードに “An error occurred reading the nmos-config.json file” というエラーが表示される場合は、ファイルが正しい json 形式であることを確認してください。カンマが欠けていたり、単一引用符 ” があったりすると、ファイル全体が拒否されます。このファイルはユーザーが編集すべきではありません。
  • nmos-node.exe アプリケーションは、NMOS configuration ウィジェットの設定で起動時に Designer によって実行されます。ノードの API にログインすることで、ウェブブラウザーでこのさまざまな要素を確認できます。
  • ブラウザーで http://localhost:3209/settings/all/ を使ってノード設定を確認します。
    • 何も表示されず「サイトにアクセスできない」と表示される場合は、ノードが実行されていないか、設定ポートが json 設定ファイルで 3209 から変更されています。
    • 設定が表示される場合は、registry_address、registration_port、domain が NMOS configuration ウィジェットで構成したとおりであることを確認してください。そうでない場合は Designer を再起動すると、起動時に渡されるはずです。
  • ブラウザーで http://localhost:3207/displaychange/ を使って、Designer がノードにメッセージを送っているか確認します。
    • ポート番号 3207 は設定可能なので、NMOS Configuration ウィジェットで正しいことを確認してください。
    • null または空と表示される場合、ノードはまだ Designer から更新を受け取っていません。
      • これは ST 2110 出力がないためかもしれません。IP-VFC カードが ST 2110 モードであることを確認してください。
      • IP-VFC は、アクティブで準備完了であることを示すために、feed 画面で緑の枠も付いているはずです。付いていない場合は feed を適用してみてください。
    • データがある場合は、Designer から送られた最後のメッセージです。
      • “last_update_date_time” という名前のフィールドが、このメッセージを受信した時刻を示します。
      • 送信元の “hostname” も表示されます。このメッセージは、ノードと同じマシンで実行されている Designer からのみ送られるはずです。
      • NMOS デバイスの一覧が含まれ、この場合は IP-VFC カードです。各カードは最大 4 つのポートを持つことができ、これは NMOS センダーに相当します。
  • ブラウザーで http://localhost:3212/x-nmos/node/ を使って、ノード API がデータを正しくアドバタイズしているか確認します。
    • これは、対応するスキーマバージョンを示します。デフォルトでは最新の v1.3 を使います。
    • バージョンを選択すると、格納しているすべての device、flow、sender、receiver、source データが表示されます。
    • http://localhost:3212/x-nmos/node/v1.3/self/ を使うと、レジストリにアドバタイズしているエンドポイントが表示されます。
  • ブラウザーで http://localhost:3215/x-nmos/connection/v1.1/single/senders/<sender id>/transportfile を使って SDP ファイルを確認します。
    • sender id803d9129-0000-1000-a000-401175c00600 のようになります。2 桁目(この場合 0)は IP-VFC カードのポート番号で、最後の 12 文字は IP-VFC の最初の MAC アドレスです。その他の数字は常に同じです。
    • SDP ファイルはテキストベースの設定ファイルなので、人間が読めます。次のようなプロパティが表示され、IP-VFC カードの現在の出力と一致するはずです: width=3840; height=2160; exactframerate=60; sampling=YCbCr-4:2:2; depth=10; colorimetry=BT709;
    • これらのファイルに期待される内容の詳細については、https://en.wikipedia.org/wiki/Session_Description_Protocol を参照してください。

2. NMOS レジストリが検出されない

Section titled “2. NMOS レジストリが検出されない”
  • NMOS レジストリサービスが実行中で、ネットワーク上で到達可能であることを確認してください。
  • ネットワーク全体で mDNS が許可されていることを確認してください。mDNS がブロックされている場合は、NMOS Configuration ウィジェットでレジストリの IP アドレスと登録ポートを手動で指定し、Designer を再起動してください。
  • レジストリホストと Disguise サーバーの両方でファイアウォールルールを確認し、正しいポートが開いていることを確認してください。
  • 自動検出の NMOS 設定は、registry_address が 0.0.0.0、domain が local. であるべきです。NMOS Configuration ウィジェットでこれらのフィールドが空の場合、ノードはこれらをデフォルトとします。

3. ノードがレジストリに表示されない

Section titled “3. ノードがレジストリに表示されない”
  • ST 2110 のビデオ出力または入力を使っていますか?これは IP-VFC カードまたは IP Video In のいずれかです。アドバタイズするデバイスがある場合にのみ、NMOS にノードが作成されます。
  • まずステップ 1 の手順に従って、ノードが正しく実行されているか確認してください。
  • 正しい Chosen Network Adapter が選択されていることを確認してください。空白のままにすると、d3Manager で選択されたアダプターがデフォルトになりますが、これはレジストリのサブネット上にないかもしれません。
  • Chosen Network Adapter も d3Manager のユーザー選択ネットワークアダプターも設定されていない場合、ノードはそのマシンのすべてのネットワークアダプターで自身をアドバタイズします。レジストリが複数回検出して、どこで実行されているか混乱することがあるため、結果はまちまちになります。Chosen Network Adapter を設定するとこれを防げます。
  • Registration Port Number がレジストリの API ポートと一致していることを確認してください。
  • 構成設定を変更した後は d3 を再起動してください。

4. NMOS センダーが見つからない、または非アクティブ

Section titled “4. NMOS センダーが見つからない、または非アクティブ”
  • IP-VFC カードが Designer で ST 2110 出力用に正しく構成されていることを確認してください。
  • アクティブな各 VFC ポートに NMOS センダーがあるため、Designer で Quad モードの場合は 4 つの対応する NMOS センダーがあります。
  • Designer のすべてのポートが feed 画面で緑の背景になっていることを確認してください。なっていない場合は feed を適用してみてください。

5. ストリームは表示されるが接続されない

Section titled “5. ストリームは表示されるが接続されない”
  • ネットワークで PTP 同期が正しく実行されていることを確認してください。PTP ロックがないと、ST 2110 センダーは登録されても有効なビデオを渡さないことがあります。
  • スイッチでマルチキャストルートが正しく構成されていることを確認してください。
  • NMOS ノードアプリケーションは Designer とともに実行され、マルチキャスト DNS の「Auto」検出によって、または NMOS configuration ウィジェットで設定された特定の IP アドレスと登録ポート番号で、ネットワーク上の NMOS レジストリに接続します。
  • NMOS ノードは、Designer のすべての ST 2110 ビデオセンダーとレシーバーをアドバタイズします。
    • 各 Disguise サーバーは NMOS ノードとして一覧表示されます。
    • そのノード内で、各 IP-VFC カードは NMOS デバイスとして一覧表示されます。
    • ST 2110 ビデオを出力するように設定された各 IP-VFC ポートは NMOS センダーとして一覧表示されます。
    • Designer が IP Video Capture を使っている場合、IP Video Capture という名前の NMOS デバイスを作成します。
    • その下で、各 IP Video Capture インスタンスは NMOS レシーバーとして一覧表示されます。センダーの SDP ファイルから作成された場合は、ラベルにセンダー名を使います。SDP ファイルなしで作成された場合は、任意の NMOS センダーが接続できるよう、幅広いディスプレイプロパティを受信できると自身をアドバタイズします。
  • NMOS ノードはローカルのデバイス情報を NMOS レジストリに伝播し、ネットワーク上のセンダーとレシーバー間で接続を確立できます。
  • ノードには、レジストリが更新をプッシュできる Connection API があります。
    • センダーから IP Video Capture インスタンスへの接続要求を受け取ると、SDP ファイルの内容を Designer に渡し、それに応じてマッピングできる論理ビデオ入力としてすぐに使える状態にします。
    • レシーバーからセンダーの出力を購読する要求を受け取り、その要求にマルチキャスト IP アドレスが含まれている場合、それらは Designer に送られて IP-VFC カード上のそれらのアドレスを更新します。VFC ポートエディターで値が変わるのが見えますが、実際にカードにプッシュするには feed を適用する必要があります。
  • また、IP Video Capture インスタンスが SDP URL から、または NMOS センダー一覧からセンダーを選択して作成された場合、ノードの Connection API を更新してレジストリと送信デバイスのノードに伝播します。
  • NMOS ノードは、NMOS レジストリが使うスキーマに応じてさまざまなスキーマバージョンをサポートできます。
  • サポートされるレジストリクエリスキーマ: v1.2 と v1.3
  • サポートされる IS-04 スキーマ: v1.2 と v1.3
  • サポートされる IS-05 スキーマ: v1.0 と v1.1