?>/script>'; } ?> WebCam Widgets Magazine

Autor Tema: WebCam  (Leído 34027 veces)

0 Usuarios y 1 Visitante están viendo este tema.

raphik

  • Visitante
WebCam
« en: 05-06-2015, 19:02 (Viernes) »
Hace ya casi tres años que conecté por primera vez una webcam al HG553. No funcionó. En realidad no era tan complicado, pero no disponía de la información necesaria. He visto últimamente cierto interés en el foro y me he animado a contaros mis experiencias e invitaros a compartir las vuestras.

Es de referencia obligada el artículo "Montemos una webcam IP barata", de Alfonso Pastor.

Lo primero será instalar el firmware OpenWRT en un router compatible que disponga de al menos un puerto USB. Actualmente hago pruebas con una LifeCam HD-3000 de Microsoft conectada a un Comtrend AR-5387un con la Chaos Calmer 15.05-rc1. Adicionalmente, hago pruebas con una Creative N10225, una TVISTO ACM-330 y una Philips SPC620NC.

Soporte básico USB
Estos paquetes son imprescindibles para detectar y hacer funcionar cualquier cosa que conectemos al puerto USB
Código: [Seleccionar]
opkg update
opkg install kmod-usb-core kmod-usb2 kmod-usb-ohci kmod-usb-uhci usbutils
reboot

¿Qué webcam tengo?
Por su ID la conoceremos. La enchufamos al router y averiguamos su ID y su denominación
Código: [Seleccionar]
lsusb
Citar
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 045e:0779 Microsoft Corp. LifeCam HD-3000
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Las cámaras nuevas suelen ser de tipo UVC y las más antiguas GSPCA. Las hay de otros tipos, pero no funcionan en Linux. Para averiguar de qué tipo es la nuestra, buscamos su ID en estas listas:
Lista UVC: http://www.ideasonboard.org/uvc/
Lista GSPCA: http://linuxtv.org/wiki/index.php/Gspca_devices

¿Qué driver instalo?
CASO UVC
Un único driver uvc para cualquiera que sea el modelo
Código: [Seleccionar]
opkg update
opkg install kmod-video-uvc

CASO GSPCA
Un driver genérico gspca y un subdriver específico para el modelo concreto
Código: [Seleccionar]
opkg update
opkg install kmod-video-gspca-core
opkg install kmod-video-gspca-xxx

Yo, en este punto, suelo reiniciar el router. Puede que no haga falta, pero ¿y si sí?
Código: [Seleccionar]
reboot
Tras el reinicio, comprobamos que OpenWRT reconoce el dispositivo
Código: [Seleccionar]
ls /dev/vid*
Citar
/dev/video0

¿Qué capacidades tiene mi webcam?
OpenWRt cuenta con una herramienta para averiguarlo. La instalamos
Código: [Seleccionar]
opkg update
opkg install v4l-utils

La herramienta se llama v4l2-ctl y hace muchísimas cosas
Código: [Seleccionar]
v4l2-ctl --help
Probablemente, lo que más interesa ahora es lo referente al formato de píxel y los controles específicos de cada webcam.

== FORMATOS
# Lista de formatos posibles
  v4l2-ctl --list-formats
# Lista de formatos, resoluciones y fps permitidos
  v4l2-ctl --list-formats-ext
# Visualizar formato actual
  v4l2-ctl --get-fmt-video
  v4l2-ctl -V
# Probar un formato de vídeo
  v4l2-ctl --try-fmt-video=width=<w>,height=<h>,pixelformat=<pf>,field=<f>,bytesperline=<bpl>
# Cambiar el formato de vídeo
  v4l2-ctl --set-fmt-video=width=<w>,height=<h>,pixelformat=<pf>,field=<f>,bytesperline=<bpl>

== CONTROLES
# Lista de controles ajustables
  v4l2-ctl --list-ctrls
  v4l2-ctl -l
# Lista de valores admitidos para los controles tipo menu
  v4l2-ctl --list-ctrls-menus
  v4l2-ctl -L
# Visualizar un control
  v4l2-ctl --get-ctrl=brightness,contrast
  v4l2-ctl -C brightness,contrast
# Cambiar un control
  v4l2-ctl --set-ctrl=brightness=x,contrast=y
  v4l2-ctl -c brightness=x,contrast=y

FSWEBCAM
Una vez instalada correctamente la webcam y conocidas sus capacidades, lo clásico es sacar la primera foto con fswebcam. Instalamos el paquete pertinente
Código: [Seleccionar]
opkg update
opkg install fswebcam

¡Y hacemos nuestra primera foto!
Código: [Seleccionar]
fswebcam /www/test.jpg
Guardar la foto en la carpeta /www del router facilita su visualización directa en el PC. Es tan simple como visitar la URL http://192.168.1.1/test.jpg (cambia la IP por la de tu router).

Mi primera foto fue un rectángulo negro como la boca del lobo. Pero no hay que desesperar. Sólo es cuestión de pasarle a fswebcam los parámetros adecuados.
Código: [Seleccionar]
fswebcam -d v4l2:/dev/video0 -i 0 -r 640x480 --jpeg 75% --no-banner --save /www/test.jpg
No todas las cámaras responden por igual. La TVISTO ACM-330 tiene tendencia a sacar las fotos muy oscuras e incluso negras. Por suerte, el parámetro --skip <n veces> la obliga a hacer varios disparos previos (diez o veinte suele ser suficiente) antes del disparo aprovechable que se transformará en foto. Además, su resolución no es normalizada, de 640x480. Y para colmo, saca las fotos boca abajo (corregible con el parámetro --flip v)
Código: [Seleccionar]
fswebcam -d v4l2:/dev/video0 -i 0 -r 640x472 --skip 15 --flip v --jpeg 75% --no-banner --save /www/test.jpg
fswebcam permite ajustar un buen número de parámetros. Se puede visualizar la lista de parámetros tecleando
Código: [Seleccionar]
fswebcam --help
A veces es más cómodo definir el valor de los parámetros en un fichero de configuración y hacer la llamada a la utilidad así
Código: [Seleccionar]
fswebcam -c fswebcam.conf
El fichero de configuración puede tener el nombre que se quiera y estar en la ruta que se desee. El mío es poco original /root/fswebcam.conf
Código: [Seleccionar]
#quiet                  Hides all messages except for errors.
#verbose               # Displays extra messages while capturing
#loop <seconds>         Run in loop mode.
#background             Run in the background.
#output <filename>      Output the log to a file.
device v4l2:/dev/video0
input 0
#tuner <number>         Selects the tuner to use.
frequency 0
#palette <name>         Selects the palette format to use.
#delay <number>         Sets the pre-capture delay time. (seconds)
resolution 640x480
fps 5
#frames <number>        Sets the number of frames to capture.
skip 4
#dumpframe <filename>   Dump a raw frame to file.
#set <name>=<value>     Sets a control value.
#revert                 Restores original captured image.
#flip <direction>       Flips the image. (h, v)
#crop <size>[,<offset>] Crop a part of the image.
#scale <size>           Scales the image.
#rotate <angle>         Rotates the image in right angles.
#deinterlace            Reduces interlace artifacts.
#invert                 Inverts the images colours.
#greyscale              Removes colour from the image.
#swapchannels <c1c2>    Swap channels c1 and c2.
no-banner
#underlay <PNG image>   Sets the underlay image.
#no-underlay            Clears the underlay.
#overlay <PNG image>    Sets the overlay image.
#no-overlay             Clears the overlay.
jpeg 50%
#png <factor>           Outputs a PNG image. (-1, 0 - 10)
save /www/test.jpg
#exec <command>         Execute a command and wait for it to complete.

Hay parámetros interesantes, como loop <seconds>, que permite realizar fotos a intervalos regulares. O background, que lanza el comando en modo daemon.
Otros son curiosos pero poco útiles, como invert, que produce una imagen negativa. O scale <size>, que lleva al router al límite de consumo de CPU.
Es muy útil set <name>=<value>, que posibilita el acceso a los controles específicos de cada webcam.

MJPG-STREAMER
Llegó la hora del streaming de vídeo. El programa funciona con la Chaos Calmer RC1. Con firmwares anteriores nunca lo conseguí.

Instalamos el paquete correspondiente
Código: [Seleccionar]
opkg update
opkg install mjpg-streamer

Se configura editando el fichero /etc/config/mjpg-streamer
Citar
config mjpg-streamer 'core'
   option enabled 'true'
   option input 'uvc'
   option output 'http'
   option device '/dev/video0'
   option resolution '640x480'
   option yuv '1'
   option quality '60'
   option fps '5'
   option led 'auto'
   option www '/www/webcam'
   option port '8080'
   option username 'user'
   option password 'pass'
Los valores de color se pueden cambiar. Los demás, mejor no.
Los valores en rojo deberían concordar con las capacidades de la webcam.

Para activar la webcam e iniciar el streaming de vídeo
Código: [Seleccionar]
/etc/init.d/mjpg-streamer start
Para pararla
Código: [Seleccionar]
/etc/init.d/mjpg-streamer stop
El vídeo se puede visualizar con el navegador Firefox en la URL
http://192.168.1.1:8080/

También se visualiza con VLC Media Player introduciendo la URL
http://192.168.1.10:8080/?action=stream

Hacemos unos cambios con LuCI y ya tenemos cámara web inalámbrica.

Poner IP estática en la LAN


Habilitar DHCP


Y, lo más importante, configurar la interfaz wifi en modo AP, conectada a la LAN y activar el modo multimedia


Seguiré posteando cuando haga funcionar el motion.

Saludos.

« Última modificación: 10-06-2015, 18:32 (Miércoles) por raphik »

Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2250
Re: WebCam
« Respuesta #1 en: 05-06-2015, 22:13 (Viernes) »
Le pongo chincheta.

Continúa, continúa...


Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4608
Re: WebCam
« Respuesta #2 en: 06-06-2015, 09:45 (Sábado) »
Muy interesante.

Esperamos con ganas la continuación :D

EDITO: Lo añado al [Índice] Hilos relevantes de OpenWrt

Enviado desde uno de mis 'cacharros' usando Tapatalk


« Última modificación: 06-06-2015, 12:37 (Sábado) por jar229 »

vk496

  • Visitante
Re: WebCam
« Respuesta #3 en: 08-06-2015, 11:40 (Lunes) »
Yo la vez que lo intenté con la mía no pude porque tenia que compilar el driver con el kernel y me daba palo reflashear todo el router.

También decir que mi webcam es muy antigua y no hace uso de drivers genéricos...

Salu2


raphik

  • Visitante
Re: WebCam
« Respuesta #4 en: 08-06-2015, 20:56 (Lunes) »

Identificación de la webcam
Código: [Seleccionar]
root@OpenWrt:~# lsusb
Bus 002 Device 002: ID 041e:4028 Creative Technology, Ltd Vista Plus cam [VF0090]

Identificación del driver a instalar (lista GSPCA: http://linuxtv.org/wiki/index.php/Gspca_devices)
Citar
gspca_pac207    041e:4028    Creative Webcam Vista Plus

Instalación de driver y subdriver
Código: [Seleccionar]
opkg update
opkg install kmod-video-gspca-core
opkg install kmod-video-gspca-pac207
reboot

Identificación del formato y resoluciones
Código: [Seleccionar]
root@OpenWrt:~# v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Index       : 0
Type        : Video Capture
Pixel Format: 'P207'
Name        : P207
Size: Discrete 176x144
Size: Discrete 352x288

Controles específicos de la webcam
Código: [Seleccionar]
root@OpenWrt:~# v4l2-ctl --list-ctrls

User Controls

                     brightness (int)    : min=0 max=255 step=1 default=46 value=46 flags=slider
                       exposure (int)    : min=3 max=90 step=1 default=5 value=5 flags=inactive
                 gain_automatic (bool)   : default=1 value=1 flags=update
                           gain (int)    : min=0 max=31 step=1 default=7 value=7 flags=inactive
                     brightness (int)    : min=0 max=255 step=1 default=46 value=46 flags=slider
                       exposure (int)    : min=3 max=90 step=1 default=5 value=5 flags=inactive
                 gain_automatic (bool)   : default=1 value=1 flags=update
                           gain (int)    : min=0 max=31 step=1 default=7 value=7 flags=inactive

Prueba de fswebcam
Citar
root@OpenWrt:~# fswebcam -d v4l2:/dev/video0 -i 0 -r 352x288 --no-banner --save /www/test.jpg
--- Opening v4l2:/dev/video0...
/dev/video0 opened.
Unable to find a compatible palette format.
El formato de píxel P207 no está soportado por fswebcam (ni por mpg-streamer).

« Última modificación: 11-06-2015, 23:45 (Jueves) por raphik »

raphik

  • Visitante
Re: WebCam
« Respuesta #5 en: 10-06-2015, 21:42 (Miércoles) »

Identificación de la webcam
Código: [Seleccionar]
root@OpenWrt:~# lsusb
Bus 002 Device 003: ID 0ac8:307b Z-Star Microelectronics Corp. USB 1.1 Webcam

Identificación del driver a instalar (lista GSPCA: http://linuxtv.org/wiki/index.php/Gspca_devices)
Citar
gspca_zc3xx    0ac8:307b    Ldlc VC302+Ov7620

Instalación de driver y subdriver
Código: [Seleccionar]
opkg update
opkg install kmod-video-gspca-core
opkg install kmod-video-gspca-zc3xx
reboot

Identificación del formato y resoluciones
Código: [Seleccionar]
root@OpenWrt:~# v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Index       : 0
Type        : Video Capture
Pixel Format: 'JPEG' (compressed)
Name        : JPEG
Size: Discrete 320x232
Size: Discrete 640x472

Controles específicos de la webcam
Código: [Seleccionar]
root@OpenWrt:~# v4l2-ctl --list-ctrls

User Controls

                     brightness (int)    : min=0 max=255 step=1 default=128 value=128 flags=slider
                       contrast (int)    : min=0 max=255 step=1 default=128 value=128 flags=slider
                          gamma (int)    : min=1 max=6 step=1 default=3 value=3 flags=slider
                 gain_automatic (bool)   : default=1 value=1
           power_line_frequency (menu)   : min=0 max=2 default=0 value=1
                      sharpness (int)    : min=0 max=3 step=1 default=2 value=2 flags=slider

JPEG Compression Controls

            compression_quality (int)    : min=50 max=87 step=1 default=75 value=75
                     brightness (int)    : min=0 max=255 step=1 default=128 value=128 flags=slider
                       contrast (int)    : min=0 max=255 step=1 default=128 value=128 flags=slider
                          gamma (int)    : min=1 max=6 step=1 default=3 value=3 flags=slider
                 gain_automatic (bool)   : default=1 value=1
           power_line_frequency (menu)   : min=0 max=2 default=0 value=1
                      sharpness (int)    : min=0 max=3 step=1 default=2 value=2 flags=slider

Prueba de fswebcam
Citar
root@OpenWrt:~# fswebcam -d v4l2:/dev/video0 -i 0 -r 640x472 -s 10 --flip v --no-banner --save /www/test.jpg
--- Opening v4l2:/dev/video0...
/dev/video0 opened.
--- Capturing frame...
Captured frame in 0.00 seconds.
--- Processing captured image...
Flipping image vertically.
Disabling banner.
Writing JPEG image to '/www/test.jpg'.
OK.

Configuración /etc/config/mjpg-streamer
Citar
config mjpg-streamer 'core'
   option enabled '1'
   option input 'uvc'
   option output 'http'
   option device '/dev/video0'
   option resolution '640x472'
   option yuv '0'
   option quality '75'
   option fps '5'
   option led 'on'
   option www '/www/webcam'
   option port '8080'
   option minimum_size '1'
#   option username 'openwrt'
#   option password 'openwrt'
Formato de píxel JPEG -> option yuv '0'
Evitar los "cuadros basura" option minimum_size '1'
La imagen sale boca abajo. Se soluciona volteando la cámara.
La imagen se muestra inestable en condiciones de alta iluminación (exteriores).

« Última modificación: 11-06-2015, 23:46 (Jueves) por raphik »

raphik

  • Visitante
Re: WebCam
« Respuesta #6 en: 10-06-2015, 21:59 (Miércoles) »

Identificación de la webcam
Código: [Seleccionar]
root@OpenWrt:~# lsusb
Bus 001 Device 002: ID 0471:0333 Philips (or NXP) SPC 620NC PC Camera

Identificación del driver a instalar (lista UVC: http://www.ideasonboard.org/uvc/)
Citar
0471:0333    Philips SPC 620NC    Philips

Instalación del driver
Código: [Seleccionar]
opkg update
opkg install kmod-video-uvc
reboot

Identificación del formato y resoluciones
Código: [Seleccionar]
root@OpenWrt:~# v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
        Index       : 0
        Type        : Video Capture
        Pixel Format: 'YUYV'
        Name        : YUV 4:2:2 (YUYV)
                Size: Discrete 640x480
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 320x240
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.133s (7.500 fps)
                        Interval: Discrete 0.200s (5.000 fps)

Controles específicos de la webcam
Código: [Seleccionar]
root@OpenWrt:~# v4l2-ctl --list-ctrls
                     brightness (int)    : min=0 max=37 step=1 default=24 value=24
                       contrast (int)    : min=0 max=200 step=1 default=124 value=124
                     saturation (int)    : min=0 max=200 step=1 default=121 value=121
 white_balance_temperature_auto (bool)   : default=1 value=0
                          gamma (int)    : min=1 max=31 step=1 default=18 value=18
           power_line_frequency (menu)   : min=0 max=2 default=0 value=0
      white_balance_temperature (int)    : min=2800 max=6800 step=100 default=6600 value=6600
                      sharpness (int)    : min=0 max=63 step=1 default=15 value=15
         backlight_compensation (int)    : min=0 max=2 step=1 default=0 value=0
                     brightness (int)    : min=0 max=37 step=1 default=24 value=24
                       contrast (int)    : min=0 max=200 step=1 default=124 value=124
                     saturation (int)    : min=0 max=200 step=1 default=121 value=121
 white_balance_temperature_auto (bool)   : default=1 value=0
                          gamma (int)    : min=1 max=31 step=1 default=18 value=18
           power_line_frequency (menu)   : min=0 max=2 default=0 value=0
      white_balance_temperature (int)    : min=2800 max=6800 step=100 default=6600 value=6600
                      sharpness (int)    : min=0 max=63 step=1 default=15 value=15
         backlight_compensation (int)    : min=0 max=2 step=1 default=0 value=0

Prueba de fswebcam
Citar
root@OpenWrt:~# fswebcam -d v4l2:/dev/video0 -i 0 -r 640x480  --no-banner --save /www/test.jpg
--- Opening v4l2:/dev/video0...
/dev/video0 opened.
--- Capturing frame...
Captured frame in 0.00 seconds.
--- Processing captured image...
Disabling banner.
Writing JPEG image to '/www/test.jpg'.
OK.

Configuración /etc/config/mjpg-streamer
Citar
config mjpg-streamer 'core'
   option enabled '1'
   option input 'uvc'
   option output 'http'
   option device '/dev/video0'
   option resolution '640x480'
   option yuv '1'
   option quality '75'
   option fps '5'
   option led 'auto'
   option www '/www/webcam'
   option port '8080'
Formato de píxel YUYV -> option yuv '1' (Muy alto consumo de CPU). La CPU se satura a -r 640x480 -f 25 fps. Para obtener vídeo fluido hay que bajar la resolución o los fps.

« Última modificación: 12-06-2015, 00:02 (Viernes) por raphik »

raphik

  • Visitante
Re: WebCam
« Respuesta #7 en: 10-06-2015, 22:10 (Miércoles) »

Identificación de la webcam
Código: [Seleccionar]
root@OpenWrt:~# lsusb
Bus 001 Device 002: ID 045e:0779 Microsoft Corp. LifeCam HD-3000

Identificación del driver a instalar (lista UVC: http://www.ideasonboard.org/uvc/)
Citar
045e:0779    Microsoft LifeCam HD-3000    Microsoft

Instalación del driver
Código: [Seleccionar]
opkg update
opkg install kmod-video-uvc
reboot

Identificación del formato y resoluciones
Código: [Seleccionar]
root@OpenWrt:~# v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Index       : 0
Type        : Video Capture
Pixel Format: 'YUYV'
Name        : YUV 4:2:2 (YUYV)
Size: Discrete 640x480
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Size: Discrete 1280x720
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Size: Discrete 960x544
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Size: Discrete 800x448
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Size: Discrete 640x360
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Size: Discrete 424x240
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Size: Discrete 352x288
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Size: Discrete 320x240
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Size: Discrete 800x600
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Size: Discrete 176x144
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Size: Discrete 160x120
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Size: Discrete 1280x800
Interval: Discrete 0.100s (10.000 fps)

Index       : 1
Type        : Video Capture
Pixel Format: 'MJPG' (compressed)
Name        : MJPEG
Size: Discrete 640x480
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Size: Discrete 1280x720
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Size: Discrete 960x544
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Size: Discrete 800x448
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Size: Discrete 640x360
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Size: Discrete 800x600
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Size: Discrete 416x240
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Size: Discrete 352x288
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Size: Discrete 176x144
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Size: Discrete 320x240
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Size: Discrete 160x120
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)

Controles específicos de la webcam
Código: [Seleccionar]
root@OpenWrt:~# v4l2-ctl --list-ctrls
                     brightness (int)    : min=30 max=255 step=1 default=133 value=133
                       contrast (int)    : min=0 max=10 step=1 default=5 value=5
                     saturation (int)    : min=0 max=200 step=1 default=83 value=83
 white_balance_temperature_auto (bool)   : default=1 value=1
           power_line_frequency (menu)   : min=0 max=2 default=2 value=1
      white_balance_temperature (int)    : min=2800 max=10000 step=1 default=4500 value=4500 flags=inactive
                      sharpness (int)    : min=0 max=50 step=1 default=25 value=25
         backlight_compensation (int)    : min=0 max=10 step=1 default=0 value=0
                  exposure_auto (menu)   : min=0 max=3 default=1 value=3
              exposure_absolute (int)    : min=5 max=20000 step=1 default=156 value=156 flags=inactive
                   pan_absolute (int)    : min=-201600 max=201600 step=3600 default=0 value=0
                  tilt_absolute (int)    : min=-201600 max=201600 step=3600 default=0 value=0
                  zoom_absolute (int)    : min=0 max=10 step=1 default=0 value=0
                     brightness (int)    : min=30 max=255 step=1 default=133 value=133
                       contrast (int)    : min=0 max=10 step=1 default=5 value=5
                     saturation (int)    : min=0 max=200 step=1 default=83 value=83
 white_balance_temperature_auto (bool)   : default=1 value=1
           power_line_frequency (menu)   : min=0 max=2 default=2 value=1
      white_balance_temperature (int)    : min=2800 max=10000 step=1 default=4500 value=4500 flags=inactive
                      sharpness (int)    : min=0 max=50 step=1 default=25 value=25
         backlight_compensation (int)    : min=0 max=10 step=1 default=0 value=0

Prueba de fswebcam
Citar
root@OpenWrt:~# fswebcam -d v4l2:/dev/video0 -i 0 -r 1280x720  --no-banner --save /www/test.jpg
--- Opening v4l2:/dev/video0...
/dev/video0 opened.
--- Capturing frame...
Captured frame in 0.00 seconds.
--- Processing captured image...
Disabling banner.
Writing JPEG image to '/www/test.jpg'.
OK.

Configuración /etc/config/mjpg-streamer
Citar
config mjpg-streamer 'core'
   option enabled '1'
   option input 'uvc'
   option output 'http'
   option device '/dev/video0'
   option resolution '1280x720'
   option yuv '0'
   option quality '75'
   option fps '25'
   option led 'auto'
   option www '/www/webcam'
   option port '8080'
El formato MJPG (option yuv '0') va bien, incluso a 1280x720 y 25 fps.
En cambio, el formato YUYV (option yuv '1') satura la CPU del router y hay que bajar la resolución y/o los fps para obtener vídeo fluido.

La llamada directa a mjpeg_streamer no permite elegir formato de vídeo. Hay que cambiarlo antes con v4l2.
Código: [Seleccionar]
v4l2-ctl --set-fmt-video=pixelformat='MJPG'
mjpg_streamer -i "input_uvc.so -r 960x544 -f 25" -o "output_http.so -p 8080"

« Última modificación: 12-06-2015, 12:37 (Viernes) por raphik »

Spantapajaros

  • Visitante
Re: WebCam
« Respuesta #8 en: 11-06-2015, 00:12 (Jueves) »
Buenísimo, gracias por compartir  ;D


Altair64

  • Visitante
Re: WebCam
« Respuesta #9 en: 11-06-2015, 13:08 (Jueves) »
Buah muy buena, OpenWRT para crear cámaras IP. Quizás así les dé uso a alguna de las 2 cams que tengo por casa sin uso  ;D


seny

  • Visitante
Re: WebCam
« Respuesta #10 en: 18-06-2015, 23:45 (Jueves) »
Muchas gracias raphik, confirmo que todo lo que explicas funciona también con la BB 14.07 rc3 en el mismo router y usando una Logitech c270 hasta los 1280x960 de resolución, tuve problemas la primera vez que intenté hacer funcionar una webcam en openwrt porque solo tenía una Hercules Classic Silver "ID 06f8:300c Guillemot Corp." y despues de hacer funcionar la c270 es cuando descubri que los problemas solo eran por la webcam usada, con la Hercules solo era capaz de hacer 1 o 2 fotos enteras a 640x480, en las fotos sucesivas solo compone las primeras 7 u 8 líneas y en modo streaming no funcionó nunca.

Saludos


raphik

  • Visitante
Re: WebCam
« Respuesta #11 en: 20-06-2015, 08:00 (Sábado) »
Muchas gracias raphik...

Gracias a ti por comentar.
Saludos.


Sir-Stephen

  • Visitante
Re: WebCam
« Respuesta #12 en: 14-07-2015, 08:47 (Martes) »
Bueno, pues ahora Me toca a Mi, jejejeje.....

Vamos a reciclar una webcam que podemos tener de algún despiece de portatil de esos que a veces se nos queda por ahi en un cajón... la webcam está en la parte superior de la pantalla, la cual tendremos que abrir, para obtener una placa de circuito impreso similar a esta:


Al ver el lado izquierdo, donde el conector, ya intuimos que con 4 o 5 pines, la cámara es USB... solo nos queda ver como conectarla o averiguar los pines...


En este caso, hemos tenido suerte, puesto que el pin-out de la cam está en la serigrafía, asi que simplemente con coger un cable USB al que previamente hemos pelado los hilos, conectaremos el Rojo y negro a +5V y GND, respectivamente, y el verde y blanco a +D y -D, y ya está... pero la mayoría de las veces no hay serigrafía y nos toca investigar... veamos como.....


Toda cam USB tiene al lado del conector una pequeña bobina doble, una especie de componente de color negro en el que se adivinan 4 patas, siendo dos de entrada y dos de salida... dicha bobina está en serie con los pines +D y -D, con objeto de filtrar posibles espúreos que afecten al trasvase de datos USB.... así que ya tenemos localizados dos pines....  En la siguiente foto está marcado y se ve mejor...


Tomamos de la bobina doble los 2 pines superiores, y medimos  con el ohmetro la continuidad entre una de esas patillas y los pines del conector de la Cam, marcando en uno de ellos, pudiendo ser +D o -D... así que volveremos a medir la continuidad entre el otro pin superior de la bobina y el conector, obteniendo el otro pin que podrá ser +D o -D... en cualquier caso, tendremos identificadas la entrada de datos...


Ahora veamos la alimentación.... el negativo o GND es fácil:  cualquier agujero metalizado de los tornillos de la cam es la "masa" o negativo... Respecto al positivo de +5V, lo normal es que siempre haya un componente que pone "000", "F" o similar, que es un fusible colocado como protección, y que evidentemente irá al voltaje positivo, asi que.... nuevamente colocamos el ohmetro y medimos entre los pines que nos queden sin identificar en el conector de la Cam y uno de los pines del componente "000".... cuando marque continuidad, habremos identificado el voltaje +5V de entrada....


Ahora cogeremos el cable USB cortado y soldaremos los 4 pines con los colores anteriormente expuestos en los puntos anteriormente obtenidos.... Eh!! que si tenemos el conector de la Cam, podemos hacer empalmes y nos ahorramos la soldadura.....  Eso si, según la ley de Murphy, lo mas probable es que invirtamos +D y -D... no pasa nada, le damos la vuelta a los cable y volvemos a probar, jejejejeje....


Esta es la que fabriqué... en Mi caso desoldé el conector con el soldador de aire caliente, y soldé los pines directamente... posteriormente le puse una gota de silicona para darle resistencia a la tracción mecánica y puse una funda termoretractil de protección.....

Evidentemente, el siguiente paso es ver si se reconoce la cámara, ya sea en Windows o en Linux, y si eso sucede es que todo es correcto.... ya despues tocará pelearse con Openwrt, asi que... a divertirse!!!

P.D.:  Con la misma técnica, averigué y monté un lector de huellas digitales obtenido de un portátil HP Mini.... y quedó asi de bien!!!... Se podrá utilizar en OpenWrt???


« Última modificación: 16-07-2015, 13:00 (Jueves) por Sir-Stephen »

vk496

  • Visitante
Re: Re: WebCam
« Respuesta #13 en: 14-07-2015, 10:24 (Martes) »
Bueno, pues ahora Me toca a Mi, jejejeje.....

Vamos a reciclar una webcam que podemos tener de algún despiece de portatil de esos que a veces se nos queda por ahi en un cajón... la webcam está en la parte superior de la pantalla, la cual tendremos que abrir, para obtener una placa de circuito impreso similar a esta:


Al ver el lado izquierdo, donde el conector, ya intuimos que con 4 o 5 pines, la cámara es USB... solo nos queda ver como conectarla o averiguar los pines...


En este caso, hemos tenido suerte, puesto que el pin-out de la cam está en la serigrafía, asi que simplemente con coger un cable USB al que previamente hemos pelado los hilos, conectaremos el Rojo y negro a +5V y GND, respectivamente, y el verde y blanco a +D y -D, y ya está... pero la mayoría de las veces no hay serigrafía y nos toca investigar... veamos como.....


Toda cam USB tiene al lado del conector una pequeña bobina doble, una especie de componente de color negro en el que se adivinan 4 patas, siendo dos de entrada y dos de salida... dicha bobina está en serie con los pines +D y -D, con objeto de filtrar posibles espúreos que afecten al trasvase de datos USB.... así que ya tenemos localizados dos pines....  En la siguiente foto está marcado y se ve mejor...


Tomamos de la bobina doble los 2 pines superiores, y medimos  con el ohmetro la continuidad entre una de esas patillas y los pines del conector de la Cam, marcando en uno de ellos, pudiendo ser +D o -D... así que volveremos a medir la continuidad entre el otro pin superior de la bobina y el conector, obteniendo el otro pin que podrá ser +D o -D... en cualquier caso, tendremos identificadas la entrada de datos...


Ahora veamos la alimentación.... el negativo o GND es fácil:  cualquier agujero metalizado de los tornillos de la cam es la "masa" o negativo... Respecto al positivo de +5V, lo normal es que siempre haya un componente que pone "000", "F" o similar, que es un fusible colocado como protección, y que evidentemente irá al voltaje positivo, asi que.... nuevamente colocamos el ohmetro y medimos entre los pines que nos queden sin identificar en el conector de la Cam y uno de los pines del componente "000".... cuando marque continuidad, habremos identificado el voltaje +5V de entrada....


Ahora cogeremos el cable USB cortado y soldaremos los 4 pines con los colores anteriormente expuestos en los puntos anteriormente obtenidos.... Eh!! que si tenemos el conector de la Cam, podemos hacer empalmes y nos ahorramos la soldadura.....  Eso si, según la ley de Murphy, lo mas probable es que invirtamos +D y -D... no pasa nada, le damos la vuelta a los cable y volvemos a probar, jejejejeje....


Esta es la que fabriqué... en Mi caso desoldé el conector con el soldador de aire caliente, y soldé los pines directamente... posteriormente le puse una gota de silicona para darle resistencia a la tracción mecánica y puse una funda termoretractil de protección.....

Evidentemente, el siguiente paso es ver si se reconoce la cámara, ya sea en Windows o en Linux, y si eso sucede es que todo es correcto.... ya despues tocará pelearse con Openwrt, asi que... a divertirse!!!

P.D.:  Con la misma técnica, averigué y monté un lector de huellas digitales obtenido de un portátil HP Mini.... y quedó asi de bien!!!... Se podrá utilizar en OpenWrt???

Bravo.

Hace poco se quemó un portátil mío. Esto me puede venir genial...

Salu2


terri

  • Visitante
Re: WebCam
« Respuesta #14 en: 01-11-2015, 23:59 (Domingo) »
he instalado una webcam vieja con resolucion 640x480, en un ADB A4001N Home Station de movistar, con el firm de openwrt "Chaos Calmer 15.05".
Usando motion tengo unos consumos muy altos de CPU y RAM:

Mem: 24520K used, 4220K free, 64K shrd, 984K buff, 2552K cached
CPU:  74% usr   2% sys   0% nic  22% idle   0% io   0% irq   0% sirq
Load average: 1.20 1.12 0.95 2/42 1179
  PID  PPID USER     STAT   VSZ %VSZ %CPU COMMAND
 1172  1170 root     S    13208  46%  76% motion -c /etc/motion.conf

Si bajo la resolucion a la mitad (320x240) entonces el consumo se normaliza, pero las imagenes dejan mucho que desear. :'(

« Última modificación: 02-11-2015, 00:00 (Lunes) por terri »

raphik

  • Visitante
Re: WebCam
« Respuesta #15 en: 11-11-2015, 20:04 (Miércoles) »
¿Has probado asignar a la variable "framerate" del fichero de configuración valores inferiores a 5?

Saludos.


terri

  • Visitante
Re: WebCam
« Respuesta #16 en: 11-11-2015, 21:11 (Miércoles) »
lo tengo al valor minimo "framerate=2", aun asi solo capturo imagenes, no hago video.

De todas formas esta funcionando como el reloj sovietico que decia la guia, da el servicio wifi decentemente y no esta caliente (lo normal que esta un router) ;)

Gracias.

« Última modificación: 11-11-2015, 21:19 (Miércoles) por terri »

edudi

  • Visitante
Re: WebCam
« Respuesta #17 en: 18-06-2016, 19:53 (Sábado) »
Buenas a todos, creo que ya muchos conocen: fswebcam, mjpg-streamer y el maravilloso Motion. He usado durante un tiempo las Webcams de PlayStation: Eye Toy de PS3, como tb la gris (640x480 x defecto) o la negra de PS2. Y van de lujo las 3 con: el fswebcam y el Motion con respecto a las fotos y el streaming.

Tengo dos cuestiones que no consigo resolver:

1º Grabar un vídeo con el motion cuando haya movimiento (Si consigo: fotos cada x's segundos, fotos al detectar movimientos, streaming online, control_web, ...todo grabándose en un pendrive y por WiFi como cliente relayd).

2º Grabar un simple vídeo de x's segundos ó minutos sin necesidad de movimientos, al margen de que haya que usar o no el Motion. Vaya una simple línea de comando donde sea por ejemplo: ffmpeg /dev/video0 prueba.mp4 30 (30 segundos).



Con respecto al 1º punto:

Estoy vuelto loco con las supuestas opciones que activan los vídeos, pero nada, los valores están cambiados/activados a los de por defecto a ver si surgía efecto, pero que va:

############################################################
# FFMPEG related options
# Film (movies) file output, and deinterlacing of the video input
# The options movie_filename and timelapse_filename are also used
# by the ffmpeg feature
############################################################

# Use ffmpeg to encode movies in realtime (default: off)
ffmpeg_output_movies on

# Use ffmpeg to make movies with only the pixels moving
# object (ghost images) (default: off)
ffmpeg_output_debug_movies on

# Use ffmpeg to encode a timelapse movie
# Default value 0 = off - else save frame every Nth second
ffmpeg_timelapse 1

# The file rollover mode of the timelapse video
# Valid values: hourly, daily (default), weekly-sunday, weekly-monday, monthly, manual
ffmpeg_timelapse_mode hourly

# Bitrate to be used by the ffmpeg encoder (default: 400000)
# This option is ignored if ffmpeg_variable_bitrate is not 0 (disabled)
ffmpeg_bps 500000

# Enables and defines variable bitrate for the ffmpeg encoder.
# ffmpeg_bps is ignored if variable bitrate is enabled.
# Valid values: 0 (default) = fixed bitrate defined by ffmpeg_bps,
# or the range 2 - 31 where 2 means best quality and 31 is worst.
ffmpeg_variable_bitrate 0

# Codec to used by ffmpeg for the video compression.
# Timelapse mpegs are always made in mpeg1 format independent from this option.
# Supported formats are: mpeg1 (ffmpeg-0.4.8 only), mpeg4 (default), and msmpeg4.
# mpeg1 - gives you files with extension .mpg
# mpeg4 or msmpeg4 - gives you files with extension .avi
# msmpeg4 is recommended for use with Windows Media Player because
# it requires no installation of codec on the Windows client.
# swf - gives you a flash film with extension .swf
# flv - gives you a flash video with extension .flv
# ffv1 - FF video codec 1 for Lossless Encoding ( experimental )
# mov - QuickTime ( testing )
ffmpeg_video_codec mpeg4

# Use ffmpeg to deinterlace video. Necessary if you use an analog camera
# and see horizontal combing on moving objects in video or pictures.
# (default: off)
ffmpeg_deinterlace off




No hay forma de que aparezca ningún vídeo en el pendrive, sin embargo las fotos si las saca cuando hay movimiento, este es el log:

------------------------
cap.driver: "ov534"
cap.card: "USB Camera-B4.09.24.1"
cap.bus_info: "usb-ehci-platform-1.2"
cap.capabilities=0x85000001
------------------------
[1] [NTC] [VID] [Jun 18 16:19:48] v4l2_get_capability: - VIDEO_CAPTURE
  • [NTC] [ALL] [Jun 18 16:19:48] main: Waiting for threads to finish, pid: 7257
  • [0]
[NTC] [STR] [Jun 18 16:19:48] httpd_run: motion-httpd Bound : IPV4 addr: 0.0.0.0 port: 8080
  • [NTC] [STR] [Jun 18 16:19:48] httpd_run: motion-httpd/trunkREV528 running, accepting connections
  • [0]
[NTC] [STR] [Jun 18 16:19:48] httpd_run: motion-httpd: waiting for data on 0.0.0.0 port TCP 8080
[1] [NTC] [VID] [Jun 18 16:19:48] v4l2_get_capability: - READWRITE
[1] [NTC] [VID] [Jun 18 16:19:48] v4l2_get_capability: - STREAMING
[1] [NTC] [VID] [Jun 18 16:19:48] v4l2_select_input: name = "ov534", type 0x00000002, status 00000000
[1] [NTC] [VID] [Jun 18 16:19:48] v4l2_select_input: - CAMERA
[1] [WRN] [VID] [Jun 18 16:19:48] v4l2_select_input: Device doesn't support VIDIOC_G_STD
[1] [NTC] [VID] [Jun 18 16:19:48] v4l2_do_set_pix_format: Testing palette YUYV (320x240)
[1] [NTC] [VID] [Jun 18 16:19:48] v4l2_do_set_pix_format: Using palette YUYV (320x240) bytesperlines 640 sizeimage 153600 colorspace 00000008
[1] [NTC] [VID] [Jun 18 16:19:48] v4l2_scan_controls: found control 0x00980900, "Brightness", range 0,255
[1] [NTC] [VID] [Jun 18 16:19:48] v4l2_scan_controls:    "Brightness", default 0, current 0
[1] [NTC] [VID] [Jun 18 16:19:48] v4l2_scan_controls: found control 0x00980901, "Contrast", range 0,255
[1] [NTC] [VID] [Jun 18 16:19:48] v4l2_scan_controls:    "Contrast", default 32, current 32
[1] [NTC] [VID] [Jun 18 16:19:48] v4l2_scan_controls: found control 0x00980902, "Saturation", range 0,255
[1] [NTC] [VID] [Jun 18 16:19:48] v4l2_scan_controls:    "Saturation", default 64, current 64
[1] [NTC] [VID] [Jun 18 16:19:48] v4l2_scan_controls: found control 0x00980903, "Hue", range -90,90
[1] [NTC] [VID] [Jun 18 16:19:48] v4l2_scan_controls:    "Hue", default 0, current 0
[1] [NTC] [VID] [Jun 18 16:19:48] v4l2_scan_controls: found control 0x00980911, "Exposure", range 0,255
[1] [NTC] [VID] [Jun 18 16:19:48] v4l2_scan_controls:    "Exposure", default 120, current 120
[1] [NTC] [VID] [Jun 18 16:19:48] v4l2_scan_controls: found control 0x00980912, "Gain, Automatic", range 0,1
[1] [NTC] [VID] [Jun 18 16:19:48] v4l2_scan_controls:    "Gain, Automatic", default 1, current 1
[1] [NTC] [VID] [Jun 18 16:19:48] v4l2_scan_controls: found control 0x00980913, "Gain", range 0,63
[1] [NTC] [VID] [Jun 18 16:19:48] v4l2_scan_controls:    "Gain", default 20, current 20
[1] [NTC] [VID] [Jun 18 16:19:49] vid_v4lx_start: Using V4L2
[1] [NTC] [ALL] [Jun 18 16:19:49] image_ring_resize: Resizing pre_capture buffer to 1 items
[1] [NTC] [STR] [Jun 18 16:19:49] http_bindsock: motion-stream testing : IPV4 addr: 0.0.0.0 port: 8081
[1] [NTC] [STR] [Jun 18 16:19:49] http_bindsock: motion-stream Bound : IPV4 addr: 0.0.0.0 port: 8081
[1] [NTC] [ALL] [Jun 18 16:19:49] motion_init: Started motion-stream server in port 8081
[1] [NTC] [EVT] [Jun 18 16:20:00] event_newfile: File of type 2 saved to: /mnt/sda1/0_Webcam/2016-06-18-16:20:00-snapshot-01.jpg
[1] [NTC] [EVT] [Jun 18 16:20:07] event_new_video FPS 5
[1] [NTC] [ALL] [Jun 18 16:20:07] motion_detected: Motion detected - starting event 1
[1] [NTC] [EVT] [Jun 18 16:20:07] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-162007-02.jpg
[1] [NTC] [EVT] [Jun 18 16:20:07] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-162007-03.jpg
[1] [NTC] [EVT] [Jun 18 16:20:08] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-162007-04.jpg
[1] [NTC] [EVT] [Jun 18 16:20:08] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-162008-00.jpg
[1] [NTC] [EVT] [Jun 18 16:20:13] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-162013-03.jpg
[1] [NTC] [EVT] [Jun 18 16:20:14] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-162014-00.jpg
[1] [NTC] [EVT] [Jun 18 16:25:00] event_newfile: File of type 2 saved to: /mnt/sda1/0_Webcam/2016-06-18-16:25:00-snapshot-02.jpg
  • [NTC] [STR] [Jun 18 16:27:08] httpd_run: motion-httpd - Read from client
  • [1]
[NTC] [EVT] [Jun 18 16:30:00] event_newfile: File of type 2 saved to: /mnt/sda1/0_Webcam/2016-06-18-16:30:00-snapshot-02.jpg
[1] [NTC] [EVT] [Jun 18 16:33:43] event_new_video FPS 5
[1] [NTC] [ALL] [Jun 18 16:33:43] motion_detected: Motion detected - starting event 2
[1] [NTC] [EVT] [Jun 18 16:33:43] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-163343-03.jpg
[1] [NTC] [EVT] [Jun 18 16:33:44] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-163343-04.jpg
[1] [NTC] [EVT] [Jun 18 16:33:44] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-163344-00.jpg
[1] [NTC] [EVT] [Jun 18 16:34:13] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-163412-04.jpg
[1] [NTC] [EVT] [Jun 18 16:35:00] event_newfile: File of type 2 saved to: /mnt/sda1/0_Webcam/2016-06-18-16:35:00-snapshot-02.jpg
[1] [NTC] [EVT] [Jun 18 16:35:38] event_new_video FPS 5
[1] [NTC] [ALL] [Jun 18 16:35:38] motion_detected: Motion detected - starting event 3
[1] [NTC] [EVT] [Jun 18 16:35:38] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-163538-00.jpg
[1] [NTC] [EVT] [Jun 18 16:35:38] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-163538-01.jpg
[1] [NTC] [EVT] [Jun 18 16:39:51] event_new_video FPS 5
[1] [NTC] [ALL] [Jun 18 16:39:51] motion_detected: Motion detected - starting event 4
[1] [NTC] [EVT] [Jun 18 16:39:51] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-163951-04.jpg
[1] [NTC] [EVT] [Jun 18 16:39:52] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-163952-00.jpg
[1] [NTC] [EVT] [Jun 18 16:39:52] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-163952-01.jpg
[1] [NTC] [EVT] [Jun 18 16:39:52] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-163952-02.jpg
[1] [NTC] [EVT] [Jun 18 16:40:00] event_newfile: File of type 2 saved to: /mnt/sda1/0_Webcam/2016-06-18-16:40:00-snapshot-04.jpg
[1] [NTC] [EVT] [Jun 18 16:43:18] event_new_video FPS 5
[1] [NTC] [ALL] [Jun 18 16:43:18] motion_detected: Motion detected - starting event 5
[1] [NTC] [EVT] [Jun 18 16:43:18] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-164318-00.jpg
[1] [NTC] [EVT] [Jun 18 16:45:00] event_newfile: File of type 2 saved to: /mnt/sda1/0_Webcam/2016-06-18-16:45:00-snapshot-06.jpg
[1] [NTC] [EVT] [Jun 18 16:47:06] event_new_video FPS 5
[1] [NTC] [ALL] [Jun 18 16:47:06] motion_detected: Motion detected - starting event 6
[1] [NTC] [EVT] [Jun 18 16:47:06] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-164706-03.jpg
[1] [NTC] [EVT] [Jun 18 16:49:55] event_new_video FPS 5
[1] [NTC] [ALL] [Jun 18 16:49:55] motion_detected: Motion detected - starting event 7
[1] [NTC] [EVT] [Jun 18 16:49:55] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-164954-03.jpg
[1] [NTC] [EVT] [Jun 18 16:50:00] event_newfile: File of type 2 saved to: /mnt/sda1/0_Webcam/2016-06-18-16:50:00-snapshot-07.jpg
[1] [NTC] [EVT] [Jun 18 16:50:42] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-165041-04.jpg
[1] [NTC] [EVT] [Jun 18 16:50:42] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-165042-00.jpg
[1] [NTC] [EVT] [Jun 18 16:50:42] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-165042-01.jpg
[1] [NTC] [EVT] [Jun 18 16:50:43] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-165042-02.jpg
[1] [NTC] [EVT] [Jun 18 16:50:43] event_newfile: File of type 1 saved to: /mnt/sda1/0_Webcam/18062016-165043-00.jpg
[1] [NTC] [ALL] [Jun 18 16:52:20] motion_loop: Thread exiting
[1] [NTC] [STR] [Jun 18 16:52:20] stream_stop: Closing motion-stream listen socket & active motion-stream sockets
[1] [NTC] [STR] [Jun 18 16:52:20] stream_stop: Closed motion-stream listen socket & active motion-stream sockets
[1] [NTC] [VID] [Jun 18 16:52:20] vid_close: Closing video device /dev/video0
  • [NTC] [ALL] [Jun 18 16:52:21] main: Threads finished
  • [0]
[NTC] [STR] [Jun 18 16:52:22] httpd_run: motion-httpd - Finishing
  • [NTC] [STR] [Jun 18 16:52:22] httpd_run: motion-httpd Closing
  • [0]
[NTC] [STR] [Jun 18 16:52:22] motion_web_control: motion-httpd thread exit
  • [NTC] [ALL] [Jun 18 16:52:22] main: Motion terminating
  • [0]
[NTC] [ALL] [Jun 18 16:52:22] motion_remove_pid: Removed process id file (pid file).
  • [NTC] [ALL] [Jun 18 16:52:22] motion_remove_pid: Closing logfile (/tmp/motion.log).
  • [0]
[NTC] [ALL] [Jun 18 17:06:07] motion_startup: Using log type (ALL) log level (NTC)
  • [NTC] [ALL] [Jun 18 17:06:07] become_daemon: Motion going to daemon mode
  • [0]
[NTC] [ALL] [Jun 18 17:06:07] become_daemon: Created process id file /var/run/motion/motion.pid. Process ID is 12653
  • [NTC] [ALL] [Jun 18 17:06:07] motion_startup: Motion running as daemon process
  • [0]
[NTC] [ALL] [Jun 18 17:06:07] main: Thread 1 is from /etc/motion.conf
  • [NTC] [ALL] [Jun 18 17:06:07] main: Thread 1 is device: /dev/video0 input -1
  • [0]
[NTC] [ALL] [Jun 18 17:06:07] main: Stream port 8081
  • [NTC] [ALL] [Jun 18 17:06:07] main: Waiting for threads to finish, pid: 12653
  • [1]
[NTC] [ALL] [Jun 18 17:06:07] motion_init: Thread 1 started
[1] [NTC] [VID] [Jun 18 17:06:07] vid_v4lx_start: Using videodevice /dev/video0 and input -1
[1] [NTC] [VID] [Jun 18 17:06:07] v4l2_get_capability:


Salvo, la línea:  [1] [WRN] [VID] [Jun 18 16:19:48] v4l2_select_input: Device doesn't support VIDIOC_G_STD
que no sé que significa, lo demás está funcionando correctamente, ...menos los vídeos...




Con respecto al 2º punto:
He estado buscando y he encontrado: ffmpeg      como mejor opción para grabar un simple vídeo por línea de comandos, estoy probando en línea de comandos y el programa responde en base a info que encuentro, pero claro, awita para hallar la bendita línea de comando mágica para el cometido propuesto, he estado visitando:

Este link: https://forum.openwrt.org/viewtopic.php?id=59831             el cual me llevó al siguiente enlace:

Este foro exclusivo de ffmpeg: http://ffmpeg.gusari.org/viewforum.php?f=11



¿Alguien sabría como se puede grabar el simple vídeo sin detección de movimiento de 30 sg x ej? Me da igual el programa que lo haga.

Un saludo y gracias a todos.


PD: Omitir el "input -1", es una de las modificaciones que hice buscando en la red, actualmente la quité y sigue igual:
[NTC] [ALL] [Jun 18 17:06:07] main: Thread 1 is device: /dev/video0 input -1            Se supone que es para forzar de los posibles canales que hay, que por defecto es el 8, pues para que coja el único que sería la Webcam como input,   ....aunque para fotos si va... vaya omitir...

« Última modificación: 18-06-2016, 19:58 (Sábado) por edudi »

Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2250
Re: WebCam
« Respuesta #18 en: 18-06-2016, 21:22 (Sábado) »
Una tontería, pero, ¿has probado a ejecutar un programa paralelo, que espere 30 segundos, y mande un killall al ffmpeg para pararlo?
Si el ffmpeg responde bien, debería dejarte el vídeo sin corromper.
Lo mismo lo que he dicho es una tontería, pero es lo primero que se me ha ocurrido para ponerle un contador de tiempo...


edudi

  • Visitante
Re: WebCam
« Respuesta #19 en: 18-06-2016, 21:31 (Sábado) »

2º Grabar un simple vídeo de x's segundos ó minutos sin necesidad de movimientos, al margen de que haya que usar o no el Motion. Vaya una simple línea de comando donde sea por ejemplo: ffmpeg /dev/video0 prueba.mp4 30 (30 segundos).

Con respecto al 2º punto:
He estado buscando y he encontrado: ffmpeg      como mejor opción para grabar un simple vídeo por línea de comandos, estoy probando en línea de comandos y el programa responde en base a info que encuentro, pero claro, awita para hallar la bendita línea de comando mágica para el cometido propuesto, he estado visitando:



Buenas, pues con respecto al 2º punto ya está resuelto el asunto gracias a la colaboración de un administrador de una web con la que empecé con el Motion en su día:

https://2tazasdelinux.blogspot.com.es/2015/03/montemos-una-webcam-ip-barata-y-iii.html?showComment=1466085818895#c6110077888384966557[/b]]https://2tazasdelinux.blogspot.com.es/2015/03/montemos-una-webcam-ip-barata-y-iii.html?showComment=1466085818895#c6110077888384966557

Para saber si es compatible con nuestra webcam, la bendita línea de comandos, lanzamos esta primero, si da error, pues chungalí, sino, pues estamos de suerte:

v4l2-ctl --list-formats-ext


La bendita línea de comando es:

ffmpeg -y -f video4linux2 -c:v rawvideo -s 320x240 -i /dev/video0 -t 22 /mnt/sda1/mivideo.avi


Y este es su log:

root@OpenWrt:/# v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
        Index       : 0
        Type        : Video Capture
        Pixel Format: 'YUYV'
        Name        : YUYV
                Size: Discrete 320x240
                        Interval: Discrete 0.008s (125.000 fps)
                        Interval: Discrete 0.010s (100.000 fps)
                        Interval: Discrete 0.013s (75.000 fps)
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.025s (40.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 640x480
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.025s (40.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.067s (15.000 fps)

root@OpenWrt:/# ffmpeg -y -f video4linux2 -c:v rawvideo -s 320x240 -i /dev/video0 -t 22 /mnt/sda1/mivideo.avi
ffmpeg version 0.11.5 Copyright (c) 2000-2014 the FFmpeg developers
  built on Aug 10 2014 15:27:41 with gcc 4.8.3
  configuration: --enable-cross-compile --cross-prefix=mips-openwrt-linux-uclibc- --arch=mips --target-os=linux --prefix=/usr --enable-shared --enable-static --disable-debug --pkg-config=pkg-config --enable-gpl --enable-version3 --disable-altivec --disable-asm --disable-doc --disable-dxva2 --enable-pthreads --disable-optimizations --enable-small --disable-stripping --enable-zlib --disable-outdevs
  libavutil      51. 54.100 / 51. 54.100
  libavcodec     54. 23.100 / 54. 23.100
  libavformat    54.  6.100 / 54.  6.100
  libavdevice    54.  0.100 / 54.  0.100
  libavfilter     2. 77.100 /  2. 77.100
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
[video4linux2,v4l2 @ 0x785600] Estimating duration from bitrate, this may be inaccurate
Input #0, video4linux2,v4l2, from '/dev/video0':
  Duration: N/A, start: 2915.511623, bitrate: 36864 kb/s
    Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 320x240, 36864 kb/s, 30 tbr, 1000k tbn, 30 tbc
[buffer @ 0x785af0] w:320 h:240 pixfmt:yuyv422 tb:1/1000000 sar:0/1 sws_param:flags=2
[buffersink @ 0x7832b0] No opaque field provided
[format @ 0x783460] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'format'
[scale @ 0x7837b0] w:320 h:240 fmt:yuyv422 sar:0/1 -> w:320 h:240 fmt:yuv420p sar:0/1 flags:0x4
Output #0, avi, to '/mnt/sda1/mivideo.avi':
  Metadata:
    ISFT            : Lavf54.6.100
    Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 320x240, q=2-31, 200 kb/s, 30 tbn, 30 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo -> mpeg4)
Press [q] to stop, [?] for help
frame=  190 fps=8.1 q=4.8 Lsize=     383kB time=00:00:21.96 bitrate= 142.9kbits/s
video:362kB audio:0kB global headers:0kB muxing overhead 5.818930%
root@OpenWrt:/#



En mi caso, la Eye Toy de PS3 aunque aparezca que es compatible con 640x480, el programa se queda atascado a medio camino, por lo que la bajé a 320x240 y funcionó a la 1ª.


Bueno, ya la 2º parte de grabar el vídeo por un período de tiempo determinado, solventado.

Ahora me falta, con menos prisa por mi parte, el 1º punto: la del motion si detecta movimiento que grabe, cosa que no consigo.



Una tontería, pero, ¿has probado a ejecutar un programa paralelo, que espere 30 segundos, y mande un killall al ffmpeg para pararlo?
Si el ffmpeg responde bien, debería dejarte el vídeo sin corromper.
Lo mismo lo que he dicho es una tontería, pero es lo primero que se me ha ocurrido para ponerle un contador de tiempo...


Es buena idea, lo que me faltaba era el comando completo para grabar usando el ffmpeg. De todas formas, estaría bien dejarlo como dices ejecutando sin límite de tiempo y mandarle un killall al ffmpeg a ver que pasa, lo probaré en breve. Gracias

Edito:

Ya probé lo que propusiste y funciona:

Probado el: killall ffmpeg     <----no corrompe el vídeo, quedando en perfecto estado el vídeo.
   
Después de lanzar sin límite de tiempo:  ffmpeg -y -f video4linux2 -c:v rawvideo -s 320x240 -i /dev/video0 /mnt/sda1/mivideo5.avi



Saludos y ya que la respuesta fue tan rápida, al menos para que sirva para quien lo quiera usar ;)

« Última modificación: 18-06-2016, 21:47 (Sábado) por edudi »