martes, 20 de diciembre de 2011

Instalar Capturadora de video USB EASYCap


He adquirido una capturadora de video EASYCap por USB para pasar unos videos a digital (http://www.dealextreme.com/p/easycap-usb-video-capture-adapter-5707)

Quería que funcionase en linux/Ubuntu y está además es barata y funciona perfectamente.

Primeramente hay que instalarse los build-essential y linux-image de tu distribución

$ sudo apt-get install build-essential linux-image-`uname -r` linux-headers-`uname -r`

Instalar subversion (svn) si no lo tenemos instalado

$ sudo apt-get install subversion

Después bajarse del repositorio de syntek los drivers parcheados y compilarlos:

$ svn co https://syntekdriver.svn.sourceforge.net/svnroot/syntekdriver/trunk/driver syntekdriver
$ cd syntekdriver/trunk/driver/
$ cd syntekdriver
$ make -f Makefile.standalone

Da el siguiente error al finalizar:

make[1]: se sale del directorio «/usr/src/linux-headers-3.8.0-19-generic» make: ctags: No se encontró el programa make: *** [driver] Error 127

pero no es importante y funciona el driver correctamente.

Comprobamos que se ha compilado bien:

$> ls -l stk11xx.ko

Debe mostrarnos algo parecido a:

-rw-rw-r-- 1 user group 171470 may 13 19:52 stk11xx.ko

Si no aparece es que no se compiló bien y hay que mirar que puede faltar.

Seguido instalamos el driver:

$ sudo modprobe videodev
$ sudo insmod stk11xx.ko


Enchufar la capturadora a un puerto USB y comprobar que está instalada con un “dmesg”, donde se ve el texto EasyCap para cada paso que da al reconocerla.



Para probarla con mplayer:

$ mplayer tv:// -tv driver=v4l2:device=/dev/video0  (o video1 si tienes una webcam)

(Ah! Debes de meter una señal de video a la capturadora si no no verás nada ;) )

22 comentarios:

  1. cuando coloco: cd syntekdriver/trunk/driver/ me sale "bash: cd: syntekdriver/trunk/driver/: No existe el archivo o el directorio" ¿que hago? T_T

    ResponderEliminar
    Respuestas
    1. Hola. Sí, al parecer han cambiado las rutas del código bajado de syntekdriver.
      Ahora hay que poner solamente "cd syntekdriver". Paso a actualizar el post. Gracias. Un saludo

      Eliminar
  2. Hola todo me fue bien hasta aqui: sudo insmod stk11xx.ko el ultimo paso lo pongo y me dice: insmod: can't read 'stk11xx.ko': No such file or directory

    ¿Que podría hacer? Saludos

    ResponderEliminar
    Respuestas
    1. Hola, comprueba que estas dentro del directorio syntekdriver. Ejecuta:

      $> ls -l stk11xx.ko

      Debe aparecer el archivo stk11xx.ko listado:

      -rw-rw-r-- 1 user group 171470 may 13 19:52 stk11xx.ko

      Si no aparece probablemente al ejecutar la sentencia make, que compila el driver ha debido de dar algún otro error.

      Si me pasas la salida que te da despues de ejecutar make miro que te puede estar pasando.

      Saludos

      Eliminar
  3. Hola, muchas gracias por el post.

    Hago todos los pasos sin problema, pero cuando ejecuto el mplayer (con una señal de una videoreproductora) me aparece la pantalla de reproduccion toda verde, sin audio ni video. Te dejo una captura desde la terminal, espero que sirva:

    mati@mati-desktop:/dev$ mplayer tv:// -tv driver=v4l2:device=/dev/video0
    MPlayer svn r34540 (Ubuntu), built with gcc-4.6 (C) 2000-2012 MPlayer Team
    mplayer: could not connect to socket
    mplayer: No such file or directory
    Failed to open LIRC support. You will not be able to use your remote control.

    Playing tv://.
    TV file format detected.
    Selected driver: v4l2
    name: Video 4 Linux 2 input
    author: Martin Olschewski
    comment: first try, more to come ;-)
    Selected device: stk1160
    Capabilities: video capture read/write streaming
    supported norms: 0 = NTSC; 1 = NTSC-M; 2 = NTSC-M-JP; 3 = NTSC-M-KR; 4 = NTSC-443; 5 = PAL; 6 = PAL-BG; 7 = PAL-H; 8 = PAL-I; 9 = PAL-DK; 10 = PAL-M; 11 = PAL-N; 12 = PAL-Nc; 13 = PAL-60; 14 = SECAM; 15 = SECAM-B; 16 = SECAM-G; 17 = SECAM-H; 18 = SECAM-DK; 19 = SECAM-L; 20 = SECAM-Lc;
    inputs: 0 = Composite0; 1 = Composite1; 2 = Composite2; 3 = Composite3; 4 = S-Video;
    Current input: 0
    Current format: UYVY
    Selected input hasn't got a tuner!
    v4l2: ioctl set mute failed: Invalid argument
    Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
    [vdpau] Error when calling vdp_device_create_x11: 1
    ==========================================================================
    Opening video decoder: [raw] RAW Uncompressed Video
    Movie-Aspect is undefined - no prescaling applied.
    VO: [xv] 720x576 => 720x576 Packed UYVY
    Selected video codec: [rawuyvy] vfm: raw (RAW UYVY)
    ==========================================================================
    Audio: no sound
    Starting playback...
    V: 0.0 715/715 ??% ??% ??,?% 0 0
    v4l2: ioctl set mute failed: Invalid argument
    v4l2: 717 frames successfully processed, -1 frames dropped.

    Exiting... (Quit)

    ¡Muchas gracias!
    Matias

    ResponderEliminar
    Respuestas
    1. Hola,

      por lo que interpreto de la salida del mplayer parece que hay algún problema con el driver de tu tarjeta de video:

      Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory


      Prueba a crear el enlace simbolico para que encuentre la libreria:

      $> sudo ln -s /usr/lib/vdpau/libvdpau_nvidia.so.1 /usr/lib/libvdpau_nvidia.so

      Si no va, tendrás que probar a cambiar el driver de tu tarjeta o a reinstalarlo.

      Otra opcion seria cambiar el codec de video en la llamada a mplayer:

      $> mplayer tv:// -vo xv -tv driver=v4l2:device=/dev/video

      Y no se me ocurre nada mas... Si no lo consigues hablamos.

      Un saludo

      Eliminar
  4. Hola, muchas gracias por tu tutorial!!! A mi me funciono pero no escucho el audio, como hago para escuchar? Hay algun comando? Saludos

    ResponderEliminar
    Respuestas
    1. Hola, me alegro que te haya servido. El tema del audio, sin saber si te está dando algún error es complicado. Quizás lo que te falte sean codecs de audio. Doy por hecho que usas una distribución ubuntu/debian, asi que prueba a instalar:

      $> sudo apt-get install ubuntu-restricted-extras

      Si con esto sigue sin funcionarte necesitaría los errores que esté dando la capturadora o el reproductor.

      Saludos

      Eliminar
  5. Hola,
    Gracias por el tutorial, tengo un problema a ver si a ti te ha pasado.
    No me crea /dev/video0.

    Creating config file: /root/.mplayer/config
    MPlayer svn r34540 (Ubuntu), built with gcc-4.6 (C) 2000-2012 MPlayer Team
    mplayer: could not connect to socket
    mplayer: No such file or directory
    Failed to open LIRC support. You will not be able to use your remote control.

    Playing tv://.
    TV file format detected.
    Selected driver: v4l2
    name: Video 4 Linux 2 input
    author: Martin Olschewski
    comment: first try, more to come ;-)
    v4l2: unable to open '/dev/video0': No such file or directory
    v4l2: ioctl set mute failed: Bad file descriptor
    v4l2: 0 frames successfully processed, 0 frames dropped.


    ResponderEliminar
    Respuestas
    1. Hola,

      Pues parece que no encuentra el dispositivo de video capturador.

      Probaste con /dev/video1

      Esto seria necesario si tienes una webcam.

      Si no, prueba a ejecutar: ls /dev | grep video

      A ver si lista algun /dev/videoXX

      Ya me cuentas, saludos

      Eliminar
  6. Hola,
    Ya probe, en /dev/ no hay nada parecido a videoxx.
    Lo raro, esque parece que hace todo bien.
    Mira la salida dmesg al hacer el insmod:
    641.441736] Linux video capture interface: v2.00
    [ 644.559013] stk11xx: Syntek USB Video Camera driver v3.0.0 startup
    [ 644.559016] stk11xx: Copyright(coffee) 2006-2012 Nicolas VIVIEN
    [ 644.559018] stk11xx: http://sourceforge.net/projects/syntekdriver/
    [ 644.559049] usbcore: registered new interface driver usb_stk11xx_driver

    ResponderEliminar
    Respuestas
    1. Pues sí que es extraño...

      Prueba a instalar, si no lo está ya:

      sudo apt-get install gnome-media

      Si sigue fallando, conecta la capturadora y ejecuta esto que te pongo a continuación y mándame la salida que te de cada comando, a ver si veo que te ocurre:

      uname -a
      lsusb
      dmesg | grep video
      gstreamer-properties




      Eliminar
  7. gstreamer-properties me dice que no puede abrir el visor.
    Los otros comandos aqui tienes la salida:

    cat EasyCaplog.txt
    Linux dl40 3.2.0-58-generic #88-Ubuntu SMP Tue Dec 3 17:37:58 UTC 2013 x86_64 x86_64 x86_64 GNU/Li nux
    ==================
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
    Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
    Bus 001 Device 003: ID 0624:0248 Avocent Corp.
    Bus 001 Device 004: ID 0624:0249 Avocent Corp.
    Bus 002 Device 009: ID 1b71:3002
    Bus 002 Device 004: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
    ==================
    [ 1.046688] pci 0000:03:03.0: Boot video device
    [ 530.258811] stk11xx: Unknown symbol video_devdata (err 0)
    [ 530.258833] stk11xx: Unknown symbol video_unregister_device (err 0)
    [ 530.258847] stk11xx: Unknown symbol video_device_alloc (err 0)
    [ 530.258865] stk11xx: Unknown symbol __video_register_device (err 0)
    [ 530.258875] stk11xx: Unknown symbol video_usercopy (err 0)
    [ 530.258880] stk11xx: Unknown symbol video_device_release (err 0)
    [ 641.441736] Linux video capture interface: v2.00



    ******

    Del dsmeg , los [530....] no hagas mucho caso, hice pruebas y active y desactive videodev.

    ResponderEliminar
    Respuestas
    1. Pues por lo que veo, el sistema operativo no te reconoce la capturadora al conectarla al USB.
      No entiendo muy bien porqué. Ahora mismo no la tengo aqui. Cuando la tenga pruebo e investigo a ver que puede estar pasandote.
      Si no te he contestado el lunes avisame con otro comentario y te cuento lo que haya averiguado.

      Saludos

      Eliminar
    2. Hola,

      no, no conseguí reproducirlo.
      Y sigo sin saber que te puede ocurrir. Sigo investigando, que tengo curiosidad por saber que te ocurre.
      Te informo.

      Un saludo

      Eliminar
  8. Buenas tras llegar a este punto, no se continuar ya que no me dice lo que pones en el post, ante todo muchas gracias un saludo.

    /home/ruben/syntekdriver/stk11xx-v4l.c:1503:11: error: ‘struct video_device’ has no member named ‘parent’
    dev->vdev->parent = &dev->interface->dev;
    ^
    make[2]: *** [/home/ruben/syntekdriver/stk11xx-v4l.o] Error 1
    make[1]: *** [_module_/home/ruben/syntekdriver] Error 2
    make[1]: se sale del directorio «/usr/src/linux-headers-3.11.0-15-generic»
    make: *** [driver] Error 2
    ruben@ruben-EL1200:~/syntekdriver$ $> ls -l stk11xx.ko
    $: no se encontró la orden
    ruben@ruben-EL1200:~/syntekdriver$ > ls -l stk11xx.ko
    -l: no se encontró la orden
    ruben@ruben-EL1200:~/syntekdriver$

    ResponderEliminar
  9. Hola,

    el problema parece que es porque el kernel 3.11 no soporta este driver :(
    Aunque en la documentación dice que es para kernels 2.6 o mayores.

    Prueba a compilar con:
    $ make -f Makefile.standalone clean (esta linea para limpiar los errores anteriores de compilacion )

    $ make -f Makefile.standalone driver

    Yo en cuanto tenga un rato lo intento compilar en un kernel 3.11 y te cuento si lo consigo y cómo.

    Saludos

    ResponderEliminar
  10. Hola, perdona pero estaba buscando información para configurar capturadora de vídeo Woxter USB i-Video Capture 20 en Linux pero no sé si le valdrá lo mismo que para otras capturadoras.
    ¿Puedes arrojarme luz?
    Gracias.

    ResponderEliminar
    Respuestas
    1. Hola,
      esta capturadora es para mi desconocida. Para ayudarte te puedo indicar alguna pauta.
      Primero, antes de enchufarla haz un "lsusb", después enchúfala, espera un poco y vuelve a ejecutar "lsusb".
      Si ves una linea nueva con la capturadora es un buen síntoma y tendrás la mitad de la guerra ganada, puesto que el sistema operativo la reconoce.

      Como supongo que habrás buscado drivers para linux y no los habrás encontrado una opción que suele funcionar es instalar los drivers de linux usando "NDiswrapper".

      Yo intentaría esa opción.

      Espero te sirva el comentario y suerte!

      Eliminar
  11. make[2]: *** [/home/juan/syntekdriver/stk11xx-usb.o] Error 1
    Makefile:1394: recipe for target '_module_/home/juan/syntekdriver' failed
    make[1]: *** [_module_/home/juan/syntekdriver] Error 2
    make[1]: Leaving directory '/usr/src/linux-headers-3.19.0-25-generic'
    Makefile.standalone:13: recipe for target 'driver' failed
    make: *** [driver] Error 2

    Me podrias ayudar sale eso
    T_T

    ResponderEliminar
    Respuestas
    1. Hola,
      pues necesito un poco mas de información.
      ¿Que sistema linux usas? ¿Ubuntu, Red Hat, Suse?...
      El kernel veo que es de lo último.
      Quizás pueda estar ahí el problema.
      No se si este kernel lo soportará.
      Así a bote pronto intentaría usar un kernel inferior. En el sistema de arranque suele haber un arranque con un kernel anterior (ahora tienes el 3.19.0.25).
      Arranca con uno anterior y prueba a compilar.

      Saludos

      Eliminar