LoginSignup
2
1

Ubuntu 22.04 で rtsp 映像をビュー(シングルビュー)

Last updated at Posted at 2023-12-11

「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 だと・・・?

ネットワークメディアで指定しても

image.png

エラーが出ます。

image.png

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
.
.
.

映りました

image.png

問題点

一度切断して、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: 

映りました

image.png

mpv

$ mpv --http-header-fields='authstring:sOm3StrIN2==','param:3' rtsp://192.168.42.1:8554/stream0

image.png

映りました

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 

image.png
sudo apt install smplayer
映りました

smplayer

$ sudo apt install smplayer

画質悪いけど、遅延が2秒ぐらい。

image.png

参考

皆さん苦労しているようです。

こちらでは、20 以上の RTSP ストリームを再生するのに様々なものを試し、結論として MotionEye を使うことになったようです。

https://askubuntu.com/questions/533940/how-to-play-rtsp-streams-in-ubuntu
こちらでは、Ubuntu パッケージの vlc が rtsp をサポートしなくなるはるか以前から、いろいろと苦労している様子が伺えます。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1