Chapter 10.  Diffuser depuis une carte d'encodage ou d'autres périphériques d'acquisition

Table of Contents

Cartes d'encodage matériel
Cartes et encodage logiciel
Diffuser avec Directshow

Cartes d'encodage matériel

Note

Cela est uniquement possible sous GNU/Linux.

VideoLAN supporte deux type d'encodeur MPEG-2 matériel :

  • Hauppauge WinTV-PVR-250 and WinTV-PVR-350,

  • Visiontech Kfir.

Les Hauppauge WinTV-PVR-250/350 fournissent des résultats bien meilleurs que les Visiontech Kfir (en plus d'être moins chères).

Diffuser à l'aide d'une carte Hauppauge WinTV-PVR-250/350

Installer les pilotes

Vous allez tout d'abord devoir patcher votre noyau (version 2.4) pour supporter l'API v4l2 (Video 4 Linux version 2). Le patch est disponible sur le site de Video4Linux HQ. Si vous utilisez un noyau 2.6, vous n'aurez qu'à inclure le support I2C et le module Video For Linux BT848.

Une fois que votre noyau est pret, installez la version CK (actuellement en développement) des drivers Linux pour les Hauppauge WinTV-PVR-250/350. Ils sont hébergés sur ivtv ck. Vous aurrez besoin de patcher votre noyau pour l'utiliser avec un 2.4. Vous pouvez aussi utiliser la version CVS disponible ici : ivtv.sourceforge.net (cette version n'est plus développée). Vous devez céer le péripérique et charger les modules. Ceci est détailé dans la documentation fournie avec les drivers.

Diffuser avec VLC

Note

Vous devez ajouter --enable-pvr à votre ./configure pour utiliser cette fonctionnalité.

% vlc -vvv --color pvr:/dev/video0:norm=secam:size=720x576:frequency=576250:
bitrate=3000000:maxbitrate=4000000 --cr-average 1000 --sout udp:192.168.0.42 --ttl 12

où :

  • /dev/video0 est le périphérique correspondant a la carte d'encodage,

  • norm=secam est le nom du standard utilisé par le signal analogique (les valeurs possibles sont pal, secam et ntsc),

  • size=720x576 est la taille de la vidéo que vous voulez diffuser,

  • frequency=567250 est la fréquence en kHz de la chaine que vous voulez diffuser,

  • bitrate=3000000 est le débit moyen du flux,

  • maxbitrate=4000000 est le débit maximum du flux,

  • 1000 est une valeur secrète pour contourner un bug de la carte.

  • 192.168.0.42 est soit :

    • l'adresse IP de la machine vers laquelle vous souhaitez diffuser en unicast;

    • soit le nom DNS de la machine vers laquelle vous souhaitez diffuser en unicast;

    • ou une adresse IP multicast.

  • 12 est la valeur du TTL (Time To Live) de vos paquets IP (ce qui signifie que le flux peut traverser 11 routeurs maximum).

Diffuser avec la carte Visiontech Kfir

Installer les pilotes

Si vous voulez être capable de diffuser depuis une carte Visiontech Kfir, vous devez installer ses pilotes Linux. Téléchargez la dernière version de ces pilotes sur la page drivers download page du site web LinuxTV .

Decompressez le tarball et suivez les instructions ecrites dans le fichier INSTALL pour compiler et installer les drivers.

Note

Si vous avez un chipset VIA, vous devez désactiver l'USB dans votre BIOS.

Diffuser

% vlc -vvv --color kfir:/dev/video --sout udp:192.168.0.42 --ttl 12

où :

  • /dev/video est le nom du péripérique correspondanta la carte Kfir

  • 192.168.0.42 est soit :

    • l'adresse IP de la machine vers laquelle vous souhaitez diffuser en unicast;

    • soit le nom DNS de la machine vers laquelle vous souhaitez diffuser en unicast;

    • ou une adresse IP multicast.

  • 12 est la valeur du TTL (Time To Live) de vos paquets IP (ce qui signifie que le flux peut traverser 11 routeurs maximum).

Cartes et encodage logiciel

Sous GNU/Linux

Installer les drivers Vidéo pour Linux

Si vous voulez diffuser depuis une carte d'acquisition ou une webcam, un driver video4linux est nécessaire. Vous pouvez trouver plus d'explication sur video4linux et les périphériques supportés ici.

Compilez le bon module pour votre péripérique et chargez le dans votre kernel. Certains modules video4linux sont disponibles dans les kernels 2.4.x et 2.6.x, le patch est disponible sur le site web du Video4Linux HQ.

Vous pouvez tester votre péripérique en utilisant un des programmes listé à la section Video: TV and PVR/DVR de cette page web.

Les modules v4l2 fonctionneront aussi avec VLC.

Diffuser avec VLC

Note

Vous devez ajouter --enable-v4l a votre ./configure pour utiliser cette fonctionnalité.


% vlc -vvv --color v4l:/dev/video:norm=secam:frequency=543250:size=640x480:channel=0:adev=/dev/dsp:audio=0
--sout '#transcode{vcodec=mp4v,acodec=mpga,vb=3000,ab=256,venc=ffmpeg{keyint=80,hurry-up,vt=800000},deinterlace}:std{access=udp,mux=ts,dst=239.255.12.13}' --ttl 12

Note

You can find all transcode options on this page : Utilisation avancée du flux de sortie en ligne de commande .

où :

  • /dev/video est le péripérique correspondant à votre carte d'acquisition ou a votre webcam,

  • norm=secam est le nom du standard utilisé par le signal analogique (les valeurs possibles sont pal, secam et ntsc),

  • frequency=543250 est la fréquence de la chaine en kHz (Attention ! pour vlc < 0.6.1, Frequency est la fréquence de la chaine en MHz multipliée par 16),

  • size=640x480 est la taille de la vidéo que vous souhaitez (vous pouvez aussi mettre une taille standard : subqcif (128x96), qsif (160x120), qcif (176x144), sif (320x240), cif (352x288) ou vga (640x480)),

  • channel=0 est le numéro du cannal (généralement 0 est pour le tunner, 1 pour l'entrée composite et 2 pour l'entée svideo),

  • adev=/dev/dsp est le péripérique audio,

  • audio=1 est le nombre de cannaux audio (généralement 0 est pour mono et 1 pour stéréo),

  • vcodec=mp4v correspond au format video que vous souhaitez utiliser (mp4v correspond à MPEG-4, mpgv correspond à MPEG-1, et il y a aussi h263, DIV1, DIV2, DIV3, I420, I422, I444, RV24, YUY2),

  • acodec=mpga correspond au format audio que vous souhaitez utiliser (mpga correspond au MPEG audio layer 2, a52 corresponf à A52 i.e. son AC3),

  • vb=3000 est le débit de la vidéo en Kbit/s

  • ab=256 est la débit de l'audio en Kbit/s

  • venc=ffmpeg vous permet de choisir l'encodeur a utiliser avec :

    • keyint=80 correspond au nombre maximum d'images entre 2 images clefs

    • hurry-up permet a l'encodeur de réduire la qualité du flux si le processeur ne parvient pas a tenir le rythme lors de l'encodage

    • vt=800000 est la tolérance en Kbit/s pour le débit de la vidéo en sortie

  • deinterlace dit a VLC de désentrelacer à la volée,

  • 192.168.0.42 est soit :

    • l'adresse IP de la machine vers laquelle vous voulez émettre en unicast;

    • ou le nom DNS de la machine vers laquelle vous vous voulez émettre en unicast;

    • ou une adresse IP multicast.

  • 12 est la valeur du TTL (Time To Live) de vos paquets IP (ce qui signifie que le flux peut traverser 11 routeurs maximum).

Diffuser avec Directshow

Note

C'est possible uniquement avec Windows

Installez les pilotes de votre périphérique

Vous devez installer votre périphérique sous Windows avec les pilotes appropriés. Rien d'autre n'est nécessaire.

Diffuser avec VLC an ligne de commande

% C:\Program Files\VideoLAN\VLC\vlc.exe -vvv -I rc --ttl 12 dshow:// vdev="VGA USB Camera" adev="USB Camera" size="640x480" --sout=#std{mux=ts,access=udp,dst=239.255.42.12}

Note

Vous devez préciser le chemin complet vers VLC ou éxecuter la commande depuis le bon répertoire.

  • vvv permet d'activer l'affichage de tous les messages

  • rc permet d'activer l'interface de controle à distance (console MS/DOS)

  • 12 est la valeur du TTL (Time To Live) de vos paquets IP (ce qui veut dire que le flux pourra traverser 11 routeurs),

  • vdev="VGA USB Camera" est le nom du périphérique que DirectShow utilisera (ceci n'est qu'un exemple),

  • adev="USB Camera" est le nom du périphérique audio,

  • size=640x480 est la taille de la vidéo que vous souhaitez (vous pouvez aussi mettre une taille standard : subqcif (128x96), qsif (160x120), qcif (176x144), sif (320x240), cif (352x288) ou vga (640x480)),

  • 239.255.42.12 est soit :

    • des adresses IP des machines vers lequelles vous voulez difuser en unicast

    • ou des adresses DNS des machines vers lequelles vous voulez difuser en unicast

    • ou une adresse IP multicast.