その後もATOM Tech社のATOM Cam2が出力するReal Time Streaming Protocol (RTSP)をRaspberry Pi 3 Model B (RPi3)および同+ (RPi3+)で視聴するシステムを少しずついじりながら運用しています.
現在の状況 (RPi3, RPi3+共通)
システム構成
- 1GB RAM, 32GB microSDカード (RPi3+は64GB)
- Raspberry Pi OS 12 (Bookworm)
- dphys-swapfile 512MB 使用 (インストールのデフォルト設定),ZRAM不使用
VLCの起動
$HOME/bin/run_vlc.sh
#!/bin/bash
killall vlc
sleep 3
DISPLAY=:0 /usr/bin/vlc \
-f \
rtsp://カメラのUserID:パスワード@カメラのIPアドレス/live \
> /dev/null 2>&1 &
systemdの設定
$HOME/.config/systemd/run_vlc.service
# run_vlc.service
[Unit]
Description=Run vlc
DefaultDependencies=no
After=graphical.target
[Service]
Type=simple
ExecStart=/PATH/TO/THE/SCRIPT/run_vlc.sh
TimeoutStartSec=0
RemainAfterExit=yes
[Timer]
OnBootSec=15sec
[Install]
WantedBy=timers.target
設定
ユーザー権限にて
systemctl --user enable run_vlc
再起動の仕組み
$HOME/bin/rerun_vlc.sh
#!/bin/bash
systemctl --user restart run_vlc
$HOME/.config/systemd/user/rerun_vlc.service
# rerun_vlc.service
[Unit]
Description=Re-run vlc
DefaultDependencies=no
After=run_vlc.target
[Service]
Type=simple
ExecStart=/PATH/TO/THE/SCRIPT/rerun_vlc.sh
TimeoutStartSec=0
RemainAfterExit=no
[Install]
WantedBy=default.target
$HOME/.config/systemd/user/rerun_vlc.timer
# rerun_vlc.timer
[Unit]
Description=Rerun vlc every day at 11:32
After=graphical.target
[Timer]
OnCalendar=*-*-* 11:32:00
OnCalendar=*-*-* 04:30:00
[Install]
WantedBy=timers.target
設定
systemctl --user enable rerun_vlc.timer
解説
従前と一番大きく異なるのは,run_vlc.timerを無くして,その機能をrun_vlc.serviceに合体させたことです.
他は大きく変えていませんが,ATOM Cam 2は毎日11:30に再起動するようにして,RPi3(+)はそれに対応して毎日11:32と,念のため4:30にVLCを再起動させるようにしています.
安定性としては,RPi3,RPi3+ともに1日に1度くらいのハングアップです.