пятница, 4 января 2013 г.

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

На ноутбуках ASUS, при установке стандартных драйверов на вебкамеру, изображение снятое камерой почему-то перевернутое.
Почему?
Ответ прост: китайцы просто не могут различить где у камеры верх, а где низ.
Решение этой проблемы я вижу двумя способами:
1. Собственно, разобрать ноутбук и перевернуть камеру (этот метод нам не подходит, так как нужно разбирать матрицу экрана)
2. Установить нужный драйвер или программу, который умеет переворачивать изображение

На Windows, как правило при скачивании драйвера с официального сайта asus эта проблема решается сама собой.

В этой заметке, я опишу решение данной проблемы для Linux.

1. Убедитесь что ваша камера работает (skype, cheese)
2. Если изображение перевернуто, идем дальше
3. Нам нужна библиотека под названием Video4Linux
3.1 Добавим репозиторий libv4l-0:
# echo -e "\n# libv4l PPA\ndeb http://ppa.launchpad.net/libv4l/ppa/ubuntu `lsb_release -c | awk '{print $2}'` main" | sudo tee -a /etc/apt/sources.list
3.2 Установим нужные ключи:
$ sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com C3FFB4AA
3.3 Обновим список данных:
$ sudo apt-get update
3.4 Установим libv4l-0:
$ sudo apt-get install libv4l-0
4. Создадим скрипт в любом удобном для вас месте (например /home/user/.skype.sh) со следующим содержимым:
#!/bin/sh
LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype

либо
#!/bin/sh
LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l2convert.so skype
Разница в спецификации дистрибутива и версии libv4l.
Этот скрипт будет запускать skype с параметрами vertical flip (отражение по вертикали).
5. Делаем скрипт исполняемым:
$ chmod +x /home/user/.skype.sh
6. Находим ярлык skype и в свойствах ярлыка, в разделе "команда" прописываем путь к исполняемому скрипту:
/home/user/.skype.sh %U
7. Запускаем skype

В дальнейшем скрипт можно преобразовать и для другой программы, но вместо skype, добавить название программы, например:
#!/bin/sh
LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l2convert.so cheese

3 комментария: