テスト完了しました.結論的には,「若干問題があるが使える」です.以下の最終的なまとめは,BLOGの記事を基にしてその後の知見で若干updateしています.
Manjaroのxfce版でもテストしました → RPi3でRTSPを見る 〜Manjaro xfce編〜
内容
Debian / Raspberry Pi OS / Ubuntu提供のVLCはRTSPを見ることができない
これは確実です(2022/09/07現在).ネットの複数の情報で裏が取れます1し,複数の実機と仮想マシン(x86_64, ARM)で試して全部同じ結果でした.
もし,Raspberry Pi OS(RPiOS)のVLCがrtsp視聴を不可としていなければ,ずいぶん楽だったと思います.
概要
余っているRaspberry Pi 3 Model B (+) を用いてReal Time Streaming Protocol (RTSP)の映像をモニターする,というプロジェクトです.
RPi3(+)にHDMIケーブルを差し込みモニターにつなぎ,電源を接続するとOSが起動して,プライマリーなユーザーに自動ログインして,自動スタートするように設定したVLCが起動してRTSPの配信サイト(LAN内)に自動接続して,フルスクリーンでモニターを開始する,というところまでできました.
RPi3
テストしたRaspberry Piは,Raspberry Pi 3 Model B (RPi3)とRaspberry Pi 3 Model B+ (RPi3+)の2つで,いずれもRAMは1GB搭載のものです.
OS
Raspberry Pi OSが配布するVLCは,RTSPを視聴する機能がありません.これはDebianの方針だそうで,DebianやUbuntuの配布するVLCも同様です.
他にRPi3(+)で使える気の利いたOSはたぶんManjaroしかないと思います.そこで,Manajaroのdownloadページからインストーラーをダウンロードして,インストールします.詳細は省略しますが,Raspberry Pi 4用のインストーラーでRPi3(+)にインストールすることが可能です.
最初はxfce版を試しましたが,VLCを動かしていると画面が真っ黒になることが頻発したので,KDE Plasma Desktopを使いました.KDEを使い慣れているという面もあります.
micro SDカードは16GBで十分だと思いますが,手持ちの32GBのものを使いました.
インストーラーを焼いたmicro SDカードを差し込んでRPi3(+)を起動してもなかなか画面が表示されませんが,じっとがまんすればいつかインストーラーが表示されます.
インストール完了して,ブートさせると,zramも設定済です.
KDE Plasma Desktopの設定とOS update
まずは,ネットにつながないと話にならないので,Wi-Fiの設定をします.
ネットにつながるようになったら,システムをupdateする必要があります.これが非常に時間がかかります.
Konsoleを開いて,suなりsudoでrootになって,
pacman -Syu
として,質問に答え,updateが終わるのを待ちます.GUIのパッケージマネージャーもありますが,最終形態では,キーボードとマウスをつながない状態で運用し,メンテする際はsshで他のマシンからつないで行うので,CUIで完結したほうが良かろうと思います.
VLCのインストールと設定
updateが終わったら,VLCをインストールします.Konsoleからroot権限で,
pacman -S vlc
でインストールできます.ここも当然GUIでいけますが,CUIでいきます.
VLCがインストールできたらGUIで起動して, “Open Network Stream…” でダイアログを開いて,
rtsp://ユーザー:パスワード@IPアドレス/サービス名など
の形式で入力して,RTSPのサイトに接続を試みます.
うまく行ったら,VLCの自動起動の設定です.System Settings > Startup and Shutdown > Autostart と進んで, “+Add…” のボタンを押し, “Add Application…” を選んで,VLC (media player)を追加します(たぶん, “Multimedia”のなかにあります).
リストに表示された,VLCの右端の方にある設定ボタンを押し,ダイアログの “Application” タブの中の “Command”を,
/usr/bin/vlc -f rtsp://ユーザー:パスワード@IPアドレス/サービス名など
のように改変します.
自動ログインの設定は,System Settings > Startup and Shutdown > Login Screen (SDDM) で,下の方の “Behavior…” ボタンを押すと出てきます.
画面が消える問題
KDE System Settings > Workspace Behaviorで,スクリーンロックをoffに,Energy Saving > Screen Energy Savingをoffにしておきますが効果なくスクリーンセーバーが効きます.また,VLCの詳細設定で,スクリーンセーバーを無効にする設定がON(default)になっていることを念のため確認します.
一旦電源を落としてから,電源を入れ,OSの起動,KDE Plasma Desktopの起動,自動ログイン,VLCの自動起動とフルスクリーンによるRTSPの表示を確認します.
これで,VLCが安定して動いてくれればめでたしめでたしなのですが,速いときでは数分,たいていは10〜30分の間に画面が黒くなります.モニターによってはマウスを動かすなどして画面が復活しますが,一部のモニターではRPi3(+)をいったんpoweroffしてから再起動しないと,画面が復活しません.
対処法
Workaroundがありました.このページを参考にしました.
- Mousemover to prevent idle? (Ask Ubuntu)
xdotoolによって擬似的にマウスを動かさずとも,
#!/bin/sh DISPLAY=:0 xset -dpms DISPLAY=:0 xset s off
というスクリプトを作り,適当な名前を付けて,実行可能にして,System Settings > Startup and Shutdown > Autostartで,Login Scriptに追加します.
“DISPLAY=:0″は,自動起動の際には不要ですが,リモートマシンから実行する際に必要なので,入れておきます.
若干の問題
VLCが,指定のURLにつながらないというエラーを出すことが,何回かの起動に一回ありますが,それはWi-Fiの接続が遅れたときで,再度起動してみます.ご家庭内にある,複数のWi-FiやSSIDのうち,一番繋がりやすいものに接続しておくのが良いと思います.
終わりに
ここまで,最短と思われる手順を書きましたが,実際はここに来るまで,行きつ戻りつの繰り返しで,その経験を踏まえてこんなところだろうとまとめてみました.ここに記載した手順でやってもうまく行かないかもしれません.
テストに使用したいくつかのモニターのうち一番古いモニターをつないでいる場合,Screen Saverが働いたり,モニター側でいったん入力を他のソースに切り替えて戻した等によって信号が途絶えると,そのあとどうやっても画面が復活しないことが解りました.このモニターとの “相性” の問題が原因の切り分けを困難にしてくれました.
安いワイヤレスマウスをつないでおけば,他のマシンからsshでログインしなくても,正常終了させることもできます.