Chapter 8.  Transmisión desde una tarjeta capturadora o una webcam

Table of Contents

Instalar los drivers Video for Linux
Transmisión con VLC
Transmisión con VLS

Note

Esto sólo es posible bajo GNU/Linux .

Instalar los drivers Video for Linux

Si se quiere transmitir desde una tarjeta capturadora o una webcam, debe tener disponible un driver video4linux. Puede encontrar más información sobre video4linux y los dispositivos soportados aquíhttp://www.exploits.org/v4l .

Compile el módulo adecuado para su dispositivo, e insértelo dentro del kernel (algunos módulos video4linux están disponibles en los kernels Linux 2.4.x). Puede probar su dispositivo usando cualquier programa listado en la sección Video: TV and PVR/DVR de la página http://www.exploits.org/v4l/ .

Nota: el módulo v4l2 también funcionará con VLC .

Transmisión con VLC

Note

Se debe añadir --enable-v4l a ./configure para usar esta característica .


% 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

donde :

  • /dev/video es el dispositivo correspondiente a su tarjeta capturadora o su webcam ,

  • norm=secam es el nombre del estandar de la señal analógica (los posibles valores son pal, secam, y ntsc) ,

  • frequency=543250 es la frecuencia del canal en kHz (Precaución : para VLC < 0.6.1, La frecuencia es la frecuencia del canal en MHz multiplicada por 16) ,

  • size=640x480 es la resolución de vídeo deseada (se pueden elegir resoluciones standard como subqcif (128x96), qsif (160x120), qcif (176x144), sif (320x240), cif (352x288) o vga (640x480)) ,

  • channel=0 es el número del canal (generalmente 0 es para el sintonizador (tuner), 1 para compuesto y 2 para svideo) ,

  • adev=/dev/dsp es el dispositivo de audio ,

  • audio=1 es el número del canal de audio (generalmente 0 es para mono y 1 para estéreo) ,

  • vcodec=mp4v es el formato de video en el que se quiere codificar (mp4v es MPEG-4, mpgv es MPEG-1, y hay también h263, DIV1, DIV2, DIV3, I420, I422, I444, RV24, YUY2),

  • acodec=mpga es el formato de audio en el que se quiere codificar (mpga es MPEG audio layer 2, a52 es A52 esto es sonido AC3 ) ,

  • vb=3000 ,

  • ab=256 es el bitrate de audio en Kbit/s

  • vt=800000 es la tolerancia del bitrate de vídeo en bit/s ,

  • keyint=80 es el intervalo máximo entre dos imagenes "I" medido en número de imagenes ,

  • deinterlace indica a VLC desentrelazar el vídeo en el aire ,

  • 192.168.0.42 puede ser :

    • la dirección IP de la máquina a la que se quiere hacer unicast ;

    • o el DNS de la máquina a la que se quiere hacer unicast ;

    • o una dirección IP multicast .

  • 12 es el valor del TTL (Time To Live) de los paquetes IP (lo que significa que el stream será capaz de cruzar por 11 routers) .

Transmisión con VLS

Note

Se necesita la versión SVN de VLS. Cuando se compila, se debe hacer un ./bootstrap y un ./configure --enable-v4l --with-ffmpeg=PATH (donde PATH es la ruta absoluta al directorio donde se compile ffmpeg, y no la ruta relativa !) .

No hay interfaz de línea de comandos para esta opción por el momento, así que se tiene que usar el fichero de configuración .

Aquí esta el fichero de configuración típico vls.cfg para ejecutar VLS con un dispositivo 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

Una vez adaptado el archivo de configuración superior, ejecutar VLS :

% vls -vv -f vls.cfg