Автор Тема: Вэб-камера в VLC видна, но не более. Что-то не так с правами??  (Прочитано 4141 раз)

Оффлайн robinzoid

  • Завсегдатай
  • *
  • Сообщений: 71
    • Email
Доброго дня. Альтлинукс 9.2 64 битный. Вэб-камера Гениус. Вроде всё нормально, VLC её видит, стало быть с подключением всё состоялось.

 

Но только VLC, попытка увидеть камеру в Cheese  или  Kamoso эффекта не имеет. Приложения камеру не видят.



Но это не столь существенно. Куда хуже что камеру не видит ни Zoom ни Skype. Микрофон работает, видео нет.

 

Камера вообще не определяется ничем ведущим в инет.



Есть смутное предположение что дело в правах на камеру или на место её функционирования. Но вот тут я конкретно плыву. Остро нужен совет человека опытного.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 096
    • Домашняя страница
    • Email
Пользователь должен быть в группе video:
crw-rw----+ 1 root video 81, 0 дек  2 08:29 /dev/video0
crw-rw----+ 1 root video 81, 1 дек  2 08:29 /dev/video1
Андрей Черепанов (cas@)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 096
    • Домашняя страница
    • Email
apt-get install v4l-utils
v4l2-ctl -d /dev/video0 --list-formats-ext
v4l2-ctl --get-fmt-video
Андрей Черепанов (cas@)

Оффлайн robinzoid

  • Завсегдатай
  • *
  • Сообщений: 71
    • Email
Спасибо Андрей, но чего-то я снова у себя нашёл пролему.

[konst@comp-pentium-dual-b468b1 ~]$ crw-rw----+ 1 root video 81, 0 дек  2 08:29 /dev/video0
bash: crw-rw----+: команда не найдена
[konst@comp-pentium-dual-b468b1 ~]$ su -
Password:
[root@comp-pentium-dual-b468b1 ~]# crw-rw----+ 1 root video 81, 0 дек  2 08:29 /dev/video0
-bash: crw-rw----+: команда не найдена
[root@comp-pentium-dual-b468b1 ~]#


Оффлайн Александр Ерещенко

  • Завсегдатай
  • *
  • Сообщений: 783
Спасибо Андрей, но чего-то я снова у себя нашёл пролему.

[konst@comp-pentium-dual-b468b1 ~]$ crw-rw----+ 1 root video 81, 0 дек  2 08:29 /dev/video0
bash: crw-rw----+: команда не найдена
[konst@comp-pentium-dual-b468b1 ~]$ su -
Password:
[root@comp-pentium-dual-b468b1 ~]# crw-rw----+ 1 root video 81, 0 дек  2 08:29 /dev/video0
-bash: crw-rw----+: команда не найдена
[root@comp-pentium-dual-b468b1 ~]#
Это вы с разбегу решили копировать всё в командную строку, в том числе и вывод команд :)
Не делайте так, мало ли кто и что посоветует. Всегда смотрите, что именно вам предлагают. :)

Пользователь должен быть в группе video:
crw-rw----+ 1 root video 81, 0 дек  2 08:29 /dev/video0
crw-rw----+ 1 root video 81, 1 дек  2 08:29 /dev/video1
Здесь Андрей просто показал, что на данные устройства /dev/video*, которые и есть веб-камеры, назначены указанные права. Это часть вывода команды ls -l /dev

А здесь он привел команды установки пакета v4l-utils (различные библиотеки и утилиты для поддержки видеокамер под линукс) и команды (v4l2-ctl  входит в этот пакет), с помощью которых можно посмотреть поддерживаемые камерой форматы вывода:
apt-get install v4l-utils
v4l2-ctl -d /dev/video0 --list-formats-ext
v4l2-ctl --get-fmt-video

Проверьте у себя, убедитесь, что у устройства /dev/video0 соответствующие права.
Посмотрите, какие форматы поддерживает ваша камера (результат можете скопировать сюда)

И еще может быть ситуация, когда одна программа "захватила" камеру в монопольный доступ, а остальные программы соответственно не могут получить до неё достучаться.
« Последнее редактирование: 02.12.2021 18:29:59 от Александр Ерещенко »

Оффлайн robinzoid

  • Завсегдатай
  • *
  • Сообщений: 71
    • Email
Ну Вы безусловно правы, но советами Андрея я пользуюсь уже не первый десяток лет, в своё время он меня на Альт-4 подсадил, так что вряд ли он здесь ошибся.
Я - другое дело. Косячу тока так... Про команду ls -l /dev я не знал.
Медленным шагом, робким зигзагом
crw-rw----+ 1 root  video      81,   0 дек  2 19:23 video0

[konst@comp-pentium-dual-b468b1 ~]$ su -
Password:
[root@comp-pentium-dual-b468b1 ~]# apt-get install v4l-utils
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Последняя версия v4l-utils уже установлена.
0 будет обновлено, 0 новых установлено, 0 пакетов будет удалено и 0 не будет обновлено.
[root@comp-pentium-dual-b468b1 ~]# v4l2-ctl -d /dev/video0 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture

        [0]: 'PJPG' (GSPCA PJPG, compressed)
                Size: Discrete 640x480
[root@comp-pentium-dual-b468b1 ~]# v4l2-ctl --get-fmt-video
Format Video Capture:
        Width/Height      : 640/480
        Pixel Format      : 'PJPG' (GSPCA PJPG)
        Field             : None
        Bytes per Line    : 640
        Size Image        : 115790
        Colorspace        : JPEG
        Transfer Function : Default (maps to sRGB)
        YCbCr/HSV Encoding: Default (maps to ITU-R 601)
        Quantization      : Default (maps to Full Range)
        Flags             :
[root@comp-pentium-dual-b468b1 ~]#



С командой я опять плыву.

[konst@comp-pentium-dual-b468b1 ~]$ v4l2-ctl

General/Common options:
  --all              display all information available
  -C, --get-ctrl <ctrl>[,<ctrl>...]
                     get the value of the controls [VIDIOC_G_EXT_CTRLS]
  -c, --set-ctrl <ctrl>=<val>[,<ctrl>=<val>...]
                     set the value of the controls [VIDIOC_S_EXT_CTRLS]
  -D, --info         show driver info [VIDIOC_QUERYCAP]
  -d, --device <dev> use device <dev> instead of /dev/video0
                     if <dev> starts with a digit, then /dev/video<dev> is used
  -e, --out-device <dev> use device <dev> for output streams instead of the
                     default device as set with --device
                     if <dev> starts with a digit, then /dev/video<dev> is used
  -h, --help         display this help message
  --help-all         all options
  --help-io          input/output options
  --help-meta        metadata format options
  --help-misc        miscellaneous options
  --help-overlay     overlay format options
  --help-sdr         SDR format options
  --help-selection   crop/selection options
  --help-stds        standards and other video timings options
  --help-streaming   streaming options
  --help-subdev      sub-device options
  --help-tuner       tuner/modulator options
  --help-vbi         VBI format options
  --help-vidcap      video capture format options
  --help-vidout      vidout output format options
  --help-edid        edid handling options
  -k, --concise      be more concise if possible.
  -l, --list-ctrls   display all controls and their values [VIDIOC_QUERYCTRL]
  -L, --list-ctrls-menus
                     display all controls and their menus [VIDIOC_QUERYMENU]
  -r, --subset <ctrl>[,<offset>,<size>]+
                     the subset of the N-dimensional array to get/set for control <ctrl>,
                     for every dimension an (<offset>, <size>) tuple is given.
  -w, --wrapper      use the libv4l2 wrapper library.
  --list-devices     list all v4l devices
  --log-status       log the board status in the kernel log [VIDIOC_LOG_STATUS]
  --get-priority     query the current access priority [VIDIOC_G_PRIORITY]
  --set-priority <prio>
                     set the new access priority [VIDIOC_S_PRIORITY]
                     <prio> is 1 (background), 2 (interactive) or 3 (record)
  --silent           only set the result code, do not print any messages
  --sleep <secs>     sleep <secs>, call QUERYCAP and close the file handle
  --verbose          turn on verbose ioctl status reporting
[konst@comp-pentium-dual-b468b1 ~]$

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 096
    • Домашняя страница
    • Email
Редкий кодек, поэтому и не подхватывается.
Андрей Черепанов (cas@)

Оффлайн robinzoid

  • Завсегдатай
  • *
  • Сообщений: 71
    • Email
Спасибо...
Ну с одной стороны нельзя сказать что вердикт вдохновляет, а с другой, на старушке Кубунте, что стоит на другом разделе HDD ситуация почти в норме. Оттуда этот редкий кодек нельзя как-нибудь выцарапать?

Кубунтовское:

konst@konst-desktop:~$ v4l2-ctl -d /dev/video0 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
        Index       : 0
        Type        : Video Capture
        Pixel Format: 'YU12'
        Name        : [YU12]
                Size: Discrete 640x480
                        Interval: Discrete 0.033s (30.000 fps)

konst@konst-desktop:~$ v4l2-ctl --get-fmt-video
Format Video Capture:
        Width/Height  : 640/480
        Pixel Format  : 'YU12'
        Field         : None
        Bytes per Line: 640
        Size Image    : 460800
        Colorspace    : SRGB
konst@konst-desktop:~$

Но в общем понятно. Разжился не той камерой.
« Последнее редактирование: 03.12.2021 09:04:03 от robinzoid »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 096
    • Домашняя страница
    • Email
YU12 — нормальный формат, который все видят. Надо разбираться и гуглить.
Андрей Черепанов (cas@)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 096
    • Домашняя страница
    • Email
Спасибо...
Ну с одной стороны нельзя сказать что вердикт вдохновляет, а с другой, на старушке Кубунте, что стоит на другом разделе HDD ситуация почти в норме. Оттуда этот редкий кодек нельзя как-нибудь выцарапать?

Кубунтовское:

konst@konst-desktop:~$ v4l2-ctl -d /dev/video0 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
        Index       : 0
        Type        : Video Capture
        Pixel Format: 'YU12'
        Name        : [YU12]
                Size: Discrete 640x480
                        Interval: Discrete 0.033s (30.000 fps)

konst@konst-desktop:~$ v4l2-ctl --get-fmt-video
Format Video Capture:
        Width/Height  : 640/480
        Pixel Format  : 'YU12'
        Field         : None
        Bytes per Line: 640
        Size Image    : 460800
        Colorspace    : SRGB
konst@konst-desktop:~$

Но в общем понятно. Разжился не той камерой.
kernel-modules-v4l-std-def (или -un-def) стоит?
Андрей Черепанов (cas@)

Оффлайн robinzoid

  • Завсегдатай
  • *
  • Сообщений: 71
    • Email
По-моему стоит. Вроде это он.


Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 755

может так

#!/bin/bash

MACHINE_TYPE=`uname -m`
if [ ${MACHINE_TYPE} == 'x86_64' ]; then
  # 64
  echo "x86_64"
  LIBDIR="/usr/lib/x86_64-linux-gnu"
  LIBDIR2="/usr/lib64"
else
  # 32
  echo "x86_32"
  LIBDIR="/usr/lib/i386-linux-gnu"
  LIBDIR2="/usr/lib"
fi

if [[ -e "$LIBDIR/libv4l/v4l2convert.so" ]]; then
echo "add LD $LIBDIR/libv4l/v4l2convert.so"
export LD_PRELOAD="${LD_PRELOAD:+$LD_PRELOAD:}$LIBDIR/libv4l/v4l2convert.so"
fi

if [[ -e "$LIBDIR/libv4l/v4l1compat.so" ]]; then
echo "add LD $LIBDIR/libv4l/v4l1compat.so"
export LD_PRELOAD="${LD_PRELOAD:+$LD_PRELOAD:}$LIBDIR/libv4l/v4l1compat.so"
fi

if [[ -e "$LIBDIR2/libv4l/v4l2convert.so" ]]; then
echo "add LD $LIBDIR2/libv4l/v4l2convert.so"
export LD_PRELOAD="${LD_PRELOAD:+$LD_PRELOAD:}$LIBDIR2/libv4l/v4l2convert.so"
fi

if [[ -e "$LIBDIR2/libv4l/v4l1compat.so" ]]; then
echo "add LD $LIBDIR2/libv4l/v4l1compat.so"
export LD_PRELOAD="${LD_PRELOAD:+$LD_PRELOAD:}$LIBDIR2/libv4l/v4l1compat.so"
fi

zoom



Оффлайн robinzoid

  • Завсегдатай
  • *
  • Сообщений: 71
    • Email
Ну не, это для меня высшая математика.
Максимум на что я способен

[konst@comp-pentium-dual-b468b1 ~]$ su -
Password:
[root@comp-pentium-dual-b468b1 ~]# !/bin/bash
-bash: !/bin/bash: event not found
[root@comp-pentium-dual-b468b1 ~]# /bin/bash
[root@comp-pentium-dual-b468b1 ~]#

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 096
    • Домашняя страница
    • Email
А так:
LD_PRELOAD=/usr/lib64/libv4l/v4l1compat.so skypeforlinuxили
LD_PRELOAD=/usr/lib64/libv4l/v4l2convert.so skypeforlinux
Андрей Черепанов (cas@)

Оффлайн robinzoid

  • Завсегдатай
  • *
  • Сообщений: 71
    • Email
Так никак.

[konst@comp-pentium-dual-b468b1 ~]$ su -
Password:
[root@comp-pentium-dual-b468b1 ~]# LD_PRELOAD=/usr/lib64/libv4l/v4l1compat.so skypeforlinux
-bash: skypeforlinux: команда не найдена
[root@comp-pentium-dual-b468b1 ~]# LD_PRELOAD=/usr/lib64/libv4l/v4l2convert.so skypeforlinux
-bash: skypeforlinux: команда не найдена
[root@comp-pentium-dual-b468b1 ~]#

Хотя сам скайп в менюшке есть. Я уже не помню как я его добыл, кажется с Centos но микрофон в ём работает.