いちおう最新の状況をまとめます.学術論文ではないので,実験結果も「な感じ」ですし,引用もよほど必要でない限りしません.
内容
目的
表題の “Raspberry PiでRTSPを見る” を見ても何の話やらということになりますが,最小の防犯システム構築プロジェクトの一部である,カメラの出すリアルタイム画像を見る,というサブプロジェクトです.
システム構成としては,カメラは,ATOM Tech社のATOM Cam 2です.このカメラは標準でReal Time Streaming Protocol (RTSP)をサポートしているので,これを見ることの出来るVLCを使えば良いのです.VLCはいろいろなOS用が出ていて,高性能なMacやLinux WSであれば,画面の一部にVLCでカメラ画像を表示しながら他の作業が出来ます.
しかし,例えば安いモニターや番組を視聴することが少なくなった地デジテレビを利用して,リビングやダイニングでカメラ画像を表示すれば常時監視が可能になり,しかもインテリアの一部となります.
そのためのPCに高性能なLinux WSやMacがかり出せれば良いですが,それはもったいないです.そこでIoTの出番です.残念ながら組み込みコンピューターでRTSPが表示できるソフトを動かすのは不可能ではないと思いますが,手に余ります.
そこでまともなLinux distroが動く最小システム,そう,Raspberry Piの登場です.今日入手可能なRaspberry Pi は,最高峰のRaspberry Pi 5 Model B (RPi5)から,RPi4, RPi3+, RPi3に加えてRaspberry Pi Zero 2 W(H) (RPi ZERO 2)があります.
Model別動作状況
RPi4 (5) 安定(岩盤のごとし)

RPi4(RAM 4GB)では余裕です.何日間も安定して動作します.落ちるとしたらATOM Cam2のRTSPサーバーの方が先です
デフォルトのdphys-swapfileに代えてZRAMを使用しても何ら安定性に影響はありません.
ただし,Waylandでは不安定なので,Xorgを使います.
もったいないからこの用途に使うつもりのないRaspberry Pi 5 Model B (RAM 8GB)についてはテストもしていませんが,RPi4同様安定なことは間違いないです.
RPi3 / RPi3+ 安定(数日)

どちらもRAM 1GBのものを使っていますが,かつては一日に1〜数回の頻度でVLCが落ちました.RPi ZERO 2から得た知見に基づき,ZRAMをやめて,Raspberry Pi OSのデフォルトであるDphys-swapfileに戻したところ安定性が増しました.一日以上は安定して動きます.
ただし,RPi4と同じですが,WaylandではWayfireもlabwcも不安定です.Xorgを使えば安定です.
RPi ZERO 2 まずまず安定

2025年6月11日(水)現在,一日持つか持たないかレベルの安定さと認識しています.VLCが落ちるときは,ネットワーク接続もNGになる場合とsshでログインできる場合があります.前者の場合もシステムは活きていて,マウスをつなげば安全にリブートできます.
詳細
一番価格が安くコンパクトなRPi Zero 2では,当初VLCは起動しましたが安定動作しませんでした.CPUはRPi3/3+と同じでクロック周波数が低いだけですが,RAM 512MBはなかなか厳しいようです.
Raspberry Pi OSの64bit デスクトップ版をインストールします.筆者のこだわるZRAMではVLCは起動さえしないので,標準のDphys-swapfileで,デフォルトの512MBのままとします.
設定が終わったら,sshdは残して,少しでも使用メモリーやイベントを減らすためにvncサーバー,bluetoothサービス,cups-browsed, cupsは止めます.なお筆者はシステムはrootでメンテするというSlackware流儀によりますので,sudo -i
してrootになってから作業します.あしからず.
sudo -i
systemctl disable bluetooth
systemctl disable wayvnc
systemctl disable cups-browsed
systemctl disable cups
reboot
この状態で一度だけ26時間連続してVLCが動いてくれましたが,たいていは数時間〜半日程度でした.
そうした中,複数回あったのですが,VLCがフリーズしたときにavahi-daemonを道連れにしました.そこで,avahi-daemonも止めました.
sudo systemctl disable avahi-daemon
sshで接続するために,起動時にWi-Fiを捕らえIPアドレスを取得したところをよく見ておきます.それで十分ですが,その後固定IPアドレスにして,家庭内LANのDNSに登録しました.
肝心なVLC連続運転の安定性については,かなり良くなりました.RPi3(+)なみに安定して使えると言えます.
コンポジターについては,RPi3(+)やRPi4と異なり,Xorgでは不安定です.Wayland + labwcで安定します.
VLCの動かし方
これは多くの人たちには蛇足になると思います.VLCは今日現在のRaspberry Pi OS 64bit版の標準デスクトップに付属してきます.
必要なのはVLCを起動するスクリプトを作り,自動起動のためのおまじないをするだけです.
VLCの起動スクリプトは例えばrun_vlc.sh
のような名前にして,ユーザーのディレクトリーに置きます.中身は,
#!/bin/sh
if [ $1x = '-wx' ]; then
sleep 15
fi
DISPLAY=:0 /usr/bin/vlc \
-f \
rtsp://1234:5678@192.168.1.99/live \
> /dev/null 2>&1 &
な感じです.if文でsleepさせるのはシステムが安定するまでの時間稼ぎです.RPi4やRPi3(+)では15で十分です.
rtspで始まる行は,ATOMアプリの設定のその他のPCで再生で表示されるものです.行の最後にバックスラッシュをつけます.
chmod a+x run_vlc.sh
をしておいた方が便利です.
これで,sshでつないだままで,
./run_vlc.sh
として起動するか試してみます.うまく起動したら,自動起動のおまじないですが,~/.config/autostart/
内に,適当な名前.desktopというテキストファイルを作ります.中身は,
[Desktop Entry]
Type=Application
Name=vlc
Exec=/home/ユーザー名/run_vlc.sh -w
な感じです.お分かりの通り,”-w” オプションを付けるのがみそです.
ただし,RPi Zero 2ではこの方法ではRPiを起動してVLCは一旦起動しますが数分で落ちます.原因は分かりません.代わりにsystemdを使って起動します.
VLCをsystemdで起動
VLCはどう落ちるか
VLCの落ち方は主に3通りです.
- 画面が固まってスティルとなる
- VLCの画面が黒くなってフルスクリーン表示をやめる
- VLCが終了してデスクトップのみが表示される
Raspberry Pi 3 Model B (+)では1が一番多く,2と3は同じくらいの頻度です.Raspberry Pi Zero 2では3が一番多いです.復旧のためにはsshで接続してsudo reboot
をかけますが,今日のファイルシステムは強力で電源断くらいで壊れることはないので,手間の少ない電源のOFF/ONでリブートかけることも多いです.
修正履歴
オリジナル: 2025年6月1日.
軽微な修正: 6月2日: 「てにをは」や誤字脱字の修正は省略.
6月4日: RPi3(+)とRPi Zero 2の評価を “安定” に上方修正.
6月8日: 最新の知見に基づきupdate.
systemctl status
で確認して不要なデーモンを止めます.vlc.desktop
が無難でしょう.systemctl status
で確認して不要なデーモンを止めます.vlc.desktop
が無難でしょう.