LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


expert:retourner_image_webcam

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

expert:retourner_image_webcam [2018/11/17 13:53] (Version actuelle)
Ligne 1: Ligne 1:
 +=====Remettre l'​image de sa webcam à l'​endroit sur Ubuntu ou Debian=====
  
 +Certains fabricants d'​ordinateurs portables ont l'​idée saugrenue de monter les caméras embarquées dans l'​encadrement de l'​écran à l'​envers. Cela se caractérise par une image inversée lorsque vous utilisez un programme de conversation vidéo comme [[internet:​pidgin:​|Pidgin]],​ [[internet:​skype:​|Skype]] ou Google-talk.\\
 +Ce tutoriel fonctionne sur [[ubuntu:​ubuntu:​|Ubuntu]] et dérivées ([K-X-L-ED]Ubuntu),​ probablement aussi sur [[deb:​linux_mint:​|Linux Mint]] et autres distributions très proches d'​Ubuntu.\\
 +Avant de vous lancer, vérifiez bien que le programme que vous utilisez ne possède pas une option pour retourner l'​image dans ses préférences,​ la solution la plus simple étant toujours la meilleure. Un exemple avec [[kopete:​kopete:​|Kopete]] :\\
 +
 +{{ :​expert:​kopete_config1.jpeg?​direct&​300 |}}
 +\\
 +
 +<WRAP info>Un signe **$** précède les commandes qui ne nécessitent pas de droits administrateur ; un signe **#** précède celles qui nécessitent des droits administrateur (ces signes ne font <color red>​PAS</​color>​ partie des commandes). Les lignes qui ne commencent pas par un signe $ ou # correspondent au résultat de la commande précédente. Sur Ubuntu et dérivées ont utilise [[commande:​su_sudo:​|sudo]] pour obtenir les droits administrateurs.</​WRAP>​
 +\\
 +
 +====Utiliser l'​option "​vflip"​====
 +
 +===Identifer le module en charge de la webcam===
 +
 +La première chose à faire est de déterminer quel module pilote votre webcamera, pour ça vous pouvez utiliser **udevadm**,​ couplé avec [[commande:​grep_egrep:​|grep]] pour filtrer le résultat :\\
 +
 +<​code>#​ udevadm info --query=all --name=/​dev/​video0 | grep DRIVER
 +
 +E: ID_USB_DRIVER=stkwebcam
 +</​code>​
 +
 +Ici le module en charge de la webcam est "​stkwebcam"​.\\
 +
 +<wrap info>​Nous utilisons le module "​stkwebcam"​ à titre d'​exemple,​ remplacez par le module qui est adapté à votre matériel</​wrap>​
 +
 +Vous pouvez également regarder quel module est chargé et utilisé par "​videodev"​ avec [[commande:​modules:​|lsmod]] :\\
 +
 +<​code>​$ lsmod | grep videodev
 +
 +videodev ​     58084  1 stkwebcam
 +</​code>​
 +
 +===Le module supporte-t-il "​vflip"​ ?===
 +
 +Certains pilotes acceptent une option **vflip** permettant de définir le sens vertical de l'​image lors du chargement du module. Pour savoir si le module qui pilote votre camera le supporte on peut utiliser [[commande:​modules:​|modinfo]] :\\
 +
 +<​code>​$ modinfo stkwebcam | grep vflip
 +
 +parm:           ​vflip:​Vertical image flip. Defaults to 1 (bool)
 +</​code>​
 +
 +Dans le cas présent l'​option est supportée, on peut la tester facilement en déchargeant le module, puis en le rechargeant en forçant une valeur différente de celle par défaut pour l'​option "​vflip"​ avec [[commande:​modules:​|modprobe]] :\\
 +
 +<​code>#​ modprobe -r stkwebcam
 +
 +# modprobe stkwebcam vflip=1
 +</​code>​
 +
 +Ensuite testez votre webcaméra avec un programme comme "​[[graphisme:​cheese:​]]",​ "​[[internet:​pidgin:​]]",​ "​[[kopete:​kopete]]"​ ou autre. Une fois la bonne valeur trouvée nous allons rendre permanent les changements.
 +
 +===Rendre le changement permanent===
 +
 +Deux façons sont possibles, au choix :\\
 +
 +  * en éditant le fichier **/​etc/​modules** comme suit :\\
 +
 +<​code>​$ echo -e "​stkwebcam vflip=1\n"​ | sudo tee -a /​etc/​modules</​code>​
 +
 +  * en éditant (ou en créant) un fichier **/​etc/​modprobe.d/​options.conf** :\\
 +
 +<​code>​$ echo -e "​options stkwebcam vflip=1\n"​ | sudo tee -a /​etc/​modprobe.d/​options.conf</​code>​
 +
 +Maintenant à chaque redémarrage le module sera chargé avec l'​option adaptée.
 +
 +
 +====Le module n'a pas d'​option "​vflip"​====
 +
 +
 +===Utiliser v4l2===
 +
 +Certains modules parmi les plus utilisés (gspca, [[materiel:​webcam:​uvcvideo]]) ne supportent pas l'​option "​vflip",​ heureusement il reste un espoir (ouf !). Il est possible d'​exporter une valeur pour l'​orientation verticale de l'​image à travers la librairie qui gère l’acquisition vidéo sous Linux **v4l2**.\\
 +
 +Pour tester cette méthode ouvrez une console (terminal, ligne de commande) et tapez :\\
 +
 +<​code>​$ export LIBV4LCONTROL_FLAGS=3</​code>​
 +
 +Ensuite lancez un programme de test __depuis la même fenêtre de console__, simplement en tapant le nom du programme, un exemple avec [[materiel:​webcam:​guvcview]] :\\
 +
 +<​code>​$ guvcview</​code>​
 +
 +Pas trop dur ? Vous devriez voir immédiatement l'​effet,​ et vous pouvez revenir à la valeur initiale en remplaçant le "​3"​ par "​1"​ dans la commande d'​export.\\
 +
 +Pour rendre le changement effectif à chaque lancement de d'une application vous pouvez modifier le lanceur dans votre menu application et remplacer la commande de lancement par la formule magique suivante :\\
 +
 +<​file>​sh -c '​export LIBV4LCONTROL_FLAGS=3 && guvcview'</​file>​
 +
 +Un exemple en image ci-dessous avec l'​éditeur de menu de [[kde:​kde4:​|KDE]] :\\
 +
 +{{ :​expert:​guvcflip1.jpeg?​direct&​300 |}}
 +
 +Si vous voulez une solution indépendante du menu de lancement, créez un script et placez le là où vous voulez, par exemple /​usr/​local/​bin. Le script pourra avoir le contenu suivant :\\
 +
 +<​file>#​! /bin/sh -
 +
 +# Ce script est à utiliser comme lanceur de guvcview
 +# il corrige un problème d'​image inversée avec une
 +# webcam compatible v4l2
 +
 +export LIBV4LCONTROL_FLAGS=3 ​ && /​usr/​bin/​guvcview
 +
 +exit 0
 +</​file>​
 +
 +Imaginons que votre script se nomme "​camera_flip.sh"​ et soit placé dans /​usr/​local/​bin,​ vous le rendrez exécutable avec :\\
 +
 +<​code>#​ chmod +x /​usr/​local/​bin/​camera_flip.sh</​code>​
 +
 +Ensuite il ne vous reste qu'à indiquer le chemin vers le script pour lancer votre programme, soit depuis une console ou en modifiant un lanceur existant.
 +
 +
 +====Utiliser le dépôt PPA de libv4l====
 +
 +Ubuntu possède un [[https://​launchpad.net/​~libv4l/​+archive/​ppa|dépôt de développement pour la librairie libv4l]] qui prend parfois en compte les "​défauts"​ de certains matériels, comme les webcams montées à l'​envers. Pour l'​utiliser ajoutez le dépôt "​PPA"​ comme suit :\\
 +
 +<​code>#​ apt-add-repository ppa:​libv4l/​ppa</​code>​
 +
 +Si votre problème n'est pas corrigé par ces versions récentes de libv4l, vous devrez utiliser les solutions proposées plus haut. Ce dépôt est toutefois nécessaire pour ce qui suit.\\
 +
 +====Cas particuliers : Skype et Google chat Video====
 +
 +Ces logiciels non-libres posent des problèmes supplémentaires car ils n'​utilisent pas nativement "​v4l2",​ pour bénéficier du retournement de l'​image vous devrez installer le dépôt PPA de libv4l présenté plus haut, et modifier une variable d'​environnement au lancement du programme (pour skype) ou agir sur le navigateur web utilisé pour les conversations video (Google chat). Là il y a deux cas selon que vous utilisiez un système en 32 bits (i386 ou x86), ou un système 64 bits (amd64 ou x86-64).\\
 +
 +===Pour Skype===
 +
 +  * Pour un **système 32 bits** le script de lancement aura le contenu suivant :\\
 +
 +<​file>#​! /bin/sh -
 +
 +# Ce script est à utiliser comme lanceur de Skype
 +# il corrige un problème d'​image inversée avec une
 +# webcam compatible libv4l.
 +# Nécessite le dépôt PPA libv4l
 +# apt-add-repository ppa:​libv4l/​ppa
 +
 +export LD_PRELOAD=/​usr/​lib/​libv4l/​v4l1compat.so skype
 +export LIBV4LCONTROL_FLAGS=3
 +
 +exec `which skype`
 +
 +exit 0
 +</​file>​
 +
 +  * Pour un **système 64 bits** :\\
 +
 +<​file>#​! /bin/sh -
 +
 +# Ce script est à utiliser comme lanceur de Skype
 +# il corrige un problème d'​image inversée avec une
 +# webcam compatible libv4l
 +
 +export LD_PRELOAD=/​usr/​lib/​i386-linux-gnu/​libv4l/​v4l1compat.so skype
 +export LIBV4LCONTROL_FLAGS=3
 +
 +exec `which skype`
 +
 +exit 0
 +</​file>​
 +
 +Il vous reste à placer ce script où vous voulez, le rendre exécutable avec un coup de "chmod +x", et modifier vos lanceurs en indiquant le chemin vers le script à la place du nom du programme comme commande de lancement.\\
 +
 +===Pour Google-Talk===
 +
 +Le plug-in Google-Talk qui permet d'​effectuer des conversations audio et video à travers un navigateur Internet (et un compte gmail), ça peut être [[internet:​firefox:​|Firefox]],​ [[internet:​chromium:​|Chromium]],​ ou n'​importe quel autre, nécessite de "​retourner"​ l'​image de la webcam au lancement du navigateur. En pratique il vous suffira de remplacer la commande de lancement du navigateur internet (ici firefox) par :\\
 +
 +<​code>​$ sh -c '​export LIBV4LCONTROL_FLAGS=3 && firefox'</​code>​
 +
 +Vous pouvez remplacer "​firefox"​ par [[internet:​chromium:​|"​chromium"​]] (ou "​chromium-browser"​ sur (K)Ubuntu), n'​oubliez pas que Firefox se nomme [[internet:​iceweasel:​|"​iceweasel"​]] sur Debian.\\ ​
 +
 +-------------
 +
 +[[expert:​|Retour à la page Expert]]
 +\\
 +[[materiel:​|Retour à la page Matériel]]
 +\\
 +[[ubuntu:​ubuntu:​|Retour à la page Ubuntu]]
expert/retourner_image_webcam.txt · Dernière modification: 2018/11/17 13:53 (modification externe)