le 27/10/2007 à 17:22
Mon patron m'avait demandé de lui trouver un module d'acquisition à brancher sur un portable, en USB. C'était juste pour afficher un signal, donc après une petite recherche je lui ai sorti ceci :
Pas cher (59€), simple à utiliser. Seul problème pour lui, ça fait trop gadget. Il a pris un modèle PCMCIA finalement, mais ça ne m'a pas empêché de vérifier la dispo de drivers linux...
Et c'est le cas, via les drivers V4L (Video For Linux). Bien sür, ces drivers ne sont pas encore officiellement supportés. Ce qui ne m'a pas empêché de faire l'acquisition (!) de ce module.
Pour l'installation, je me suis reporté à cet excellent tutorial. On pouvait croire qu'un an après, on n'eüt plus besoin de se servir des drivers expérimentaux, mais bon, le dépôt "stable" n'est plus disponible, résultat semble-t-il d'une mésentente entre le développeur et les mainteneurs du code V4L. Quoi qu'il en soit, cette version fonctionne correctement. Je tenais aussi à préciser que ceux qui pensent (3 posts plus loin) que ce tuto n'est pas clair devraient comprendre que c'est difficile de faire plus simple. Il suffit de copier/coller les commandes, et ça marche. Comme souvent dans le cas de cette distribution...
Voilà donc le matériel installé. Reste donc à l'exploiter. Comme source, je dispose de la sortie Peritel du décodeur 9TV, qu'on peut aisément convertir en RCA Composite + Stereo.
Dans un premier temps, je comptais utiliser MythTV. Mais j'ai vite changé d'avis. Cet ensemble est certainement idéal pour ceux qui utilisent une carte avec tuner, donc plusieurs chaînes. Dans mon cas c'est inutilement complexe.
En continuant mes recherches, j'ai trouvé cet autre tutorial, non moins excellent que le premier. C'est là que j'ai compris comment marchait l'audio : il faut bien indiquer la bonne carte son, sous peine de ne pas en avoir. Aussi, comme la sortie du décodeur 9TV est en PAL, il n'est pas utile de préciser la norme video en entrée.
Mes premiers tests ont été relativement frustrants, j'avais environ 6fps en acquisition, avec un processeur qui se tournait les pouces. C'était un problème de taille de buffer video. Il m'a été nécessaire de préciser "buffersize=64" à la suite des paramètres d'acquisition. J'ai mis 64 pour avoir trouvé cette valeur sur un site etrangeophone, donc je ne suis pas sür que cette valeur soit optimale, même si ça fonctionne bien.
Deuxième souci, les images qu'on capture sont entrelacées (forcément). Pour éviter cela, on ajoute dans les paramètres du codec video "-vf lavcdeint" (filtre de deinterlace de lavc).
La commande Mencoder utilisée :
mencoder tv:// -tv \
driver=v4l2:width=720:height=576:audiorate=44100:forceaudio:adevice=/dev/dsp2:buffersize=64 \
-o resultat.avi \
-oac pcm \
-ovc lavc -lavcopts vcodec=mjpeg -vf lavcdeint \
-endpos 00:00:20
A noter un dernier problème : au bout d'1h20 d'enregistrement d'un film, le programme a subitement planté. "Error listening to audio, broken pipe". Au même moment, dans les messages du kernel : "Clocksource tsc unstable (delta = 9374583316 ns) ; acpi_pm clocksource has been installed". C'est dü à un changement de fréquence du processeur (SpeedStep). Il faut bien penser à utiliser le module acpi_pm dès le départ (en précisant clocksource=acpi_pm dans la ligne de commande du kernel), pour éviter de planter l'encodeur pour rien.
Le montage de la video ainsi capturée est enfantin grâce à Kino. Le fichier MJPEG est converti automatiquement, même plus besoin de passer par FFMPEG. Et les options d'export sont suffisantes vu la source utilisée.
Au final, la qualité est vraiment convaincante. Pas mal pour une module en plastique rouge à l'allure de jouet.