IPカメラストリームでいくつかのビデオ処理アルゴリズムを実行する必要があります。私はIPカメラを持っていないので、クライアントマシンがアルゴリズムを取得して実行できるRTSP
ストリーミング用のIPカメラとしてWebカメラを使用するのが私の考えです。 VLCがWebカメラからストリーミングを実行できることを学びました。古いウェブカメラをUbuntuマシンに接続しました。こちらが情報です。
$ v4l2-ctl --list-devices
SAMSUNG (SPC-A30M): SAMSUNG (SP (usb-0000:00:14.0-7):
/dev/video0
/dev/video1
$ v4l2-ctl --list-formats
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: 'YUYV'
Name : YUYV 4:2:2
こちらがドライバー情報です。
/dev/video0
Driver Info (not using libv4l2):
Driver name : uvcvideo
Card type : SAMSUNG (SPC-A30M): SAMSUNG (SP
Bus info : usb-0000:00:14.0-7
Driver version: 5.3.18
Capabilities : 0x84A00001
Video Capture
Metadata Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04200001
Video Capture
Streaming
Extended Pix Format
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: 'YUYV'
Name : YUYV 4:2:2
==========================================================
/dev/video1
Driver Info (not using libv4l2):
Driver name : uvcvideo
Card type : SAMSUNG (SPC-A30M): SAMSUNG (SP
Bus info : usb-0000:00:14.0-7
Driver version: 5.3.18
Capabilities : 0x84A00001
Video Capture
Metadata Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04A00000
Metadata Capture
Streaming
Extended Pix Format
ioctl: VIDIOC_ENUM_FMT
開いたとき MediaStream、すべての手順を正しく実行すると、次のエラーが発生します。
Your input can't be opened:
VLC is unable to open the MRL 'v4l2:///dev/video0'. Check the log for detail.
ログファイルには以下が含まれます。
-- logger module started --
main: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
main: playlist is empty
v4l2 error: cannot open device '/dev/video0': Operation not permitted
v4l2 error: cannot open device '/dev/video0': Operation not permitted
v4l2 error: cannot open device '/dev/video0': Operation not permitted
v4l2 error: cannot open device '/dev/video0': Operation not permitted
開いたとき Cheese、カメラは正常に動作しており、ビデオを見ることができます。
テスト目的で、/dev/video0
権限を777
に設定しましたが、それでも同じエラーが発生します。
この投稿video
グループにユーザーを追加することを提案しました。Sudo usermod -aG video ${USER}
を使用して実行しましたが、喜びはありませんでした。
Motion を this post でも試しましたが、動作しませんでした。
私も FFmpeg を この投稿 で試しましたが、それも機能しませんでした。
私は この投稿 、 この投稿 、 この投稿 、その他多くのことを調べて試しましたが、何も役に立たないようです。
上記の[ドライバー情報]セクションにnot using libv4l2
が表示されます。それが問題の原因ですか?もしそうなら、この問題をどのように解決しますか?
何が悪いのですか?私の目的は、Ubuntuマシンに接続されたUSB WebcamからRTSP
ストリームを、JavaまたはPythonで処理するためにクライアントマシンに提供することです。私はVLCに拘束されません。だから私は仕事を成し遂げるものなら何でも使うことができます。
誰かがVLC問題の実用的な解決策を提案したり、その仕事を行うことができる他のツールを提案したりできますか?
多くの投稿/解決策を試しましたが、どれも役に立ちませんでした。
短い答え :
Sudo apt install vlc
その後 :
/usr/bin/vlc v4l2:///dev/video0
うまくいくはずです。まったく同じインターフェースを取得することはできませんが、ほとんどの用途ではこれで問題ありません。
説明:ubuntu 18.04では、デフォルトのVLCインストールは「スナップ」インストールです(デフォルトでは/ snap/bin/vlcを実行します)。多くのリンクは、snapを使用してVLCをインストールするときに権限の問題があることを示唆しています(たとえば https://forum.videolan.org/viewtopic.php?t=149231 を参照してください)。
Gksuが機能しなくなり、vlcがpkexecを受け入れないため、調査するのは困難ですが、問題はモジュールがロードされていないことに起因すると考えられます。ただし、「汚い」「解決策」:
\# modprobe -a $(find /lib/modules/4.18.0-15-generic/ -name *v4l2*.ko | while read i ; do basename -- $i; done | cut -d'.' -f1)
うまくいきませんでした。
お役に立てれば ...
@JELの回答に続いて、snapがvlcに/ dev/videoデバイスへのアクセスを許可しないという権限の問題があります。
$ snap connections vlc
Interface Plug Slot Notes
audio-playback vlc:audio-playback :audio-playback -
audio-record vlc:audio-record - -
camera vlc:camera - -
desktop vlc:desktop :desktop -
...
これを修正するには、次のコマンドを実行します:snap connect vlc:camera :camera
これにより、インターフェースとスロットの間に接続が作成されます。
$ snap connections vlc
Interface Plug Slot Notes
audio-playback vlc:audio-playback :audio-playback -
audio-record vlc:audio-record - -
camera vlc:camera :camera manual
desktop vlc:desktop :desktop -
...