Contenu | Rechercher | Menus

Le wiki est accessible aux utilisateurs relativement débutants mais les explications (pas toujours claires) nécessitent d'avoir un peu plus d'experience. Si vous avez le m^eme matériel que moi, aucun probléme, il suffit de suivre les instructions de modifications


EasyCAP et autre materiel em28xx générique

Particularité

Ce peripherique d'acquisition vidéo ne dispose pas de tuner, ce qui n'est malheureusement pas commun et les aides à l'installation sont plus rares.

Compatibilité

Le matériel qui a donné lieu à cette "bidouille" est le suivant : http://www.szforwardvideo.com/en/Skins009/products/show.asp?ProID=145&SearchMaxID=12

ID fabricant: 0xeb1a et ID produit: 0x2861

Il semble que l'ID fabricant "0xeb1a" désigne les produits génériques et l' ID produit "0x2861", le type de chip (dans mon cas c'est un em2861). Je pense que la méthode qui suit s'applique à n'importe quel peripherique générique em28xx.

NB: des versions d'easyCAP DC60 (plus recente ?) comportent un chipset bridge de type syntek1160. Aucun module kernel n'est pour l'instant disponible pour cette version de bridge. un projet est en cours : http://syntekdriver.sourceforge.net/

Pré-requis

Installation

C'est la méthode "classique" d'installation des peripheriques vidéos USB sauf qu'il vas faloir modifier la source du pilote avant de compiler.

Téléchargement
sudo apt-get install mercurial
cd ~/
hg clone http://mcentral.de/hg/~mrec/v4l-dvb-kernel/
Modification de la source

Edition du fichier em28xx-cards.c:

gedit ~/v4l-dvb-kernel/linux/drivers/media/video/em28xx/em28xx-cards.c

Lignes 1934 et suivantes, il y a la liste des peripheriques en fonction des ID fabricant et produit. Dans mon cas, la ligne interessante est:

{ USB_DEVICE(0xeb1a, 0x2861), .driver_info = EM2861_BOARD_GENERIC },

On retrouve ID fabricant: 0xeb1a et ID produit: 0x2861. Il faut que je modifie les propriétés de EM2861_BOARD_GENERIC : ça se trouve ligne 61 :

[EM2861_BOARD_GENERIC] = {
		.name         = "Generic EM2861 video grabber",
	},

Si on compare avec les autres cartes, on constate qu'il n'y a aucun descriptif du produit, le pilote ne sait pas ce que la carte est capable de faire et ne vas rien prendre en charge. On specifie donc les caracteristiques de notre péripherique :

[EM2861_BOARD_GENERIC] = {
		.name         = "Generic EM2861 video grabber",
		.vchannels     = 2,
		.norm          = V4L2_STD_PAL,
		.decoder       = EM28XX_SAA7113,
		.has_tuner     = 0,
		.dev_modes      = EM28XX_VIDEO,
		.input           = {{
			.type     = EM28XX_VMUX_COMPOSITE1,
			.vmux     = SAA7115_COMPOSITE0,
			.amux     = 1,
		},{
			.type     = EM28XX_VMUX_SVIDEO,
			.vmux     = SAA7115_SVIDEO3,
			.amux     = 1,
		}},
		.tvnorms	= {
			{
				.name = "NTSC",
				.id = V4L2_STD_NTSC,
		},{
				.name = "PAL",
				.id = V4L2_STD_PAL,
		}},
	},

Voila ma configuration. Je l'ai faite en copiant/modifiant les autres configurations présentes dans le fichier. Le décodeur est un SAA7113 (un "dmesg" aprés branchement de la clé avec le pilote em28xx d'origine detecte ce décodeur). Je peux avoir l'image depuis l'entré composite, en PAL et NTSC. Je n'ai rien pour tester l'entré svidéo donc les propositions de modifications sont les bienvenues. En ce qui concerne le son, il est actif mais de trés mauvaise qualité, là aussi si vous avez mieux…

Une fois le fichier modifié, enregistrez le.

Compilation
cd ~/v4l-dvb-kernel/
make
sudo make install

Utilisation

Au cas où une autre version d'em28xx soit déjà chargée,

sudo rmmod em28xx

Ensuite, il suffit de blancher l' EasyCAP. Une petite verification s'impose:

cortex@ubuntu:~$dmesg | grep em28xx
...
V4L2 device registered as /dev/video0
...

Cette ligne permet de savoir quel "device" est utilisé.

Maintenant ce n'est plus qu'un problème logiciel. Il faut lire la vidéo à partir de "video for linux 2" (v4l2). J'utilise mplayer (disponible dans les dépôts APT universe et multiverse).

mplayer tv:// -tv driver=v4l2


Le contenu de ce wiki est sous licence : CC BY-SA v3.0