FFmpegを使ってUbuntuサーバーにUSBで接続されたウェブカメラで映像を録画する
Ubuntu 22.04 Serverでやった
ハードはラズパイ3B+
インストール
FFmpegとv4l2-utilsをインストール
sudo apt install ffmpeg v4l-utils
デバイスを特定する
v4l2-ctl --list-devices
こんなふうに表示される(一部省略)
BUFFALO BSWHD06M USB Camera
: (usb-3f980000.usb-1.4):
/dev/video0
/dev/video1
/dev/media3
対応しているフォーマットと解像度を特定する
ffmpeg -f v4l2 -list_formats all -i /dev/video0
こんなふうに表示される(一部省略)
[video4linux2,v4l2 @ 0xaaaad7c25420] Raw : yuyv422 : YUYV 4:2:2 : 1280x720 800x600 640x480 640x360 352x288 320x240 176x144 160x120
[video4linux2,v4l2 @ 0xaaaad7c25420] Compressed: mjpeg : Motion-JPEG : 1280x960 1280x720 800x600 640x480 640x360 352x288 320x240 176x144 160x120
映像を録画する
ffmpeg -f v4l2 -framerate 30 -video_size 352x288 -i /dev/video0 output.mkv
後はこの映像をscpなどでDLして確認する。
結論
ラズパイ3B+だとすぐにCPU使用率が100%を超えるため、取り扱いに注意。
フレームレートは30fpsだったので、ヒートシンクでも取り付けて冷却を考慮すれば、一応RTMPサーバーとして運用はできそうだ。
どうせならラズパイのUSBポートの4つ全部使ってみたいところだが、欲張るのはよそう。
あーあ。どっかにファンレス無音で高性能、かつ小型のPCがあったらなぁー