Zoomカメラに録画ループ映像を流す方法 in Ubuntu 20.04
画面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のカメラ選択で以下のように表示されるはずです。
ffmpeg
コマンドを実行したら、ダミーのカメラデバイスを選択しStart Videoを押し、
録画した映像が流れていれば成功です!
それでは良いビデオミーティングライフを!
参考資料
ffmpeg公式
ffmpegのmapを解説する
v4l2-ctlで行うUSBカメラ設定方法まとめ
カーネルモジュール
Discussion