https://github.com/shiguredo/momo/releases にて最新版のバイナリをダウンロードしてください。
- Raspberry Pi 2 や 3 や 4 を利用する場合は、
momo-<VERSION>_raspberry-pi-os_armv7.tar.gz
を利用してください - Raspberry Pi Zero や 1 を利用する場合は、
momo-<VERSION>_raspberry-pi-os_armv6.tar.gz
を利用してください
$ tree
.
├── html
│ ├── test.html
│ └── webrtc.js
├── LICENSE
├── momo
└── NOTICE
下記を実行してください。
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install libnspr4 libnss3
これは USB カメラを利用する場合は不要なオプションです。
raspi-config で Camera を Enable にしてください。
加えて、以下のコマンドを実行してください
$ sudo modprobe bcm2835-v4l2 max_video_width=2592 max_video_height=1944
USE_TEST.md をご確認ください。
ビデオデバイスの指定については LINUX_VIDEO_DEVICE.md をご確認ください。
--force-i420
は Raspberry Pi 専用カメラ用では MJPEG を使うとパフォーマンスが落ちるため HD 以上の解像度でも MJPEG にせず強制的に I420 でキャプチャーします。
USBカメラでは逆にフレームレートが落ちるため使わないでください。
$ ./momo --force-i420 --no-audio-device test
--hw-mjpeg-decoder
は ハードウェアによるビデオのリサイズをします。
$ ./momo --hw-mjpeg-decoder true --no-audio-device test
Raspbian で Raspberry Pi の Raspberry Pi 用カメラを利用する場合通りに設定されているか確認してください。特に max_video_width=2592 max_video_height=1944
が記載されていなければ高解像度時にフレームレートが出ません。
Raspberry Pi 用カメラ利用時には --hw-mjpeg-decoder=true --force-i420
オプションを併用するとCPU使用率が下がりフレームレートが上がります。例えば、 Raspberry Pi Zero の場合には
$ ./momo --resolution=HD --force-i420 --hw-mjpeg-decoder=true test
がリアルタイムでの最高解像度設定となります。
一部の MJPEG に対応した USBカメラを使用している場合、 --hw-mjpeg-decoder
は ハードウェアによるビデオのリサイズ と MJPEG をハードウェアデコードします。
$ ./momo --hw-mjpeg-decoder true --no-audio-device test
USB カメラ利用時には --hw-mjpeg-decoder
を使わない方がフレームレートは出ます。しかし --hw-mjpeg-decoder
を使ってCPU使用率を下げた状態で利用したい場合は /boot/config.txt の末尾に下記を追記してください
gpu_mem=256
force_turbo=1
avoid_warnings=2
この設定であれば HD は 30fps, FHD では 15fps 程度の性能を発揮します。