Recette de madame la moule : Faire marcher une PCTV USB2 sous Linux
Par Matt le dimanche 04 décembre 05, 21:54 - Tech - Lien permanent
Cette recette est réservée aux cuistots
expérimentés. A castor vaillant, rien est
impossible.
Suite à mes précédents posts
concernant
le support
de la carte PCTV USB2 sous Linux, que vous pouvez trouver ici
et
là,
j'ai tout de même tenté
à nouveau l'expérience de
faire fonctionner ce matériel sous ma SuSE 9.3. Etant
arrivé à quelque chose de potable, je vous livre
ici la
recette pour la faire fonctionner sur votre Linux.
1. Les ingrédients
Pouvoir enregistrer la télévision c'est bien aussi. Voici donc la marche à suivre pour pouvoir capturer des vidéos.
Attention, cette explication ne vous permez pas vraiment d'enregistrer comme vous le voulez. Vous ne pourrez enregistrer que la dernière chaîne que vous regardiez avec TVTime.
Allez, c'est parti, roulez jeunesse :
- Lancez Sox comme on l'a vu précédement
- Lancez TVTime, et choisissez la chaîne que vous souhaitez enregistrer
- Tuez TVTime en faisant un Ctrl+C dans la console où vous avez tapé la commande. Normalement vous devriez toujours entendre la partie audio. Apparement cela est dû au fait que TVTime, lorsqu'il est fermé normalement, exécute une commande de désactivation de la capture du son sur la PCTV USB2. Justement on désire avoir du son avec la vidéo.
- Tuez Sox
- Tapez cette commande :
mencoder -v tv:// -tv driver=v4l2:device=/dev/video0:outfmt=i420:width=640:height=480:forceaudio:adevice=/dev/dsp1:norm=secam -ovc lavc -lavcopts acodec=mp3:abitrate=112:vbitrate=950:vhq -oac lavc -vf lavcdeint -o video.avi
Revenons rapidement en détail sur cette dernière ligne :
- -tv driver=v4l2:device=/dev/video0:outfmt=i420:width=640:height=480:forceaudio:adevice=/dev/dsp1:norm=secam spécifie les différentes options qui seront utilisées pour la capture du flux provenant de votre PCTV USB2
- -ovc lavc -lavcopts acodec=mp3:abitrate=112:vbitrate=950:vhq spécifie l'encodeur, ainsi que les options qui seront utilisées
- -oac lavc -vf lavcdeint -o video.avi des trucs que j'ai la flemme d'expliquer
Voilà! A vous de trouver les réglages qui vous conviennent.
Vous pouvez aller mettre un marcel.
Interlude histoire courte :
Driiing Driing (je fait super bien la sonnerie de téléphone)
"Allo?"
"Alloo? Ouiii, bonjour ici Mlle Machine de chez le Neuf...blablabla... est-ce que vous êtes intéressé par notre offre?"
"Oui, vous m'en mettrez une douzaine de noeufs, et un kilo de patates"
"Tûûûûtttt tûûûûtt tûûûûttt..."
1. Les ingrédients
- Les sources du kernel que vous utilisez (je ne sais pas si les kernel-headers suffisent)
- Les sources du driver de développement sur le CVS de LinuxTV.org
- Sox
- TVTIME
- Une patte de lapin ou un fer à cheval (les trefles à 4 feuilles marchent aussi)
- Si vous n'avez pas les sources du kernel de Linux, je vous conseille de les installer immédiatement. De toute façon, cela prouve que vous n'avez encore jamais mis les mains dans la graisse. Ah vous de trouver comment qu'on fait pour installer tout ça.
- Pour récupérer les sources du driver de développement de la PCTV USB2 voici la marche à suivre :
- cvs -d :pserver:anonymous@cvs.linuxtv.org:/cvs/video4linux login
- cvs -d :pserver:anonymous@cvs.linuxtv.org:/cvs/video4linux co -P v4l-kernel
- Sox est un utilitaire permettant de manipuler des fichiers audios à partir de la ligne de commande. Il permet également de manipuler des périphériques. Nous verrons plus tard à quoi il peut servir. Non, pas maintenant! C'est pas possible d'être aussi pressé.
- TVTIME est un logiciel permettant de regarder la télé sur son PC. Sa principale killer feature est une image impécable. Son principal défaut est l'impossibilité d'enregistrer des émissions. C'est le seul soft qui semble marcher pour l'instant pour la visualisation de la TV avec une PCTV USB2 sous Linux. J'exposerais plus bas un moyen permettant d'enregistrer grâce au logiciel Mencoder, celui-ci faisant partie du projet Mplayer. Enfin bref, j'espère que vous avez installé tout ceci, sinon bonjour la déception.
- Ne machouillez pas votre patte de lapin, encore moins le fer à cheval. Cela diminuera le facteur chance dans la réussite de cette recette. Et puis vous allez vous abimer les dents.
- Touiller les drivers pour votre machine.
Voici les commandes à éxécuter pour que votre Linux puisse reconnaître votre PCTV USB2 lorsque celle-ci est connectée à votre PC :
1. cd v4l-kernel (dans le repétoire où vous avez tapé les commandes cvs)
2. make
3. make install
4. Branchez votre périphérique.
5. Si votre kernel n'est pas très ancien (la branche 2.6 par exemple), vous devriez avoir la sortie de lsmod qui ressemble à ça :

Si rien n'a été détecté, c'est donc que votre distibution n'est pas très récente. Donc vous êtes sous Debian :P... (oui je sais, il y a les dépôts unstable. Ne vous fâchez pas pour si peu. :)
- Roullage des drivers sous les aisselles
Comme les drivers sont encore en développement, l'autodétection votre PCTV USB2 sous votre Linux n'est que partielle. Il faut donc configurer ceux-ci selon notre version du tuner.
Voici donc les lignes qu'il faut ajouter à votre fichier modprobe.conf (que vous trouverez dans le répertoire /etc) :
- alias char-major-81 videodev
- alias char-major-81-0 tveeprom
- alias char-major-81-1 em28xx
- options em28xx tuner=38 (c'est la version du tuner pour la zone européenne , je crois)
- options tuner secam=l (notre norme d'image est SECAM-L)
- options tda9887 port2=0 (nécessaire mais je n'ai pas vraiment compris pourquoi)
Le périphérique audio de la PCTV USB2 est reconnu comme étant un périphérique audio supplémentaire sous Linux. Normalement, grâce à l'auto-détection du matériel, vous devriez voir apparaître un module snd_usb_audio dans votre liste de modules chargés (lsmod | grep snd_usb_audio devrait vous donner quelque chose). Toutefois, il manque un paramètre au chargement de ce module. En effet, avec le chargement par défaut, la capture du son en même temps que la vidéo perturbe énormémént l'image. Je pense qu'il faut ajouter ces lignes à votre modprobe.conf :
- alias snd-card-1 snd-usb-audio
- option snd-usb-audio enable=1 index=1 nrpacks=10 (l'option nécessaire est en rouge)
Voila! A partir de ce moment vous n'aurez plus à mettre les mains dans le moteur. Vous pouvez donc aller vous chercher une bière, l'état d'ébriété n'influant que peu fortement le reste de la marche à suivre.
- Du son dans vos SOXquettes.
La télé sans le son, ça ne sert à rin (oui, oui, rin). A moins que vous ne soyez sourd, peut-être... Nous allons donc voir à quoi Sox va nous aider. Comme le périphérique de son la PCTV USB2 est détécté comme un périphérique de son supplémentaire sous Linux, le flux de données n'est pas transmis d'un périphérique à l'autre. Il faut donc rediriger le flux vers la sortie audio de votre carte principale. Voici donc la commande à taper dans une console pour pouvoir entendre quelque :
- sox -r 86000 -t ossdsp /dev/dsp1 -t ossdsp /dev/dsp
Bien sûr, cela suppose que le périphérique audio de votre carte TV soit reconnu comme étant /dev/dsp1. Sinon, ben...tant pis.
- C'est l'heure de la soupe
télévisuelle.
Comme nous avons le son, il nous faut maintenant avoir la vidéo. Pour cela, il faut utiliser le logiciel TVTime, car apparement aucun autre ne semble marcher avec ce type de périphérique.
Voici donc la ligne de commande pour lancer tvtime la première fois :
- tvtime --norm=SECAM --frequencies=france
Maintenant une succession de manipulations sont nécessaires pour scanner les chaînes de télévision :
- Clic droit dans la fenêtre de TVTime pour avoir accès au menu de configuration
- Choisissez Channel Management
- Cliquez deux fois sur Disable signal detection . Cela permet d'envoyer une commande au périphérique qui je pense permet d'activer physiquement la detection du signal au moment du scan des chaînes.
- Embrassez votre patte de lapin et cliquez sur Scan all channels for signal. Normalement les chaînes devraient être détectées (peut-être en manquera-t'il quelques-unes pour les personnes disposant du câble analogique)
- Quittez TVTime (proprement hein, pas de Control+C)
- Relancez TVTime en tapant juste la commande tvtime
Normalement vous devriez avoir quelque chose qui ressemble à ça :

Si vous n'avez pas ça, c'est que vous ne regardez pas la même chaîne. Si la fenêtre de TVTime reste désespérément bleue comme le ciel azuré, je vous conseille d'aller faire un tour sur le wiki du projet video4linux, et notamment la mailing list.
Pouvoir enregistrer la télévision c'est bien aussi. Voici donc la marche à suivre pour pouvoir capturer des vidéos.
Attention, cette explication ne vous permez pas vraiment d'enregistrer comme vous le voulez. Vous ne pourrez enregistrer que la dernière chaîne que vous regardiez avec TVTime.
Allez, c'est parti, roulez jeunesse :
- Lancez Sox comme on l'a vu précédement
- Lancez TVTime, et choisissez la chaîne que vous souhaitez enregistrer
- Tuez TVTime en faisant un Ctrl+C dans la console où vous avez tapé la commande. Normalement vous devriez toujours entendre la partie audio. Apparement cela est dû au fait que TVTime, lorsqu'il est fermé normalement, exécute une commande de désactivation de la capture du son sur la PCTV USB2. Justement on désire avoir du son avec la vidéo.
- Tuez Sox
- Tapez cette commande :
mencoder -v tv:// -tv driver=v4l2:device=/dev/video0:outfmt=i420:width=640:height=480:forceaudio:adevice=/dev/dsp1:norm=secam -ovc lavc -lavcopts acodec=mp3:abitrate=112:vbitrate=950:vhq -oac lavc -vf lavcdeint -o video.avi
Revenons rapidement en détail sur cette dernière ligne :
- -tv driver=v4l2:device=/dev/video0:outfmt=i420:width=640:height=480:forceaudio:adevice=/dev/dsp1:norm=secam spécifie les différentes options qui seront utilisées pour la capture du flux provenant de votre PCTV USB2
- -ovc lavc -lavcopts acodec=mp3:abitrate=112:vbitrate=950:vhq spécifie l'encodeur, ainsi que les options qui seront utilisées
- -oac lavc -vf lavcdeint -o video.avi des trucs que j'ai la flemme d'expliquer
Voilà! A vous de trouver les réglages qui vous conviennent.
Vous pouvez aller mettre un marcel.
Interlude histoire courte :
Driiing Driing (je fait super bien la sonnerie de téléphone)
"Allo?"
"Alloo? Ouiii, bonjour ici Mlle Machine de chez le Neuf...blablabla... est-ce que vous êtes intéressé par notre offre?"
"Oui, vous m'en mettrez une douzaine de noeufs, et un kilo de patates"
"Tûûûûtttt tûûûûtt tûûûûttt..."
Commentaires
Tout simplement génial. écris un bouquin matt, je te promets que je l'achète :D
Ah! J'ai laissé des fautes d'orthographe et de grammaire. Tant pis je corrigerais plus tard, là j'ai la flemme...
Huhu, merci :)
Un grand merci au groupe video4linux
L'acquisition vidéo est nickel je l'utilise dans Puredata, je pense avoir à modifier des petites choses
Sinon l'installation sans probleme avec les sources du kernel compilé fourni avec la Mandriva
kernel-source-2.6-2.6.12-12mdk dans le v4l-dvb comme precisé dans le cvs
Reboot, le reste est monté tout seul grace à 'haldaemon' qui est plutot efficace
je viens de tester avec "succès" .. Sauf que je n'arrives qu'à trouver qu'une seule chaine et de mauvaise qualité :(
super!
j'ai l'image mais pas de son malheureusement... quelqu'un peut m'aider ?
Désolé, je n'ai pas le temps. Je te conseille d'aller faire un tour sur la mailing de V4L : marc.theaimsgroup.com/?l=...
Génial et Merci... Ca marche au poil....
Mais vu que faut quand meme pas se reposer sur ses lauriers :p; est ce que tu as reussi à faire fonctionner la télécommande ????
Ben, je m'en sers plus ces derniers temps, donc non, mais tu peux t'amuser à essayer de la faire fonctionner. Il faut passer assez souvent sur la mailing list pour être au courant des derniers ajouts.
Vi, c'est tres amusant comme jeu :D
Bon, pour l'instant j ai essayé qu avec LIRC, mais les recepteurs infrarouge par le biais d'un port usb, c'est pas encore ça... Je creuse... Si j'y arrive, je fais remonter l'info ;)
(I can read French, but not write, sorry)
Congrats for the How-To, it is very nice. Under Debian (3.1 Sarge testing) everything is detected automatically, so the only command I had to run was Sox (sox -r 86000 -t ossdsp /dev/dsp1 -t ossdsp /dev/dsp) to enable the sound. Not even the module configuration was necessary.
Cheers!
P.S. I was a Suse 9.3 user myself, but decided to change to Debian since Suse configuration becomes awkward when you try to go beyond Yast graphical interface. Anyway, either with SuSE or Debian, everything is fine now for PCTV owners.
Salut!
Est-ce qqun a réussi à faire marcher la télécommande pour la PCTV USB2? Dites-moi comment faire, svp.
Pour la TV et le son ça marche très bien avec les sources de v4l.
Merci d'avance
A+
Bonjour,
merci pour ce tuto, mon pctv marche :) Pour aller plus loin je vais vous expliquer comment vous servir de la télécommande ;)
Tout d'abord, montons le module qui va bien: modprobe ir_kbd_i2c
J'ai rajouté ce module dans /etc/modules pour qu'il soit chargé au démarrage.
Vérifions que tout se passe bien: dmesg
input: i2c IR (EM28XX Pinnacle PCTV) as /class/input/input5
ir-kbd-i2c: i2c IR (EM28XX Pinnacle PCTV) detected at i2c-0/0-0047/ir0 [em28xx #0]
Et voilà c'est fini ;) En fait le récepteur infra rouge est détecté en natif par l'OS. Pas besoin de lirc pour le faire fonctionner. Il s'agit donc d'un périphérique comme le clavier. Pour configurer les différentes touches j'utilise xbindkeys.
Allez pour se faire plaisir vérifions que le périphérique est bien là: cat /proc/bus/input/devices
I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="i2c IR (EM28XX Pinnacle PCTV)"
P: Phys=i2c-0/0-0047/ir0
S: Sysfs=/class/input/input5
H: Handlers=kbd event5
B: EV=100003
B: KEY=c0014 102040 0 0 0 4 8000 180 80000801 9e1680 0 40 2800ffc
Merci beaucoup pour ce splendide tuto...Je l'ai essayé à la maison pour
- mon pctv usb2 50 xawtv sur un SONY VAIO PCFR215E
- mon dazzle dvc 90 pour tvtime sur un SONY VAIO VGN-FS315H
De la balle pour regarder les chaines avec ma freebox en entrée composite-1
L'enregistrement se fait par par mencoder en utilisant
mencoder -v tv:// -tv driver=v4l2:device=/dev/video0:outfmt=i420:width=640:height=480:forceaudio:adevice=/dev/dsp1:norm=pal -ovc lavc -oac mp3lame -vf lavcdeint -endpos 1550 -o file.avi
crontab me permet de programmer mon VGN pour l'enregistrement de manière nickel
Merci et encore mille merci pour ton tuto!
IT IS DE LA BALLE!
A more up-to-date guide
http://www.linuxtv.org/v4lwiki/inde...
Cheers!
New link to the guide
http://www.linuxtv.org/wiki/index.p...
I've upgraded to Debian lenny (5.0), and now mencoder doesn't record sound. Do you have this problem too? Thanks.
Hi,
I've not used it for three years, so i don't know what's happening. Anyway, my only hint i can give you is to check if the second soundcard (the one that's associated with sound of the PCTV) is correctly detected. Probably it's inverted with your real soundcard. You can try also to have sox running and try to capture sound from the real soundcard.
Hello, i believe that i noticed you visited my web site thus i got here to go back the choose?.I am trying to to find things to enhance my website!I suppose its good enough to make use of some of your ideas!!
Great. My thanks for doing such a good job. I will return here to see what's new and recommend my neighbors about you.
Great website. Thank you for doing such a good job. I'll definitely check again to find out more and inform my acquaintenances about your site.
Good reading. Thank a lot for posting that. I will return to your site to read more and inform my people about this website.
Love it. Thank a lot for posting this. I'll definitely come here to see what's new and inform my people about it.