Ubuntu Weekly Recipe

第619回 HDMIキャプチャーボードでZoomへの配信映像を加工する

この記事を読むのに必要な時間:およそ 6.5 分

リモートワークの流行に伴い,日本でもオンラインミーティングが活用されるようになりました。ただし日本の住宅事情を考慮すると,映像を伴うオンラインミーティングには重大なリスクが存在します。そう,背景に映り込む生活環境です。今回はHDMIキャプチャーボードでその問題の解消を試みてみましょう。

ウェブカメラの画像を加工する様々な方法

要するに,今回はこういうことを実現してみたいというお話です。

図1 ワイプ付きの配信

画像

この世に存在する「PC上で動くビデオカンファレンスシステム」のほとんどは,いわゆる「ウェブカメラ」を映像のソースとして利用します。昨今のウェブカメラの多くはPCに組み込まれているものであれ,外付けであれ,USB接続を利用した「USB Video device Class」に準拠したデバイスです。よって加工するタイミングは次の2種類が考えられます。

  1. PCに入力されたUVCデバイスの映像を加工した上で配信する
  2. カメラ側で加工してからUVCデバイスの映像としてPCに入力する

1のよくある例が,Zoomでいうところの「バーチャル背景」でしょう。これはウェブカメラから映像のうち「背景」をリアルタイムに自動認識し,登録済みの画像に置き換える仕組みです。前景と背景をキレイに区別し,切り取るためにも無地の背景,特に「グリーンバック」と呼ばれる緑色のスクリーンが推奨されています※1⁠。

※1
こういう椅子にくくりつけるタイプのスクリーンが売れているみたいです。

2については市販のものだけで実現するのはおそらく難しいでしょう。ただし,Raspberry Piなどを組み合わせてウェブカメラそのものを「自作」してしまうという方法は使えます。もし今後もこのリモートワークの活用が続くようなら,そのうち美肌補正とか「盛れるウェブカメラ」も出てくるかもしれませんね。

そして今回紹介するのは,1と2の合わせ技ともいえる方法です。つまり,一度ウェブカメラからUVCデバイスの映像を受け取り,それを加工したものを別のUVCデバイスの映像として出力し,それをPC側で再度受け取って配信に利用します。

Linuxマシン上の映像をUVCデバイスとして出力するにはさらに2種類の方法に分かれます。

  1. v4l2loopbackなどを利用してソフトウェアで実現する
  2. UVC対応のHDMIキャプチャーボードを利用してハードウェアで実現する

1についてはウェブカメラとそれなりのスペックのPCさえあれば実現できます。ただ,設定等いくつかの「環境によってはなんかうまく動かない」ポイントが多いため,期待通りの処理になるまでにはそれなりの試行錯誤が必要です。

それに対して2は,機材への投資は必要なものの,配信デバイスからはただのUVCデバイスとして見えるので,動かないということはあまり考えられません。映像をどのように加工するか,に専念できます。

現在ではYouTuberに代表されるゲーム配信が広く普及しているため,HDMI入力からHDMI出力とUSB出力(UVC対応)に分岐するタイプのHDMIキャプチャーデバイスが数多く販売されるようになりました。今回はこれを使って,映像を加工してみることにしましょう。

本記事ではTreasLin HSV323を利用します。ただし「UVC対応」とうたわれているUSB端子に出力するタイプのキャプチャーデバイスであれば,どれであっても同じ手順で実現可能です。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。