Chapter 8.  Diffusez depuis une carte d'acquisition ou une webcam

Table of Contents

Installez les drivers Video for Linux
Diffusez avec VLC
Diffusez avec VLS

Note

Ceci n'est possible que sous GNU/Linux .

Installez les drivers Video for Linux

Si vous désirez diffuser depuis une carte d'acquisition ou une webcam, un driver video4linux doit être disponible. Vous pouvez trouver plus d'informations sur video4linux et les périphériques supportés ici .

Compilez le bon module pour votre périphérique, et insérez le dans le noyau (certains modules video4linux sont livrés avec les noyaux Linux 2.4.x). Vous pouvez tester votre périphérique, en utilisant l'un des programmes de la section Video: TV and PVR/DVR de cette page .

Remarque: les modules v4l2 fonctionneront également .

Diffusez avec VLC

Note

Vous devez ajouter --enable-v4l à ./configure pour celà .


% vlc -vvv 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,vt=800000,keyint=80,deinterlace}:std{access=udp,mux=ts,url=239.255.12.13}' --ttl 12

où :

  • /dev/video est l'adresse correspondant à votre carte d'acquisition ou à votre webcam ,

  • norm=secam est le nom du standard du signal analogique (celà peut être pal, secam ou ntsc ,

  • frequency=543250 est la fréquence en kHz de la chaîne(Attention:avec VLC < 0.6.1, la fréquence est la fréquence du canal en MHz, multipliée par 16) ,

  • size=640x480 est la taille de la vidéo que vous désirez diffuser (vous pouvez également indiquer une taille standard, telle que subqcif (128x96), qsif (160x120), qcif (176x144), sif (320x240), cif (352x288) ou vga (640x480)) ,

  • channel=0 est le numéro du canal (généralement, 0 pour le tuner, 1 pour le composite, et 2 pour Svidéo) ,

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

  • audio=1 est le numéro du canal audio (généralement, 0 pour mono et 1 pour stéréo) ,

  • vcodec=mp4v est le format d'encodage vidéo (mp4v pour MPEG-4, mpgv pour MPEG-1, mais aussi h263, DIV1, DIV2, DIV3, I420, I422, I444, RV24, YUY2),

  • acodec=mpga est le format audio d'encodage (mpga pour MPEG audio layer 2, a52 pour A52 / AC3) ,

  • vb=3000 est le taux de compression vidéo en Kbps ,

  • ab=256 est le taux de compression audio en Kbps

  • vt=800000 est la tolérance sur le bitrate vidéo en bps ,

  • keyint=80 est le nombre maximal d'image entre deux images "I" ,

  • deinterlace pour désentrelacer le flux à la volée ,

  • 192.168.0.42 est soit :

    • l'adresse IP de la machine vers laquelle vous désirez diffuser en unicast ;

    • le nom DNS de la machine vers laquelle vous désirez envoyer en unicast ;

    • une adresse IP multicast .

  • 12 est la valeur du TTL (Time To Live) de vos paquets IP (cela signifie qu'ils pourront traverser 11 routeurs) .

Diffusez avec VLS

Note

Vous devez avoir la version SVN de VLS. Quand vous la compilez, vous devez utiliser ./bootstrap puis ./configure --enable-v4l --with-ffmpeg=PATH (avec PATH le chemin absolu vers le répertoire où vous avez compilé ffmpeg, et non pas le chemin relatif !) .

Il n'existe pas de ligne de commande pour ce type d'entrée pour l'instant, vous devez utiliser le fichier de configuration .

Voici un fichier vls.cfgtypique pour faire marcher VLS avec un périphérique v4l :

# vls.cfg (VLS configuration file)
# Example of the VideoLAN HOWTO for the Video for Linux input

BEGIN "Inputs"

  webcam       = "v4l"

END

BEGIN "webcam"

  # V4L device
  Device        = "/dev/video"

  # Channel Source : Webcam is often "0"
  #                  TV Card, may be Tuner(0), Composite(1), Svideo(2)
  Channel       = "0"

  # Norm: PAL=0, NTSC=1, SECAM=2
  Norm          = "0"

  # Frequency of the channel in Mhz, multiplied by 16 (tuner cards only)
  Frequency     = "7668"

  # Size possibilities: can be either:
  # - empty string : default size
  # - width x height
  # - subQCIF(128x96), QSIF(160x120), QCIF(176x144), SIF(320x240),
  #   CIF(352x288), VGA (640x480)
  Size          = ""

  # DeInterlace: "0" = no ; "1" = yes
  DeInterlace   = "0"

  # Video compression format: "mpeg1" or "mpeg4"
  Compression   = "mpeg4"

  # Video bitrate (approx.) in kbps
  Bitrate       = "500"

  # Quality: "1.0" (good) to "31.0" (bad)
  Quality       = "1.0"

  # Sound device
  AudioDevice   = "/dev/dsp"

  # Audio compression format: "mp2", "mp3" or "ogg"
  AudioCompression = "mp2"

  # Audio bitrate in kpbs
  AudioBitrate  = "64"

  # Audio frequency ("16000", "22050", "24000", "32000", "44100" or "48000")
  AudioFreq     = "16000"

  # Audio channel: "1" = mono ; "2" = stereo
  AudioChannel  = "2"

END

BEGIN "Channels"

  channel1       = "network"

END

BEGIN "channel1"

  # Unicast or multicast IP address
  DstHost = "192.168.0.42"

  # Destination port
  DstPort = "1234"

  # If it's a multicast IP address, uncomment the line below
  #Type    = "multicast"

  # If it's a multicast IP address, set the "Time To Live" below
  #TTL     = "12"

END

BEGIN "LaunchOnStartUp"

  command1 = "start video channel1 webcam"

END

Une fois que vous avez adapté ce fichier de configuration, lancez VLS :

% vls -vv -f vls.cfg