#P_Party 技術的なアレコレとか

2021年4月10日20:00~24:30に開催されたP P@rty!!!!!!!に大阪のNappとリモートB2Bで出演させていただきました.
途中で配信ソフトが急死するトラブルもあったけど(致命的),すぐ復旧できたのが奇跡でした.
1では手法の解説,2では出演時の感想について書いています.

配信アーカイブはこちらから

【#P_Party】P P@rty!!!!!!! Vol.6 23:45~ #6 春一番(Haru vs Napp) https://www.twitch.tv/videos/982649188

1.1. そもそもどうやってるの?

1台のPCにコントローラの信号を集約させて,1つのDJソフトを制御しています.
Rekordboxでは複数のDJコントローラの接続をサポートしてないようなので,VirtualDJを使用しました.

1.2. 接続手法

基本的には前書いたこれと同じなんですが,VirtualHereを使用する方法だとVirtualDJをマウスで制御することが難しく,再生履歴もうまく残らなかったため,rtpMIDIで信号を転送する手法を利用しました.
この方法だと,DDJ-400のオーディオインターフェースを使用することができるため,PFLの出力のために特別な機器を追加する必要がありません.

また,rtpMIDI用のDDJ-400デバイス定義ファイルやマッピングファイルはAniCLover様のものをお借りしました.本当にありがとうございます.

https://github.com/aniclover/remote-dj-b2b

基本的な方法は前回の記事に書いたので,ここでは,rtpMIDI使用時の接続方法のみ書いておきます

注意点:HOMEライセンスではrtpMIDIでの接続はできません.PROライセンスが必須です.

1.2.1. 接続方法(ホスト側)

マイドキュメント/VirtualDJの中にあるMapperフォルダ,Deviceフォルダにダウンロードしたマッピングファイルを流し込んでください.

rtpMIDIを起動し,My sessions欄の+を押し,作成したものを選択します.

Local nameとBonjour nameに, DDJ400 RTP1と入力.Enabledにチェックを入れるとMIDIデバイスが開始します.

Directory内にクライアント側の名前が出てくるので,Connectをクリックし,接続してください.

1.2.2. 接続方法(クライアント側)

My Sessions欄の+を押し,作成されたものを選択します

Live routingsのプルダウンメニューからDDJ-400を選択(両方とも)
Enabledにチェックを入れるとホスト側から検知できるようになります.

ここまでの両者の手順が問題なくできていると,VirtualDJを起動した際に新しいコントローラとしてrtpMIDIのデバイスが認識されます.問題なく操作できるか確認しましょう.

1.3. 配信環境

今回の配信では,B2B専用に1台,映像集約・配信専用に1台,それぞれ別のPCを使用しました.

B2BPC

  • CPU: Intel Core i7 3632QM
  • RAM: 8GB
  • GPU: Intel HD Graphics 4000

配信PC

  • CPU: Intel Core i7 8086k
  • RAM: 8GB
  • GPU: Intel UHD Graphics 630

B2Bで使ってるPCが古いのは,実家に転がってたラップトップをそのまま使ったためです.
これでB2BするとなるとGPUが少し性能不足かも

回線

音声やら映像を伝送する関係上,VDSL以上が必須です.
私側はフレッツ光,Napp側はVDSLでしたが,特に問題なくB2Bできました.
CATV(同軸)は検証してないため不明ですが,帯域的にかなりしんどいと思います.

1.4. 投票ツール

PythonのTwitchIOを使って実装しました.
不具合で死なないか不安でしたが,問題なく最後まで動作してくれたのでとても嬉しいです.

1.5. B2B時の音源について

VPNで音声周りを伝送しているので,Sambaなどで相手側の音源をストリーミングするのもいいのかもしれないですが,再生中に途切れるかもしれないリスクを考えて自分の持っているもののみVirtualDJにインポートしました.

2.1. 出演のちょっと前

出演者みんなうまかったので本当にトリを務められるのか,プレッシャーで死んでいました.

また,配信周りの連携を取るためにボイスチャットで連絡しあっていたのですが,音声がガビガビになって双方の声が聞き取れなくなっていたり,始まる前からすでに大変なことになっていました.

2.2. 配信中

最初から最後まで,30人以上もの人が見てくれていたのがすごく嬉しかったです.

本当にオンラインなのか疑われている図

隣の部屋でやってるのか?と思われるくらいクオリティの高いB2Bができたので,私の中での目標が達成できました.やったね.

カラオケ音源を間違えてロードしたときのリカバリがなんとかできたのは奇跡です.
EQ周りのミスが若干多かったのは反省点…

2.3. 配信が止まったワケ

余談ですが,延長戦中にいきなり配信が止まっちゃいました.

原因が気になったのでWindowsのイベントビューアを見て,何が原因だったのか調べてみました.

結論から言うと,メモリ不足っぽいです.
配信PCのRAMが8GBしかないのに対し,OBS Studioでそこそこの負荷をかけ続けていたため,仮想メモリが不足しました.(1GB近くも消費してました)

そのため,デスクトップウィンドウマネージャ(WindowsのGUIの根幹部分みたいなもの)も,カメラ映像の伝送も巻き込んで落ちました.(復旧後しばらくの間Nappの映像が出てなかったのもこれ)

やられた順番としては,カメラ映像→OBSStudio→デスクトップウィンドウマネージャ かなと思ってます.
プロセス類がキルされて自動復帰しようとした所,メモリが足りなくなって一気に死んだ感じがします…

配信PCのモニタの解像度も下がったりリフレッシュレートが75Hzに切り替わってモニタの映像が真っ白になったり,もうぐちゃぐちゃでした.

そのため,PCを分けていなかったらVirtualDJや各DJへの映像伝送系も一緒に落ちてしまっていたと思います.その場合,絶対にあの短い時間で復旧することは不可能でした.本当に分散しててよかったと心の底から思いました.不幸中の幸い.

まとめ

また機会があれば,またオンラインB2Bでイベント出演したいな~と思っています.
個人的にはインD研でもこれやりたいけど,準備がそこそこ時間かかる+そこそこインターネット回線の質が求められるので,実現は難しいかも…

Related Posts:

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください