見出し画像

macOS/Windows両対応のYoutube動画再生支援ツール作ってみた【NDI対応】

本記事は、#VJアドベントカレンダー2024 Advent Calendar 2024の参加記事になります。

この記事の内容

配布は準備中です。

  • VJ中に動画サイトの映像流す必要が多々ありますが、macOSやNDI環境で中々安定してResolumeやVDMXに流せるツールが無くて困ってました。

  • なので作りました。

moeVJTool

注意

このツール(moeVJTool)を利用したことによって発生した損害等については一切の責任を負いません。自己の責任において利用をお願いいたします。
また、各プラットフォーム等の利用規約を確認したうえでご利用ください。

自己紹介

こなこな(@konakonanjolno)という名義で活動しています。
普段はサブカルチャーやアニメコンテンツ系のDJイベントを中心にVJ活動を行っています。

事の発端

普段、Youtubeから動画を引っ張ってきて表示するときはブラウザのPiP機能を利用してVDMXで画面を取り込んでいます。
ただその手法で取り込んでしまうと、映像の解像度がPiPのサイズに依存したり、ブラウザの遷移を間違えるとPiPがデストロイしてしまったり、はたまた間違えてマウスオーバーするとコントロールが表示されたりと微妙にイライラしていました。

WindowsであればSainaさんの「Youtube To Spout」でことが足りるのですが、あいにく当方はmacOSのVDMXとWindowsでのResolumeの両方を利用しているので条件に一致しませんでした。

(VJのアドベントカレンダーに投稿するネタが思い浮かばなかったので)
なので無ければ作ってしまえの精神で今回クロスプラットフォーム対応のYoutube再生ツールの作成をしました。

下記からは技術的な紹介と実際の動作画面の紹介をします。

技術紹介

使用した技術

  • Unity

  • NDI

  • ストリームライブラリ

クロスプラットフォーム対応が必須だったのでお手軽にビルドできるUnityを採用しました。
普段はクラウドエンジニアなので全く触ったことは無いですが気合いでどうにかしました。

処理の流れ

内部的な流れとしては下記のような感じです。
[YoutubeURL]

[ストリームライブラリで動画情報のパース]

[ビデオプレイヤー(レンダーテクスチャ)へ表示]

[レンダーテクスチャをNDIライブラリがキャプチャし、ブロードキャスト]

[各VJソフトでNDIパケットをキャプチャ]

このソフトでできること

  • Youtube動画の再生

  • NDIへの映像出力

  • 動画のシーク

  • 再生速度の柔軟な変更

  • ループ再生

動作映像

Macでの動作映像がこちらです。
半分くらいから下が作成したツールです。

当然ですがWindowsでも動作します。

既知のバグ

  • 720p以上の場合映像と音声がシンクしないときがある。
    これはYoutube側の問題で、720p以上の動画は動画と音声が分離しているため2つのプレイヤーで無理やり再生している為です。
    多分Unity標準プレイヤーが悪さしているので頑張ればどうにかできそうな気がしています。。。

  • 対比が著しくかけ離れてる動画の場合アスペクト比がおかしくなる。
    設定は変更しているのに変わらずタイムアップしました。

対応したいこと

  • キーボードショートカット
    再生/一時停止だけは対応してる。

  • MIDI入力

配布について

アドベントカレンダーに間に合わせるために急ピッチで作成したので、年末くらいにリファクタリングしたものをここで配布する予定です。
欲しい方がいましたら当方のDMまでご連絡ください。早めにお渡しします。

まとめ

  • Unityやストリームライブラリ、NDIの勉強をしながら作成できて色々経験が身について良かったです。色々他にも作りたいものが増えました。
    アドベントカレンダーが無かったら多分先送りにしていたので本当に良かった。ScreenSaverさんありがとうございました。

  • 無いものは作るのが早い。

いいなと思ったら応援しよう!