1. 概要
Raspberry Pi 5が手に入ったので、3Bや4Bで動いていたGStreamerやRTSPサーバーが使えるのか確認する。Pi 4Bのときの作業をベースに進める。
以下は以前の記事。
2. 使用機器
- Raspberry Pi 5 (8GB)
- OSはBookworm 64bit(Debian 12)
- UVCカメラ: Buffalo BSW500M
- 再生アプリケーション: VLC Player on Windows11
3. OSのインストール
まずは、前回から条件をあまり変更せずに試した見たかったので、Bullseye 64bit Lite(raspios_lite_arm64-2023-05-03)をインストールしてみた。残念ながら、電源をいれてもファンがうるさいだけで起動しているそぶりがなかった。LANのLEDも点灯しないので、多分起動できない。Pi5はBullseyeに対応していないという記述をどっかで読んだので動かないということだろうか。
仕方がないので、Bookwormをインストールした。起動の様子を一度もみたことないと何が起きるかわからないので、最初はDesktop版(GUI)ありとした。
のちにBookworm 64bit Liteで試して同じ結果を得ました。
4. アプリケーションやライブラリのインストール
とりあえず定番のアップデート。これしないと一部のapt installで失敗するみたい。
$ sudo apt update
$ sudo apt upgrade
Gstreamerと関連のインストール
sudo apt -y install cmake m4
sudo apt -y install libssl-dev libcurl4-openssl-dev liblog4cplus-dev
sudo apt -y install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev
sudo apt -y install gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools
Lite版で追加インストールしたもの
sudo apt -y install git python3 python3-pip
sudo apt -y install meson
GStreamerのバージョン確認。1.22.0だった。
user@raspberrypi:~ $ gst-launch-1.0 --version
gst-launch-1.0 version 1.22.0
GStreamer 1.22.0
http://packages.qa.debian.org/gstreamer1.0
4.1 ハードウェアエンコーダはない
Pi5のスペックにはハードウェアエンコーダが記載されていない。ということで、v4l2hの確認をしてみる。
$ gst-inspect-1.0 | grep v4l2h
何も出てこない。なんで無くしたんだろうか。
5. RTSPサーバーのインストール
Pi 4Bで使ったのと同じ方法で試そうかと思ったのだが、mesonの前に「git checkout 1.22.0」をしたら失敗した。GitHubを見るとブランチは1.18まで、Tagは1.19.2までで、1.22については何もされていないようだった。
今後は使うべきでないかもしれない。
$ git clone git://anongit.freedesktop.org/gstreamer/gst-rtsp-server
$ cd gst-rtsp-server
$ meson build/
$ cd build/
$ ninja
6. 確認(RTSP)
6.1. カラーバー
出力は確認できた。
再生はVLC Playerでメディアを開くのネットワークに「rtsp://192.168.1.128:8554/test」のように入力する。192.168.1.128はRaspberry Piに割り当てたIPアドレス。
./test-launch '( videotestsrc ! x264enc ! rtph264pay name=pay0 pt=96 )'
6.2. カメラの映像をRTSP
出力は確認できた。再生方法はカラーバーと同様。
遅延が妙に大きい。数秒ありそう。
./test-launch '( v4l2src device=/dev/video0 ! videoconvert ! video/x-raw,format=I420,width=320,height=240,framerate=30/1 ! videoconvert ! x264enc ! rtph264pay name=pay0 pt=96 )'
7. 今後
gst-rtsp-serverは未来がないかもしれないので、別の方法で確認したい。
ハードウェアエンコーダがないことで、遅延などのパフォーマンスへの影響がどの程度あるのか調べたい。