zoomにカメラがないPCで接続してしまったときの対処方(カメラ付きLinux機を持ってる場合)

動機(特に重要な内容ではない)

今回,私は喜ばしいことにインターンに行くことが出来ました。この日のために,前日からデスクトップPCを購入し(メイン機が低スペックすぎたので)マイク付きイヤホンを2度購入し(1つめはドライバが非対応でした)万全の状態で望んだわけですが,当日に重大な問題が発生しました。デスクトップにはカメラが内蔵されていないのです(忘れてました)。自己紹介で顔を見せれないというイベントに冷や汗をかきながら,手元のLinux機(内蔵カメラ付きノートPC)でどうにか出来ないかと調べたらなんとか出来たので,忘れないうちにメモしておこうというのが今回の投稿です。

本編

注意

私は今回使った技術に詳しくないので,環境が違うと動作しないかもしれません。

私の構成

  • Windows10(Aと呼ぶ)
    • Zoomが動作しているPC
    • OBSが必要(v26以降)
  • Ubuntu20.04(Bと呼ぶ)
    • カメラが内蔵されているPC
    • ffmpegが必要

方法

B側で以下のコマンドを実行します。中括弧内{}は適宜適した値を入れてください

ffmpeg \
    -i /dev/{B側の利用したいカメラ} \
    -vcodec libx264 \
    -preset ultrafast \
    -tune zerolatency \
    -f mpegts \
    udp://{AのIPアドレス}:{適当な整数(今回は12321としました)}?pkg_size=1316

A側ではOBSを以下の順序で設定します。

  1. 左下のソースの下の方にある+を押して,メディアソースを選択。名前は適当に書いて新規作成します。
  2. {手順1.で入力した名前}のプロパティという画面が立ち上がるのでローカルファイルのチェックを外します。
  3. 新しく出てきた入力の部分にudp://{AのIPアドレス}:{B側のffmpegを実行時に入力した整数}を入力します。

多分この時点でOBS側にB側の内蔵カメラの映像が出力されると思うので,右下の仮想カメラ開始を押します。そしたら,zoomやdiscordなど,適当なアプリケーションで使えると思います。

感想

そこそこの遅延があると思うので,笑顔で誤魔化しましょう。

参考