macOSのZoomで研究発表用タイマーを共有する話

Zoomで研究発表のタイムキーパーをする機会があったので、そのための方法を纏めます。動作確認はmacOS Monterey 12.2で行っています。 今回やったことの要求仕様は以下の様になります。

  • ベルの鳴るタイマーの画面を画面共有ではなくカメラとして共有し、ベルの音も共有する
    • これは発表者が画面共有しているので、それと重複しない様にするためです
  • 発表自体も同じパソコンのヘッドフォンで聞く
    • タイムキーピング用のデバイスと発表を聞くためのデバイスを分ける方がシンプルにはなりますが、今回は全部同じデバイスで行いました
  • 司会などのために発表前後などにマイクで喋る必要があるが、基本的にはマイクの音声はミュートしておきたい
  • ベルの音などZoom以外のアプリケーションの音を聞く必要はない

元々はこのPDFにある設定に基いていましたが、自分で色々調整した結果結構違う流れになりました。OBSの設定などはこのウェブページも参考にしました。

必要なソフトウェア

今回使ったソフトウェアはZoomと適切なタイマーに加えて以下の様になります。タイマーは今回は以下のものを使いました。

  • OBS
    • スクリーンキャプチャや配信などのためのソフトウェア
    • Homebrewでインストールできる
    • 今回は仮想カメラを作るのに使う
  • Soundflower
    • 仮想オーディオデバイス
    • 今回はタイマーのベル音をZoomに繋ぐのに使う
    • Homebrewでインストールできる
  • LadioCast
    • オーディオミキサ
    • App Storeからインストールできる
    • Soundflowerを上手く繋ぐのに使う

タイマーの画面の配信

タイマーの画面をZoomで配信するための、動画の流れは以下の図の様になります。

まずOBSのウインドウキャプチャでタイマーの画面をキャプチャします。ウインドウキャプチャではなく画面キャプチャでも同じ様なことができますが、間違って他のウインドウを配信するのを防ぐために、今回はウインドウキャプチャを使いました。逆に複数のウインドウを配信したい場合には画面キャプチャを使うのが良いと思います。

次にOBSの仮想カメラ機能を使って、キャプチャしたウインドウをカメラの映像としてZoomから読み込める様にします。特に難しい設定はないですが、仮想カメラを起動する前にZoomを起動するとZoomで仮想カメラを認識しない様なので、必ずこちらを先に行う必要があります。

最後にZoomで「OBS Virtual Camera」を選択してタイマーの映像を共有します。ビデオの配信開始や停止などは通常のカメラと同様です。

タイマーの音声の配信

今回の音声の流れは以下の図の様になります。アプリケーションを円形のノードで、 (仮想のものも含めた) オーディオデバイスを四角のノードで表しています。

なお、マイクを使う必要がない場合は以下の様なよりシンプルな構成で十分です。

まずOS全体の設定で、各アプリケーションの音声出力をSoundflower (2ch)とします。これでタイマーのベル音がSoundflower (2ch)に流れる様になります。

次にLadioCastを使って、Soundflower (2ch)とマイクの音声をSoundflower (64ch)に流す様に設定します。発表中はマイクからSoundflower (64ch)に音声が流れない様にすることで、実質的にミュートすることが可能です。

最後にZoomでSoundflower (64 ch)をマイクとして使って、ヘッドフォンをスピーカーとして使う様に設定します。