3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【概要編】1つのHTMLファイルに「カメラ映像・スライド・コメント表示」などの複数のものを同時に表示させてみる(3パターン)

Last updated at Posted at 2021-02-02

オンラインイベントで、OBS や ATEM Miniシリーズを使った画面合成(カメラ映像+スライド+α の同時表示など)をやったりすることがありますが、もっと必須となる機材・アプリを減らして手軽にできないか、と思って試した内容です。

やってみた内容は以下で、まずは技術詳細というよりも、やった内容と使った仕組みについておおまかに記載します。

  • 以下の組み合わせでの同時表示
    • Googleスライド + PC内蔵カメラの映像 + ニコニコ動画風コメント
    • PC内蔵カメラの映像 + USB接続のカメラの映像
    • PC内蔵カメラの映像 + PCのアプリウィンドウ(PCのデスクトップ等にするのも可)

やってみたことの結果だけ、まずは掲載

Googleスライド + PC内蔵カメラの映像 + ニコニコ動画風コメント

PC内蔵カメラの映像 + USB接続のカメラの映像

PC内蔵カメラの映像 + PCのアプリウィンドウ(PCのデスクトップ等にするのも可)

実装したことの概要

まず、今回の 3つに共通する部分として、1つの画面が 2列に分割されているところは「CSS Flexbox」を使って表示させています(なにげに CSS Flexbox は今回が初利用)。

Googleスライド + PC内蔵カメラの映像 + ニコニコ動画風コメント

Googleスライドのページ内埋め込みは、「Googleスライドのメニュー画面(左上)にある "ファイル" > "ウェブに公開" から "埋め込む" と書かれたタブを選択」という流れで取得できる埋め込みようのタグを使っています。

また、カメラ映像の表示は、定番の以下を使って取得した内容をビデオタグに表示、という形で実装しています。

●MediaDevices.getUserMedia() - Web API | MDN
 https://developer.mozilla.org/ja/docs/Web/API/MediaDevices/getUserMedia

そして、ニコニコ動画風のコメント表示は、以前書いた以下の記事のものを使っています。
細かくいうと、メッセージを発生させているトリガーは、操作用画面として用意した別ページでのボタン押下で、ページ間を MQTT でつないでイベントを発生させています。そして、「別ページのボタン押下 ⇒ 対応したコメントが表示される」という流れになるようにしています。

●実質20行ほどでニコニコ動画風のコメント表示機能を作る 〜素の JavaScript とアニメーション用ライブラリ(GSAP)を利用〜 - Qiita
 https://qiita.com/youtoy/items/051dc658025a3b21c7f0

PC内蔵カメラの映像 + USB接続のカメラの映像

カメラ映像の表示は、上記と同じ MediaDevices.getUserMedia() によるもので、これはカメラ指定もできるので、PC内蔵カメラと USB接続のカメラのそれぞれを取得して異なる 2つのビデオタグ上に表示するようにしています。
(あらかじめ、内蔵カメラがついた PC に、USBカメラをさらに接続して実行しています)

PC内蔵カメラの映像 + PCのアプリウィンドウ(PCのデスクトップ等にするのも可)

カメラ映像の表示は、(以下、略)。

そして、PCのアプリウィンドウを表示させている部分では、以下を利用しています。

●MediaDevices.getDisplayMedia() - Web APIs | MDN
 https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia

Zoom をアプリでなくブラウザで使った時とか、Googleさんの Meet を使って画面共有をしようとしたことがある方は、使ったことがあると思います。Google Chrome で使うと、以下のように「デスクトップ、アプリウィンドウ、Chromeタブ」のどれを共有するか、ユーザが選択して画面共有をする、例のやつです。
ブラウザでの画面共有の選択肢.jpg

今回、冒頭で掲載していたものではパワポのアプリウィンドウにしていましたが、ユーザ側での選択を変えれば、デスクトップや別アプリのウィンドウ、Chromeタブを選択したりすることが可能です(ソースコードのほうは手を加えることなく)。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?