はじめに
ひさびさに NewTek のフォーラムを見ていたら、ラズパイ上で NDI 送受信できる dicaffeine というスゴいソフトウェアを見つけたので、さっそく使用してみました。
NewTek フォーラム
ARM デバイスで NDI ライブラリを使用する方法について NewTek フォーラムをチェックしていました。以前は NDI 送信 (Encode) はできるが、NDI 受信 (Decode) はできないと認識していましたが、NDI 受信もできるようになったことを確認しました。
https://en.wikipedia.org/wiki/Network_Device_Interface
https://forums.newtek.com/showthread.php/151197-NDI-for-arm-devices
最近の投稿を確認したところ、Sienna が NDI Monitor for Raspberry PI を試作していたり、NDI 送受信できる dicaffeine というソフトウェアが存在することを知りました。
https://twitter.com/NDI_Cloud/status/1145754510343778314
dicaffeine ソフトウェア
dicaffeine のホームページに導入手順が記載されていますので、その通りに実行すれば問題ありませんでした。
環境
- Raspberry Pi 4
- Raspberry Pi OS (32bit 版)
2020-05-27-raspios-buster-armhf.zip (OS イメージファイル) - ウェブカメラ (Logitech, Inc. Webcam C270)
- Raspberry Pi OS (32bit 版)
- NDI ソース
- JustWifiCam (iOS)
- NDI Monitor (macOS)
※ dicaffeine はソースコードが公開されておらずバイナリ (32bit版) だけが提供されていますので、Raspberry Pi OS (64bit 版) では動かすことができません。
$ wget -O - http://dicaffeine.com/repository/dicaffeine.key | sudo apt-key add -
$ echo "deb https://dicaffeine.com/repository/ buster main non-free" | sudo tee -a /etc/apt/sources.list.d/dicaffeine.list
$ sudo apt update
$ sudo apt install -y dicaffeine
$ systemctl status dicaffeine
● dicaffeine.service
Loaded: loaded (/etc/systemd/system/dicaffeine.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2020-06-28 13:24:32 JST; 3h 15min ago
Process: 371 ExecStartPre=/bin/sleep 6 (code=exited, status=0/SUCCESS)
Main PID: 479 (dserver)
Tasks: 3 (limit: 4915)
Memory: 5.8M
CGroup: /system.slice/dicaffeine.service
└─479 /usr/bin/dserver -c /etc/dicaffeine/dserver.json
6月 28 13:24:26 raspberrypi systemd[1]: Starting dicaffeine.service...
6月 28 13:24:32 raspberrypi systemd[1]: Started dicaffeine.service.
6月 28 13:24:38 raspberrypi dserver[479]: INFO 1: 13:24:38 [BackendServer] Loaded config.
6月 28 13:24:38 raspberrypi dserver[479]: INFO 1: 13:24:38 [BackendServer] No valid streamer startup config found..
6月 28 13:24:38 raspberrypi dserver[479]: INFO 1: 13:24:38 [BackendServer] Server started on port 80
dicaffeine のインストールが完了すると、ポート:80 でプロセスが起動していますので、ブラウザ (Chromium) を起動して localhost へアクセスします。
ログイン画面でパスワードの入力を求められるので、初期パスワード (admin) を入力します。
PLAYER タブを選択すると NDI 受信することができます。NDI ソースを選択して Play ボタンを押下するとリアルタイムに確認することができました。(全画面で表示されます。[ESC] ボタンで終了します。)
STREAMER タブを選択すると NDI 送信することができます。NDI ソースとして USB カメラを選択して Stream ボタンを押下すると、NDI Monitor (macOS) で確認することができます。