Перевернуто изображение камеры linux

Как исправить перевёрнутый ноутбук с веб-камеры видео

Я использую Ubuntu 16.04 на ноутбуке ASUS N61JQ. Когда я использую видеозвонок с Viber или Facebook (через Chrome), моя веб-камера передает перевернутое изображение. Мне интересно, как это исправить. Поскольку у двух отдельных приложений (Viber и Chrome) есть это, я думаю, что это не определенное приложение.

В поисках исправления в интернете я обнаружил много случаев, в которых даются инструкции, как это исправить для скайпа. Я бегал

sudo apt-add-repository ppa:libv4l/stable sudo apt-get update sudo apt-get upgrade 

который установлен libv4l-0 libv4lconvert0 и проверено, но не исправить.

Я не следил за этими решениями (например, здесь), потому что viber и chrome не являются 32-битными приложениями. Я проверил, что viber действительно 64-битный с помощью метода, представленного здесь.

Я включаю строки файлов, которые, как я ожидаю, я должен изменить, если я собираюсь сделать что-то похожее на исправление Skype:

$ cat /usr/share/applications/viber.desktop | grep Exec Exec=/opt/viber/Viber 
$ cat /usr/share/applications/google-chrome.desktop | grep Exec Exec=/usr/bin/google-chrome-stable %U Exec=/usr/bin/google-chrome-stable Exec=/usr/bin/google-chrome-stable --incognito 

Я не уверен, как изменить эти строки и где найти пакет libv4l для 64-битных систем, чтобы реализовать обходной путь, который заставит viber и chrome работать должным образом.

В своем стремлении исправить основную проблему я начал с поиска настроек камеры / видео в системных настройках Unity «Поиск на компьютере». Но я ничего не нашел. Я также запускаю:

но я не знаю, что из этого получится. Также после запуска

Я получаю, где-то вдоль огромного выхода:

*-usb:0 description: Video product: USB2.0 UVC 2M WebCam vendor: USB2.0 UVC 2M WebCam physical id: 2 bus info: [email protected]:1.2 version: 2.02 serial: [REMOVED] capabilities: usb-2.00 configuration: driver=uvcvideo maxpower=500mA speed=480Mbit/s 

Я пытался найти драйвер из этого, но ничего не нашел. Например:

$ ll /lib/modules/4.4.0-28-generic/kernel/drivers | grep uvcvideo 

ничего не возвращает Я также запускаю:

$ lsmod | grep uvcvideo uvcvideo 90112 0 videobuf2_vmalloc 16384 1 uvcvideo videobuf2_v4l2 28672 1 uvcvideo videobuf2_core 36864 2 uvcvideo,videobuf2_v4l2 videodev 176128 4 uvcvideo,v4l2_common,videobuf2_core,videobuf2_v4l2 media 24576 2 uvcvideo,videodev 

который (по данным интернета) показывает статус водителей. Не могу интерпретировать это все же.

Где-то должен быть файл драйвера, чтобы я мог его починить, но как мне его найти?

6 ответов

Я продолжал исследовать это и нашел временное решение. Информация из этого ответа также помогла.

Основным отличием здесь является то, что приложения являются 64-битными, поэтому я не мог полностью следовать предыдущим решениям. После установки libv4l Мне нужно было найти подходящий путь для файла сравнения 64-битной версии, чтобы установить LD_PRELOAD переменная. Посмотрев вокруг, я обнаружил, что могу сделать это с:

 $ dpkg -L libv4l-0 | grep compat /usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so 

Этот ответ и ответ Veazer помогли мне обойти эту проблему, изменив файл viber.desktop. Важно, прежде чем вносить изменения, сделайте резервную копию, например:

sudo cp /usr/share/applications/viber.desktop /usr/share/applications/viber.desktop-original 

После этого у нас есть вся информация, необходимая для изменения файла viber.desktop. Нам нужно только изменить одну строку. Следующие изменения решают проблему в Viber:

$ cat /usr/share/applications/viber.desktop | grep Exec Exec=sh -c 'export LIBV4LCONTROL_FLAGS=2 && LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so /opt/viber/Viber' 

Обратите внимание на целое значение 2 для инверсии камеры.

Читайте также:  Linux группы в telegram

Я ожидаю, что тот же подход исправит и хром, но я поработаю над ним позже. Если кто-то не может помочь мне решить основную проблему с драйверами веб-камеры.

$ sudo apt-get update $ sudo apt-get install v4l-utils $ sudo apt-get install v4l2loopback-utils 

3) Распакуйте папку ‘v4l2loopback-master’

4) Скомпилируйте модуль v4l2loopback:

$ sudo modprobe v4l2loopback exclusive_caps=1 

7) Проверьте, включено ли устройство:

$ v4l2-ctl --list-devices Dummy video device (0x0000) (platform:v4l2loopback-000): /dev/video1 USB2.0 UVC 2M WebCam: USB2.0 UV (usb-0000:00:1a.0-1.2): /dev/video0 

8) Скопируйте видео поток с веб-камеры на него через ffmpeg:

$ ffmpeg -f v4l2 -i /dev/video0 -vf "vflip" -f v4l2 /dev/video1 

9) Откройте предпочитаемое вами видео приложение (Skype, Hangouts, Zoom. ) и выберите «Dummy video device»

Вы можете увидеть более подробную информацию о параметрах:

Я использую Debian, и это решение, которое я применил, работает нормально:

  1. Убедитесь, что у вас установлен пакет libv4l-0 (источник:v4l-utils)
  2. Найдите файл: /usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so
    или же /usr/lib/x86_64-linux-gnu/libv4l/v4l2convert.so
  3. Откройте свой терминал и введите ниже:
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so /usr/bin/skypeforlinux 

Он запустит ваш Skype, вы войдете в систему как обычно, и после открытия ваша камера должна быть исправлена.

Это сработало для меня на:

sudo nano /usr/bin/skypeforlinux 

Обновите последнюю строку.

#!/bin/sh SCRIPT=$(readlink -f "$0") USR_DIRECTORY=$(readlink -f $(dirname $SCRIPT)/..) SKYPE_PATH="/usr/share/skypeforlinux/skypeforlinux" SKYPE_LOGS="$HOME/.config/skypeforlinux/logs" mkdir -p $SKYPE_LOGS echo "$SKYPE_PATH" # was this #nohup "$SKYPE_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > "$SKYPE_LOGS/skype-startup.log" 2>&1 & # changed to LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so /usr/share/skypeforlinux/skypeforlinux > "$SKYPE_LOGS/skype-startup.log" 2>&1 & 

Что касается исправления перевёрнутого / перевернутого видео с веб-камеры ноутбука в браузерах на основе Chrome / Chromium — несколько дней назад я обновил ноутбук ASUS P52F до Linux Mint 18 XFCE, который теперь наравне с Ubuntu 16.04.1. Я встречал видео с веб-камеры WebRTC в перевернутом виде на видеовстречах и в Facebook, используя только веб-браузер Chrome. Firefox работает отлично. Сыр также отображает видео правильно.

После некоторого поиска в Google я нашел этот отчет об ошибке. В комментарии 22 вы можете видеть, что 2 года назад было предложено 0001-Use-libv4l2-for-Linux-V4L-grabber.patch, исправляющее поведение Chrome / Chromium. Уже более года libv4l2 добавляется в Chromium, но не поддерживается для Linux. Вы можете увидеть все обсуждение в ветке сообщений об ошибках. Короче говоря, похоже, что они не работают над исправлением этого уже почти год. Тем не менее, есть некрасивый обходной путь.

Вы можете добавить Flip это расширение в Chrome. Это позволяет вам перевернуть видео с веб-камеры или любой другой элемент веб-страницы. Он перевернет его только локально, поэтому людям, с которыми вы общаетесь через Chrome, также необходимо использовать тот же прием. Это не красиво, но работает. ну, вроде; В конце концов, переход на Firefox может быть лучшим и более удобным решением. Ура!

Установите v4l-utils пакет, который содержит v4l2-ctl полезность:

sudo apt-get install v4l-utils 

Затем отредактируйте ваш.profile:

# Flip webcam video v4l2-ctl -c vertical_flip=0 v4l2-ctl -c vertical_flip=1 

(двойная команда является преднамеренной)

Поскольку версия Skype 8 и выше — это в основном веб-приложение, старый трюк с libv4l Библиотека больше не будет работать. Я потерял много часов, чтобы просто узнать, что это больше невозможно.

Так как программного решения не существует, я перешел к аппаратному. Я купил внешнюю веб-камеру. и она работает без нареканий.
Более того: я наконец понял, что встроенная камера в ноутбуках Asus серии K была исключительно низкого качества. Мой внешний ооочень намного лучше. Наконец, через много лет мои звонящие могут видеть меня ясно, а главное: правильно:-)

У меня ноутбук Asus K70IO с Ubuntu 16.04. Я давно столкнулся с этой проблемой.

С помощью LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so я исправил проблему для Skype и MS Teams, но не для Chrome.

Чтобы исправить проблему вертикального переворота в Chrome, я написал короткий сценарий bash, основанный на ответе Люцио Lucio Anibal Criollo Rivera.

Запускаю перед открытием хрома.

#!/bin/bash trap ctrl_c INT function ctrl_c() < sudo mv /dev/video0 /dev/video1 sudo mv /dev/video2 /dev/video0 >sudo modprobe v4l2loopback exclusive_caps=1 sudo mv /dev/video0 /dev/video2 sudo mv /dev/video1 /dev/video0 ffmpeg -f v4l2 -i /dev/video2 -vf "vflip" -f v4l2 /dev/video0 

Он создаст фиктивную веб-камеру и установит ее в качестве камеры по умолчанию (это улучшение, которое окончательно устранило проблему для меня).

Источник

[skype][камера][asus] Перевернутое изображение

Знакомая купила ноутбук Asus K52F. Ясно дело поставил туда Linux Mint LXDE 🙂
Главная проблема — картинка с веб-камеры и в Cheese и в Skype отображается вверх ногами (upside down web-camera).

Два дня бился. Решил поделиться:
1) создаем (или редактируем) под root’ом файл
nano /usr/bin/skype-wrapper с таким текстом:

#!/bin/sh if [ ! -e ~/.Skype/shared.xml ]; then mkdir -p ~/.Skype cp /usr/share/skype/shared.xml ~/.Skype/shared.xml fi LIBV4LCONTROL_FLAGS=1 LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so /usr/bin/skype "$@"

Анологичный файл делаем для cheese:
nano /usr/bin/cheese.sh

#!/bin/sh LIBV4LCONTROL_FLAGS=1 LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so cheese 

Да и вообще лучше добавить в конец /home/user/.profile:

export LIBV4LCONTROL_FLAGS=1 export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so 

В конце не забываем подправить ярлыки в
/usr/share/applications:
— skype.desktop
— cheese.desktop

2) устанавливаем пакет v4l2ucp
Традиционно через synaptic и apt-get не сработало:

dpkg -i v4l2ucp_2.0.2-3_i386.deb

3) запускаем «Пуск»(«Меню»)-«Параметры»-«V4Linux Control Panel»,
включаем галку «Flip vertical».
Ну т.е. типа «перевернуть изображение по вертикали».

Кроме того не работал звук:

lspci 00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06) 

Кроме того, не работали цифровые клавиши и NumLock.
Гугление по numpad дало следующее решение. Правим
/etc/default/console-setup
в следующих строчках:

XKBMODEL="pc105" XKBTYPES="default+numpad(microsoft)" XKBLAYOUT="us,ru" XKBVARIANT="," XKBOPTIONS="grp:ctrl_shift_toggle,numpad:microsoft,grp:lwin_switch,lv3:ralt_switch,grp_led:scroll"

Скажете: «В чем твой вопрос, парень, все же заработало?!».
Вопроса три:
1) как можно заставить v4l2ucp хранить настройку «Flip vertical» глобально, а не для каждого пользователя в его профиле?
2) как можно все-таки ALSA заставить работать на Asus k52f?
3) ДОКОЛЕ.

Источник

Перевернутое изображение web-камеры

Столкнулся с такой проблемой, на некоторых ноутбуках ASUS, в частности серия K, изображение с камер было вверх ногами, во время поиска решения проблемы, оказалось что такие проблемы возникают и у пользователей Lenovo.

Первый такой «сюрприз» был обнаружен на ноутбуке с установленной MS Windows 7, там проблема решилась повторной установкой более свежего драйвера web-камеры. Позже на ноутбук ASUS той же серии, но уже другой модели, установили lubuntu-16.04.1 LTS(ядро 4.4.0-62-generic), и к нашему великому удивлению изображение было вверх ногами 🙂

Во время поиска решения проблемы, выяснили, что начиная с ядра версии 2.6.27 драйверы веб-камер стали включать в ядро, но не в полном объеме, часть функционала находится в библиотеки libv4l, в ней собран функционал отвечающий за преобразование разных форматов представления изображений для разных камер, к одному единому формату.

Так же была попытка перевернуть изображение, через добавления параметров к модулю ядра отвечающего за работу драйвера веб камеры, но что то не помог данный способ. В конце статьи я его опишу, может кому и поможет.

Способ 1 — Переворачиваем камеру в приложениях при помощи библиотеки libv4l

Для примера, переворачивать камеру будем в приложении MPlayer и Skype.

Подключаем репозиторий с актуальной версией библиотеки и обновляемся:

Источник

Оцените статью
Adblock
detector