LoginSignup
2
4

More than 5 years have passed since last update.

Raspberry PiでUSB Web CAMの動画を配信する ~mjpg-streamer自動化編~

Posted at

Raspberry PiでUSB Web CAMの動画を配信する ~mjpg-streamer自動化編~

SysmtedにServiceとして登録することで、電源投入時にmjpg-streamerを自動起動するようにする。

使用機材

  • Raspberry Pi 2 Bodel B
  • Logicool HD Web CAM C270
  • 8GBのmicro SD Card

OS

  • RASPBIAN STRETCH LITE (2017-11-29)

手順

既にRaspbianをSD CardにInstallしてあるものとする。
インストール方法については公式を参考

次にmjpg-streamerをInstallしてあるものとする。
インストール方法についてはこちらの記事を参照

Raspberry Piを起動し、ログインしておく。(今回の作業では標準ユーザー Pi で作業している。)

以下のコマンドでデバイスのIDを探す

sudo systemctl list-units -t device

筆者環境では sys-devices-platform-soc-3f980000.usb-usb1-1\x2d1-1\x2d1.3-1\x2d1.3:1.2-sound-card1.device にC270が見つかった。

Systemdに設定を登録し、有効化する

editorでSystemdの設定ファイルを作成する。

sudo nano /etc/systemd/system/mjpg-streamer.service

以下の設定を流し込む。

[Unit]
Description=MJPG-Streamer with /dev/video0.
After=udev.target
After=sound.target
After=syslog.target

BindsTo=sys-devices-platform-soc-3f980000.usb-usb1-1\x2d1-1\x2d1.3-1\x2d1.3:1.2-sound-card1.device
After=sys-devices-platform-soc-3f980000.usb-usb1-1\x2d1-1\x2d1.3-1\x2d1.3:1.2-sound-card1.device

[Service]
type=simple
ExecStart=/usr/local/bin/mjpg_streamer -i 'input_uvc.so -d /dev/video0 -r 640x480 -n -y' -o 'output_http.so -w /var/www -p 8080'

[Install]
WantedBy=multi-user.target
WantedBy=sys-devices-platform-soc-3f980000.usb-usb1-1\x2d1-1\x2d1.3-1\x2d1.3:1.2-sound-card1.device

Systemdに対して自動実行を有効にする

sudo systemctl enable mjpg-streamer.service

補足

  • USBデバイスなので何らかのタイミングで値が変わる可能性がある
    • 筆者環境では今のところ問題は起きていない
  • USB Web CAMがSound Card扱いになっているように見えるが、これが仕様なのかはよくわからない

参考文献

Linux でデバイスを接続している時だけ動くサービスを作る

2
4
0

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