Manjaro ARMでもVLCでRTSPはNGに

ここだけの話にしておいてください.2023年10月3日(火)現在ですが,Manjaro ARMの配布しているVLC最新版(3.0.18-16)は,RTSPの視聴が可能です.Raspberry Pi 4 Model B (RPi4)で確認しました.

で,めでたしめでたしと行きたかったのですが,他の2台のManjaro ARMを最新版にしたところ,VLCによるRTSPの視聴はできなくなりました.

どうも,視聴できる方がどこかおかしいようです.パッケージ管理のデータベース上は最新版にアップデートされているはずが実際は古いままだとか.

FFMPEGも微妙

かつて,VLCでなくコマンドラインのmplayerPython3のライブラリーを試したことがありましたが,いずれも遅延がどんどん大きくなって,実時間の監視用には使えないことがわかりました.Raspberry Pi 3 Model B (RPi3) とRaspberry Pi 3 Model B+ (RPi3+) でのテストでした.

今回,FFMPEGを試してないことを思い出し同じくRPi3, RPi3+でFFMPEGのコマンドラインプレーヤーffplayを試してみましたが,mplayer, Python3のライブラリーほどではないものの微妙に遅延していきます.

RPi3でffplayを動かしていると,一時間に数十秒遅れて,数時間で数分遅れという状況になります.一時間ごとに再起動すれば良いかもしれませんが,あんまりスマートではありません.

いろいろ試すとVLCがよくできているのが解るばかりで弱ります.

いずれもあくまで当社調べです.

ちなみにCore i7のデスクトップ機ではffplayでも遅延が増大することはありません.

「VLCでrtspを見る」は依然難航中

なんだか相変わらず断片的な書きなぐりなので,何をどうしたくて今どういう問題に直面しているのかというのを一旦まとめます.

最終目標としては,安いモニターカメラが出力するRTSP (Real Time Streaming Protocol)をRaspberry Pi 3 Model B (以下RPi3.Raspberry Pi 3 Model B+はRPi3+)にて視聴するというプロジェクトです.

昨年の段階ではRPi3およびRPi3+にManjaro ARMをインストールして,Manjaroが配布する(もとはArch Linux)VLCで視聴できていました.

しかし,その後一年間モニターカメラの運用を停止していた間にManjaroのVLCもDebianやUbuntu等と同様にRTSPのサポートを止めてしまったようで,RPi3(+)で視聴する方法がなくなってしまいました.

それで現在RPi3(+)でRTSPサポートの付いたVLCを動かす方法を色々探しています.

VLCについて明らかなのは,「本家のVLCはRTSPの視聴が可能」ということです.直接本家がバイナリーを配布しているmacOS版は問題なくモニターカメラからのRTSPを音声込みで再生できています.Windows版については確認していませんが,たぶん同様に問題ないと思います.

一方,Linuxについては,各distroのbuildを尊重しているようです.

SlackwareはdistroにはVLCは含まれていません.SlackBuildsにスクリプトがあるので,sbopkgでbuildできるはずですが,必要なパッケージが35もあってめげてしまいます.それでも気を取り直してまずVLC本体からbuildして,エラーが出るパッケージ(=必須のパッケージ)をbuild & installしていこうと方針を立て,

sbopkg -b vlc

とすると,ソースの配布サイトのアドレスがresolvできないというどうしようもないエラーが出てしまいます.

なお,前述のVLCのダウンロードサイトには,Slackwereのバイナリーのリンクもあります.これはSlackwareに貢献著しいAlienさんがbuildしたもので,試したところ,32bit版も64bit版も問題なくRTSPを再生できます.もし,Alienさんに限らずだれかがARM用もbuildして配布していれば解決なんですが😅

仮想マシンのSlackware 15.0 (32bit版)でRTSPを再生するAlienさんbuildのVLC

ManjaroのVLCもRTSP NGか

色々事情がありまして,しばらくRTSPを視聴せずに来ましたが,また必要にかられて再開しました.

macOSでVLCの本家からdownloadしたVLC media playerは,従来どおり難なく視聴できます.たぶんWindowsでも本家からdownloadすれば使えると思います.

ところが,Manjaro (AMD64版)では視聴できなくなっていました.Debian同様ソースコードにライセンス上の問題があるとかそういう関係でRTSPの機能を除外してしまったのでしょうか

ManjaroでRTSPが視聴可能というのは,Raspberry Piでも視聴可能にできるという大きな意義があったのですが,それができないとなると,Raspberry Piでの監視カメラシステム構築に大きな支障となってしまいます.

さてどうするか

ManjaroのVLCでRTSPの再生ができないことを他のいくつかの環境からテストしてみます.それで確定となれば新しいdistroを探さなければなりません.

Slackwareではsbopkgでbuildできることが解っています.しかし,slackbuilds.orgに登録されているスクリプトは,すべてのアーキテクチャでエラー無くbuildできるとは限りません.特に最終ゴールはRaspberry Pi 3なので,AMD64やx86環境はOKでもaarch64環境でbuildができる可能性は低いと考えています.

それと,依存ファイルの多さです.35もあります.オプショナルなモジュールならば無くてもVLCのbuildスクリプトがその機能を除外して先に進んでくれるようですが,必須のライブラリーがbuildできないとそこでアウトです.一番成功の可能性が高いAMD64でのbuildも躊躇してしまいます.

筆者にはその辺の事情は関係ないので調べません😅
日本の政府やメディアは「防犯カメラ」と呼ばせたいようですが.

箱庭遊び2: 実Debianの仮想化は成功

うまく行かなかった,Debianの実マシンの仮想化はその後成功しました.

まっさらなqcow2の仮想ディスクイメージに実マシンのディスクの内容をコピーするという正攻法がうまく行かなかったので,Plan Bとして,仮想マシンとして動いているDebianの仮想ディスクイメージを複製し,

rsync -artlvd --sparse --inplace --delete /実マシンの/ディスクの/マウントポイント/ /仮想ディスクの/マウントポイント/

を実行しました.

--sparseオプションは,いくつか仮想ディスクイメージがあるから指定しています.また,ないとは思いますが,ディスクがオーバーフローしないように,--inplaceも指定しています

このコピーの後,コピー先の/etc/fstabの内容を,実情に合うようにします.とはいえ,ルートだけで,UUIDなり,/dev/sda3なり,/dev/vda3と指定します

そして,VMmanagerで,コピーしてできたqcow2を含んだ仮想マシンをでっちあげます.

さて,これでもまだコピーしてできた仮想ディスクイメージからブートはできませんので,DebianのインストールDVDイメージから新しく作った仮想マシン起動して,Rescueモードでなんやかんやしたらgrubで無事起動するようになりました.

結局どこが悪かったかわからないままですが,動けばいいんです.

ちなみに,この方法では一つだけ問題があります.それは,同じUUIDを持つパーティションがこの世に2つ存在することです.2つのディスクイメージを同じ仮想マシンに同時に装着して,UUIDを指定してパーティションをマウントしなければ問題になりませんが.

これも元をたどれば実マシンのDebian.ただし,いつ頃コピーしたかは不明.
UUIDの場合はもうひと手間必要ですが省略します😓
新規に作ったqcow2のパーティショニングかフォーマットあたりでしょうが.
今後同じ方法で複製をすれば,さらに増える😓

macOS Ventura のプレビュー(Previewer) はPSサポートがない

びっくり仰天です.

久しぶりにJARL経由できたQSLカードの返信をしようと,まずは届いたカード1枚ずつMariaDBに登録されているデータと照合しました.

今回は珍しいことに,コールサイン間違いや,データの欠落はありませんでした.

次に,返信QSLカードのデータのPDF化ですが,その第1段階では自作のPerlスクリプトに発行するデータのCVSデータを食わせて,Enscriptのデータを生成させます.

そしてEnscriptにそのデータを食わせますが,そう言えば,前回QSLカードの発行をしてから,MariaDBの走っているサーバーのソフトを更新したのでした.Enscriptの設定ファイルはディストロのデフォルトになっているはずなので,昨年10月のバックアップからコピーバックしました.

それで動かしたところ, “Monacoがない” という苦情が出ましたが,それは従前からなので気にしませんでした.問題なくPost Script (PS)が生成されました.

次は,macOSのWorkstation (WS)のFinderでできたPSファイルをダブルクリックしてプレビュー(Previewer)に読み込ませて,PDFとして保存するのですが,プレビューがPSを読み込んでくれません.読み込みダイアログから読み込もうとしてもNGです.

そう言えば(2度目😓),macOSをVenturaにしてからこの作業をしたのは初めてでした.どうやらmacOS VenturaのプレビューからPSサポートが外されたようです.

仕方ないので,macOS 11.x以降にupgradeできないMac MiniからそのPSを読み込んでPDFとして保存しました.

一手間余計になりました.

Slackware ARM 14.2からSlackware ARM 15.0.