💬

Zoomカメラに録画ループ映像を流す方法 in Ubuntu 20.04

2023/10/21に公開

画面ONで参加してください、というミーティングでも、
どうしてもトイレに行きたくなること、ありますよね。
他にも、ご飯を食べながらお話を聞きたいこと、ありますよね。

そんなとき、事前に録画したループ映像が使えれば、
記憶容量の中の「礼儀正しい私」が代わりに出席してくれますね!
(決して、万が一にも、サボりたいわけじゃないですよ!よ!)

Ubuntuでやる方法に関する記事がなかったので、書いておきます。

手順

packageインストール

まず以下をインストールします。

sudo apt update
sudo apt install v4l2loopback-dkms v4l-utils ffmpeg

v4l2loopback-dkms はダミーのビデオデバイスを作るために必要なカーネルモジュールです。
v4l-utils はV4L2デバイスに関する情報を表示する v4l2-ctl コマンドを利用するために必要です。
ffmpeg は動画の再生や変換のためのソフトです。

カメラデバイスの有効化

v4l2loopbackが正常にインストールされたら、仮想カメラデバイスを有効化します。

sudo modprobe v4l2loopback

デバイスファイルの確認

v4l2コマンドを使って、ダミーのビデオデバイスのデバイスファイルを確認します。

v4l2-ctl --list-devices

例として、以下のような結果が出ます。

Dummy video device (0x0000) (platform:v4l2loopback-000):
	/dev/video2

C270 HD WEBCAM (usb-0000:00:xxxxxx):
	/dev/video0
	/dev/video1

この例では/dev/video2が該当します。

仮想カメラに録画映像を流す

次に、仮想カメラに録画した映像を流していきます。

ffmpeg -re -stream_loop -1 -i your_movie.webm -map 0:v -f v4l2 /dev/video2

オプション解説
-re
再生速度が実際の速度になります。これがないとすごい高速で動いて怪しい人になります。

-stream_loop -1
指定した入力ファイルをループ再生するために使用されます。
-1 は無限ループを意味します。

-i
インプットファイルを指定します。
your_movie.webm は各自で作成した動画ファイルの名前を指定してください。

-map 0:v
なくても動きますが、一応。最初に指定した0番目のファイルの映像ストリームを取り出します。

-f v4l2
出力フォーマットを指定します。
`v4l2`` は、Video4Linux2というカメラデバイスへのストリームを指定します。

/dev/video2
出力先のデバイスを指定します。先ほど取得したデバイスファイルを指定してください。

Zoom で流す

ここまで上手く行っていれば、Zoomのカメラ選択で以下のように表示されるはずです。

image

ffmpegコマンドを実行したら、ダミーのカメラデバイスを選択しStart Videoを押し、
録画した映像が流れていれば成功です!

それでは良いビデオミーティングライフを!

参考資料

ffmpeg公式
https://www.ffmpeg.org/ffmpeg.html

ffmpegのmapを解説する
https://qiita.com/cabbage_lettuce/items/21348358ba46f4110d75

v4l2-ctlで行うUSBカメラ設定方法まとめ
https://www.prototype00.com/2021/11/v4l2-ctl-usbcam.html

カーネルモジュール
https://wiki.archlinux.jp/index.php/カーネルモジュール

GitHubで編集を提案

Discussion