Help us understand the problem. What is going on with this article?

Node-RED から ATEM mini を操作してみた。

はじめに

最近、特定少人数のオフラインイベントの配信や完全オンラインイベントの配信活動が増えてきました。
その時に大活躍してくれるのが ATEM mini ですが、USB Type-C で接続する他にネットワーク経由で操作することができます。
手元でボタン操作ができない時にリモートから画面を切り替える場合、ATEM Software Control を使用します。
ネットワーク経由で操作できるということで、Node-RED から ATEM mini を操作してみました。

title.png

BMD プロトコル

ネットワーク経由で操作する際に BMD (Black Magic Design) というプロトコルが使用されていることが分かりました。Wireshark を起動してプロトコルの内容を見てみることにします。
デフォルトの Wireshark では BMD プロトコルを解析できませんので、プラグインをインストールします。
以下、macOS を例に説明します。

lua のインストール

$ brew install lua

解析プラグインのインストール

$ mkdir ~/.config/wireshark
$ mkdir ~/.config/wireshark/plugins
$ git clone https://github.com/peschuster/wireshark-atem-dissector
$ mv wireshark-atem-dissector/atem_dissector.lua ~/.config/wireshark/plugins

Wireshark を起動すると、ATEM mini と ATEM Software Control が通信している内容を確認することができます。

ATEM Switchers SDK

ATEM Switchers 8.1.2 SDK (執筆時点) が公開されており、オリジナルのスイッチャーアプリを作成することができます。
サンプルのアプリケーションがソースコードと一緒に含まれていますので、すぐに試すことができます。
以下はシンプルなスイッチャーパネルアプリです。
SDK_explorer.png
ATEM_SDK.png

Node-RED モジュール

以下、macOS 上の Node-RED デスクトップアプリ を例に説明します。
Node-RED を起動して右上の「Menu (メニュー)」から「Manage palette (パレットの管理)」を選択すると「User Settings (ユーザ設定)」画面が表示されます。
node-red_desktop.png
「Install (ノードを追加)」タブを選択し、検索フォームで「blackmagic」と入力して検索するといくつかリストアップされます。
blackmagic-atem-nodered」の「install (ノードを追加)」ボタンを押下します。
node-red_modules 2.png
パレットに新しいノード (BlackMagic / ATEM) が追加されていることを確認します。
flow_atem_00.png

サンプルフロー

ATEM mini の入力 1 と 入力 2 を切り替えるシンプルなフローを作成しました。
(サンプルフローはこちらからダウンロードできます。)

flow_atem_01.png
ATEM ノードの設定は ATEM mini の IP アドレスを設定するだけです。
ATEM_node_01.png
ATEM_node_02.png

ATEM ノードへの入力は function ノードで msg.payload にコマンドとデータを設定するだけです。
input1.png input2.png

他に使用できるコマンドとデータについてはこちらで確認することができます。

それでは、みなさまも良き配信ライフを!

iotlt
IoT縛りの勉強会です。 毎月イベントを実施しているので是非遊びに来てください! 登壇者を中心にQiitaでも情報発信していきます。 https://iotlt.connpass.com
https://iotlt.connpass.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away