Ubuntu – Problème de streaming webcam Ubuntu 18.04

Je dois exécuter des algorithmes de traitement vidéo sur le flux de caméras IP. Je n’ai pas de caméra IP, donc mon idée est d’utiliser une webcam comme caméra IP pour RTSP streaming, sur lequel les machines clientes peuvent acquérir et exécuter les algorithmes. J’ai appris que VLC peut effectuer le streaming depuis une webcam. J’ai attaché une vieille webcam à une machine Ubuntu. Voici les informations.

 $ 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
 

Voici les informations du pilote.

 /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
 

Quand j’ouvreMédiasCourant, effectuez toutes les étapes correctement, j’obtiens cette erreur:

 Your input can't be opened:
VLC is unable to open the MRL 'v4l2:///dev/video0'. Check the log for detail.
 

Le fichier journal contient:

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

Quand j’ouvreFromage, l’appareil photo fonctionne bien et je peux voir la vidéo.

À des fins de test, j’ai défini la /dev/video0 autorisations pour 777 , je reçois toujours la même erreur.

Ce message a suggéré d’ajouter l’utilisateur à video groupe, je l’ai fait en utilisant sudo usermod -aG video ${USER} mais pas de joie.

J’ai également essayé Motion dans ce post, mais je n’ai pas pu le faire fonctionner.

J’ai également essayé FFmpeg dans ce post, mais je n’ai pas pu le faire fonctionner aussi.

J’ai étudié et essayé ce post, ce post, ce post, et bien d’autres, mais rien ne semble aider.

Dans la section Informations sur le pilote (ci-dessus), je vois not using libv4l2 , pourrait-il être la cause du problème? Si oui, comment résoudre ce problème?

Qu’est-ce que je fais mal? Mon objectif de fournir un RTSP flux de la webcam USB attachée à la machine Ubuntu, aux machines clientes pour traitement en Java ou Python. Je ne suis pas lié à VLC, donc je peux utiliser tout ce qui fait le travail.

Quelqu’un peut-il suggérer une solution de travail au problème VLC ou suggérer un autre outil capable de faire le travail?

J’ai essayé de nombreux messages / solutions mais aucun n’a aidé.

Meilleure réponse

  • Réponse courte :

     sudo apt install vlc
     

    Puis :

     /usr/bin/vlc v4l2:///dev/video0
     

    devrait marcher. Vous n’obtiendrez pas exactement la même interface, mais cela devrait être OK pour la plupart des utilisations.

    Explications: sous ubuntu 18.04, l’installation par défaut de VLC est une installation « snap » (vous exécutez / snap / bin / vlc par défaut). De nombreux liens suggèrent qu’il existe des problèmes d’autorisations lors de l’installation de VLC avec snap (voir par exemple https://forum.videolan.org/viewtopic.php?t=149231).

    Étant donné que gksu ne fonctionne plus et que vlc n’accepte pas pkexec, il est difficile d’enquêter, mais je soupçonne que le problème vient d’un module qui n’est pas en cours de chargement. Cependant, la « solution » « sale »:

     \# modprobe -a $(find /lib/modules/4.18.0-15-generic/ -name *v4l2*.ko | while read i ; do basename -- $i; done | cut -d'.' -f1)