4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ふりかえりのグラウンドルールを定着させるためにリモート会議でルールを銀魂風に映す

Last updated at Posted at 2024-12-04

ふりかえりのグラウンドルールはそれなりにあります。
子供の頃トイレやお風呂にひらがな表は貼ってあったりしないでしょうか?
Web会議では毎日のように自分のアイコンが流れます。
それをひらがな表のようにグラウンドルールを毎日流すと覚えてくれるという試みをしました。

相手からはこういうふうに見えていると思います。

image.png

画像だけでもいい感じですね。

image6.png
image7.png
image8.png

作り方

画像を作る

ふりかえるのグラウンドルールはこちらを参考にしました。
https://www.agile-studio.jp/post/update-retrospective-guide-v35

git clone https://github.com/misogihagi/ground-rules-camera
cd ground-rules-camera

ここからフォントをダウンロードします。
https://fontfree.me/762

解凍し、画像を生成します。

unzip kssweetheavycalligraphy100.zip
node .
sudo mkdir /usr/local/share/images
sudo mv image*.png /usr/local/share/images

カメラに登録

後は仮想カメラを作ってffmpegに流し込むだけです。

sudo apt install ffmpeg v4l2loopback-dkms
echo "options v4l2loopback video_nr=42 exclusive_caps=1" | sudo tee -a /etc/modprobe.d/v4l2loopback.conf

echo v4l2loopback | sudo tee -a /etc/modules-load.d/modules.conf
sudo systemctl restart systemd-modules-load.service
/usr/bin/ffmpeg -loop 1 -re -i /usr/local/share/images/image0.png -f v4l2 -pix_fmt yuv420p /dev/video42

systemdに入れておくと起動時に使えるので便利です。

cat << 'EOF' | sudo tee /etc/systemd/system/ground-rules-camera.service 
[Unit]
Description=Stream Image to Virtual Video Device
After=network.target

[Service]
ExecStart=/usr/bin/ffmpeg -loop 1 -re -i /usr/local/share/images/image$((10#$(date +%%d) %% 9)).png -f v4l2 -pix_fmt yuv420p /dev/video42

Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl start ground-rules-camera.service
sudo systemctl enable ground-rules-camera.service

ffmpegで書き込む代わりにプログラム自作する方法もあります。
その場合は一度yuv形式に変換して

ffmpeg -i /usr/local/share/images/image0.png -pix_fmt yuv420p /usr/local/share/images/image0.yuv

標準入力に渡してあげるだけです。
こっちのほうが軽いかもしれませんね。

package main

import (
    "io/ioutil"
	"os"
)

func main() {
    bytes, err := ioutil.ReadFile("/usr/local/share/images/image0.yuv")
    if err != nil {
        panic(err)
    }


	for {
		os.Stdout.Write(bytes)
		os.Stdout.Sync()
	}
}

おまけ

image0.png
image1.png
image2.png
image3.png
image4.png
image5.png
image6.png
image7.png
image8.png

参考

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
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?