LinuxPedia

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

Outils pour utilisateurs

Outils du site


expert:retourner_image_webcam
no way to compare when less than two revisions

Différences

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


expert:retourner_image_webcam [2018/11/17 12:53] (Version actuelle) – créée - modification externe 127.0.0.1
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 12:53 de 127.0.0.1