ffmpeg se bloquea cuando intenta grabar video en resoluciones más altas

Intento grabar algunos videos usando una camera USB, pero tengo algunos problemas cuando uso ffmpeg .

Si ejecuto ffmpeg -f video4linux2 -t 00:00:10 -i /dev/video0 out.mpg , el progtwig intenta grabar a una resolución de 640×480 y ffmpeg cuelga.

Sin embargo, si agrego -s a ffmpeg y grabo a resoluciones inferiores a 640×480 (por ejemplo, 320×240), el video se grabará con éxito.

Después de un hang, si presiona CTRL+C , se reanuda ffmpeg, produciendo un file de 0 kB de tamaño. Utilizando strace puedo ver que una ioctl al dispositivo mantiene devoluciones -EINVAL y posteriores ioctl devuelven -EAGAIN .

 ioctl(3, VIDIOC_G_STD, 0xbe84dfb0) = -1 EINVAL (Invalid argument) ioctl(3, VIDIOC_DQBUF, {type=V4L2_BUF_TYPE_VIDEO_CAPTURE}) = -1 EAGAIN (Resource temporarily unavailable) 

¿Alguna idea de por qué sucede esto?

Estoy usando ffmpeg versión 2.8.7, construido a través de busybox 1.25. La architecture del host es un procesador ARM que ejecuta Kernel 3.2.

También intenté comstackr la versión más reciente de la fuente, y el problema persiste …

Solutions Collecting From Web of "ffmpeg se bloquea cuando intenta grabar video en resoluciones más altas"

Descubierto el motivo: transencoding y volumen de datos en bruto.

Usando la línea de command mencionada en mi pregunta, estaba leyendo un formatting sin formatting (yuv422) y transcodificándolo a mpeg-1, que era la encoding pnetworkingeterminada para mi versión de ffmpeg . La cantidad de datos transmitidos desde la camera fue simplemente demasiado para el procesador, lo que provocó la caída. La camera que estaba usando también era capaz de transmitir en un formatting comprimido (mjpeg). Al cambiar a este formatting, ffmpeg ya no se cuelga, y era capaz de grabar a 15 fps.

Sin embargo, hubo un paso de transencoding, de mjpeg a mpeg-1. Pude llegar a un conteo de fps más alto al decirle a ffmpeg que copie la secuencia, eliminando el último paso de transencoding.