「milk-V Duo で POE 監視カメラを作ろう」
https://qiita.com/nanbuwks/items/555b6715f6778c3a3afe
にてカメラ画像のビューの方法として以下のように説明をしました。
ネットワーク接続で、rtsp プレーヤを使って見てみます。
rtsp は
rtsp://servername:portno/name でアクセスします。例えば milk-V Duo を USB の RDS ネットワークで接続していた場合、
rtsp://192.168.42.1:8554/stream0
と書きましたが、Ubuntu Linux で rtsp が見える方法を調べてみます。
環境
- Ubuntu 22.04 LTS ja AMD64
試したもの
無料で使えるものから選んでみました。
- シングルストリーミングビューア
- vlc
- ffplay (ffmpeg)
- mplayer
- mpv
- gstreamer
- smplayer
なお、マルチストリーミングビューアについては別記事で。
Ubuntu だと VLC で rtsp プロトコルが開かない
MS-Windows だと VLC が使えるのですが、 Ubuntu だと・・・?
ネットワークメディアで指定しても
エラーが出ます。
VLCはMRL 'rtsp://192.168.42.1:8554/stream0'を開けません。詳細はログを確認してください。
入力を開くことができません:
VLCはMRL 'rtsp://192.168.42.1:8554/stream0'を開けません。詳細はログを確認してください。
入力を開くことができません:
.
.
.
なお、このエラーメッセージは英文だと以下のようになります。( LANG=C 環境で ターミナルで VLC を起動して流れてきました。)
[00007f2508001650] satip stream error: Failed to play RTSP session
[00007f2508001650] satip stream error: Failed to teardown RTSP session
によると、
Ubuntu removed RTSP support in their VLC builds. Tou need to install the Snap version or build VLC with RTSP suppoet yourself.
ということで、21.04 から rtsp のサポートをやめてしまったようです。
ffplay (ffmpeg)
ffmpeg で rtsp が再生できるようです。コマンドは ffplay を使います。
インストール
$ sudo apt install ffmpeg
$ ffplay rtsp://192.168.42.1:8554/stream0
ffplay version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2003-2021 the FFmpeg developers
built with gcc 11 (Ubuntu 11.2.0-19ubuntu1)
configuration: --prefix=/usr --extra-version=0ubuntu0.22.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil 56. 70.100 / 56. 70.100
libavcodec 58.134.100 / 58.134.100
libavformat 58. 76.100 / 58. 76.100
libavdevice 58. 13.100 / 58. 13.100
libavfilter 7.110.100 / 7.110.100
libswscale 5. 9.100 / 5. 9.100
libswresample 3. 9.100 / 3. 9.100
libpostproc 55. 9.100 / 55. 9.100
.
.
.
映りました
問題点
一度切断して、2回目に接続しようとすると画面が出ませんでした。たちの悪いことに、他のプレーヤも接続できなくなりました。milk-V 側の電源を切らないと復帰しなくなります。
mplayer
インストール
$ sudo apt install mplayer
実行
$ mplayer rtsp://192.168.42.1:8554/stream0
MPlayer 1.4 (Debian), built with gcc-11 (C) 2000-2019 MPlayer Team
do_connect: could not connect to socket
connect: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.
Playing rtsp://192.168.42.1:8554/stream0.
Resolving 192.168.42.1 for AF_INET6...
Couldn't resolve name for AF_INET6: 192.168.42.1
Connecting to server 192.168.42.1[192.168.42.1]: 8554...
rtsp_session: unsupported RTSP server. Server type is 'unknown'.
libavformat version 58.76.100 (external)
libavformat file format detected.
[lavf] stream 0: video (hevc), -vid 0
VIDEO: [HEVC] 1920x1080 0bpp 60.000 fps 0.0 kbps ( 0.0 kbyte/s)
Failed to open VDPAU backend libvdpau_va_gl.so: cannot open shared object file: No such file or directory
[vdpau] Error when calling vdp_device_create_x11: 1
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
libavcodec version 58.134.100 (external)
Selected video codec: [ffhevc] vfm: ffmpeg (FFmpeg HEVC / H.265)
==========================================================================
Clip info:
title:
映りました
mpv
$ mpv --http-header-fields='authstring:sOm3StrIN2==','param:3' rtsp://192.168.42.1:8554/stream0
映りました
gstreamer
インストール方法がめんどくさそうです。こちらの
https://linux.how2shout.com/installing-gstreamer-on-ubuntu-22-04-or-20-04-lts-linux/
Not only the core package but we can also install the necessary GStreamer components, including the tools, base plugins, good plugins, bad plugins, and ugly plugins.
なんて書いてある方法を元に、以下のようにインストール。
$ sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
gstreamer1.0-plugins-ugly はすでに最新バージョン (1.20.1-1) です。
gstreamer1.0-plugins-ugly は手動でインストールしたと設定されました。
gstreamer1.0-alsa はすでに最新バージョン (1.20.1-1ubuntu0.1) です。
gstreamer1.0-alsa は手動でインストールしたと設定されました。
gstreamer1.0-gl はすでに最新バージョン (1.20.1-1ubuntu0.1) です。
gstreamer1.0-gl は手動でインストールしたと設定されました。
gstreamer1.0-gtk3 はすでに最新バージョン (1.20.3-0ubuntu1.1) です。
gstreamer1.0-gtk3 は手動でインストールしたと設定されました。
gstreamer1.0-plugins-base はすでに最新バージョン (1.20.1-1ubuntu0.1) です。
gstreamer1.0-plugins-base は手動でインストールしたと設定されました。
gstreamer1.0-plugins-good はすでに最新バージョン (1.20.3-0ubuntu1.1) です。
gstreamer1.0-plugins-good は手動でインストールしたと設定されました。
gstreamer1.0-pulseaudio はすでに最新バージョン (1.20.3-0ubuntu1.1) です。
gstreamer1.0-pulseaudio は手動でインストールしたと設定されました。
gstreamer1.0-tools はすでに最新バージョン (1.20.3-0ubuntu1) です。
gstreamer1.0-tools は手動でインストールしたと設定されました。
gstreamer1.0-x はすでに最新バージョン (1.20.1-1ubuntu0.1) です。
gstreamer1.0-x は手動でインストールしたと設定されました。
gstreamer1.0-libav はすでに最新バージョン (1.20.3-0ubuntu1) です。
gstreamer1.0-libav は手動でインストールしたと設定されました。
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
gconf-service gconf-service-backend gconf2-common golang-1.20 golang-1.20-doc
golang-1.20-go golang-1.20-src libappstream-glib8 libc++1 libc++1-14 libc++abi1-14
libgconf-2-4 libunwind-14
これを削除するには 'sudo apt autoremove' を利用してください。
以下の追加パッケージがインストールされます:
gdal-data gir1.2-gst-plugins-bad-1.0 libarmadillo10 libavcodec-dev libavformat-dev
libavutil-dev libblosc1 libcfitsio9 libcharls2 libdc1394-dev libdeflate-dev
libdw-dev libelf-dev libexif-dev libexif-doc libfreeaptx0 libfreexl1 libfyba0
libgdal30 libgdcm-dev libgdcm3.0 libgeos-c1v5 libgeos3.10.2 libgeotiff5
libgphoto2-dev libgstreamer-opencv1.0-0 libgstreamer-plugins-bad1.0-0
libgstreamer-plugins-good1.0-dev libgudev-1.0-dev libgupnp-igd-1.0-4 libhdf4-0-alt
libilmbase-dev libjbig-dev libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev libkmlbase1
libkmldom1 libkmlengine1 libldacbt-enc2 liblept5 libltc11 liblzma-dev
libmjpegutils-2.1-0 libmpeg2encpp-2.1-0 libmplex2-2.1-0 libmysqlclient21 libnice10
libogdi4.1 libopencv-calib3d-dev libopencv-calib3d4.5d libopencv-contrib-dev
libopencv-contrib4.5d libopencv-core-dev libopencv-core4.5d libopencv-dev
libopencv-dnn-dev libopencv-dnn4.5d libopencv-features2d-dev
libopencv-features2d4.5d libopencv-flann-dev libopencv-flann4.5d
libopencv-highgui-dev libopencv-highgui4.5d libopencv-imgcodecs-dev
libopencv-imgcodecs4.5d libopencv-imgproc-dev libopencv-imgproc4.5d libopencv-ml-dev
libopencv-ml4.5d libopencv-objdetect-dev libopencv-objdetect4.5d libopencv-photo-dev
libopencv-photo4.5d libopencv-shape-dev libopencv-shape4.5d libopencv-stitching-dev
libopencv-stitching4.5d libopencv-superres-dev libopencv-superres4.5d
libopencv-video-dev libopencv-video4.5d libopencv-videoio-dev libopencv-videoio4.5d
libopencv-videostab-dev libopencv-videostab4.5d libopencv-viz-dev libopencv-viz4.5d
libopencv4.5-java libopencv4.5d-jni libopenexr-dev libopenh264-6 libopenni2-0
liborc-0.4-dev liborc-0.4-dev-bin libqrencode4 libraw1394-dev libraw1394-tools
librttopo1 libsocket++1 libspatialite7 libsrtp2-1 libsuperlu5 libswresample-dev
libswscale-dev libtbb-dev libtesseract4 libtiff-dev libtiffxx5 libunwind-dev
liburiparser1 libvo-aacenc0 libvo-amrwbenc0 libwildmidi2 libx11-xcb-dev libzbar0
libzxingcore1 mysql-common opencv-data proj-bin
提案パッケージ:
frei0r-plugins geotiff-bin gdal-bin libgeotiff-epsg gstreamer1.0-doc libhdf4-doc
libhdf4-alt-dev hdf4-tools liblzma-doc ogdi-bin opencv-doc liborc-0.4-doc
libraw1394-doc libtbb-doc libwildmidi-config
以下のパッケージが新たにインストールされます:
gdal-data gir1.2-gst-plugins-bad-1.0 gstreamer1.0-plugins-bad gstreamer1.0-qt5
libarmadillo10 libavcodec-dev libavformat-dev libavutil-dev libblosc1 libcfitsio9
libcharls2 libdc1394-dev libdeflate-dev libdw-dev libelf-dev libexif-dev libexif-doc
libfreeaptx0 libfreexl1 libfyba0 libgdal30 libgdcm-dev libgdcm3.0 libgeos-c1v5
libgeos3.10.2 libgeotiff5 libgphoto2-dev libgstreamer-opencv1.0-0
libgstreamer-plugins-bad1.0-0 libgstreamer-plugins-bad1.0-dev
libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev
libgstreamer1.0-dev libgudev-1.0-dev libgupnp-igd-1.0-4 libhdf4-0-alt libilmbase-dev
libjbig-dev libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev libkmlbase1 libkmldom1
libkmlengine1 libldacbt-enc2 liblept5 libltc11 liblzma-dev libmjpegutils-2.1-0
libmpeg2encpp-2.1-0 libmplex2-2.1-0 libmysqlclient21 libnice10 libogdi4.1
libopencv-calib3d-dev libopencv-calib3d4.5d libopencv-contrib-dev
libopencv-contrib4.5d libopencv-core-dev libopencv-core4.5d libopencv-dev
libopencv-dnn-dev libopencv-dnn4.5d libopencv-features2d-dev
libopencv-features2d4.5d libopencv-flann-dev libopencv-flann4.5d
libopencv-highgui-dev libopencv-highgui4.5d libopencv-imgcodecs-dev
libopencv-imgcodecs4.5d libopencv-imgproc-dev libopencv-imgproc4.5d libopencv-ml-dev
libopencv-ml4.5d libopencv-objdetect-dev libopencv-objdetect4.5d libopencv-photo-dev
libopencv-photo4.5d libopencv-shape-dev libopencv-shape4.5d libopencv-stitching-dev
libopencv-stitching4.5d libopencv-superres-dev libopencv-superres4.5d
libopencv-video-dev libopencv-video4.5d libopencv-videoio-dev libopencv-videoio4.5d
libopencv-videostab-dev libopencv-videostab4.5d libopencv-viz-dev libopencv-viz4.5d
libopencv4.5-java libopencv4.5d-jni libopenexr-dev libopenh264-6 libopenni2-0
liborc-0.4-dev liborc-0.4-dev-bin libqrencode4 libraw1394-dev libraw1394-tools
librttopo1 libsocket++1 libspatialite7 libsrtp2-1 libsuperlu5 libswresample-dev
libswscale-dev libtbb-dev libtesseract4 libtiff-dev libtiffxx5 libunwind-dev
liburiparser1 libvo-aacenc0 libvo-amrwbenc0 libwildmidi2 libx11-xcb-dev libzbar0
libzxingcore1 mysql-common opencv-data proj-bin
アップグレード: 0 個、新規インストール: 125 個、削除: 0 個、保留: 76 個。
65.8 MB のアーカイブを取得する必要があります。
この操作後に追加で 289 MB のディスク容量が消費されます。
インストール後、以下のようにして起動しました。
$ gst-play-1.0 rtsp://192.168.42.1:8554/stream0
sudo apt install smplayer
映りました
smplayer
$ sudo apt install smplayer
画質悪いけど、遅延が2秒ぐらい。
参考
皆さん苦労しているようです。
こちらでは、20 以上の RTSP ストリームを再生するのに様々なものを試し、結論として MotionEye を使うことになったようです。
https://askubuntu.com/questions/533940/how-to-play-rtsp-streams-in-ubuntu
こちらでは、Ubuntu パッケージの vlc が rtsp をサポートしなくなるはるか以前から、いろいろと苦労している様子が伺えます。