[FFmpeg-user] video4linux2 framerate

Clément Bœsch u at pkh.me
Wed Apr 30 17:36:06 CEST 2014


On Wed, Apr 30, 2014 at 08:23:12AM -0500, kqt4at5v at gmail.com wrote:
> I know I will get flamed for referring to a specific distribution but I
> think it is irrelevant. Previously using ffmpeg package in Ubuntu 10.04 I
> used "ffmpeg -f video4linux2 -s 640x480 -r 1 -i /dev/${CAMERA} -an
> ${CAPTURE_DIR}/\%05d.jpg"
> to get 1 frame per second. I upgraded to Ubuntu 12.04 and It is broken.
> 
> ffmpeg version 0.8.10-4:0.8.10-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav developers
>   built on Feb  6 2014 20:59:08 with gcc 4.6.3
> *** THIS PROGRAM IS DEPRECATED ***
> This program is only provided for compatibility and will be removed in a
> future release. Please use avconv instead.
> [video4linux2 @ 0x8997aa0] ioctl set time per frame(1/1) failed
> [video4linux2 @ 0x8997aa0] ioctl(VIDIOC_DQBUF): Invalid argument
> [video4linux2 @ 0x8997aa0] decoding for stream 0 failed
> [video4linux2 @ 0x8997aa0] Estimating duration from bitrate, this may be inaccurate
> /dev/shop: could not find codec parameters
> 
> I tried avconv and got the same error. I compiled the latest tarball from
> ffmpeg.org, ffmpeg-2.2.1.tar.bz2,
> 
> ffmpeg version 2.2.1 Copyright (c) 2000-2014 the FFmpeg developers  built on
> Apr 29 2014 13:33:50 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
>   configuration: --prefix=/home/rray/ffmpeg-2.2.1
>   libavutil      52. 66.100 / 52. 66.100
>   libavcodec     55. 52.102 / 55. 52.102
>   libavformat    55. 33.100 / 55. 33.100
>   libavdevice    55. 10.100 / 55. 10.100
>   libavfilter     4.  2.100 /  4.  2.100
>   libswscale      2.  5.102 /  2.  5.102
>   libswresample   0. 18.100 /  0. 18.100
> [video4linux2,v4l2 @ 0xb073dc0] The driver does not allow to change time per frame
> Input #0, video4linux2,v4l2, from '/dev/shop':
>   Duration: N/A, start: 1398864022.798506, bitrate: 92160 kb/s
>     Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 640x480,
> 92160 kb/s, 25 fps, 25 tbr, 1000k tbn, 1000k tbc
> [swscaler @ 0xb062040] deprecated pixel format used, make sure you did set range correctly
> Output #0, image2, to '/backup_1/camera/20140430/shop_082021/%05d.jpg':
>   Metadata:
>     encoder         : Lavf55.33.100
>     Stream #0:0: Video: mjpeg, yuvj420p, 640x480, q=2-31, 200 kb/s, 90k tbn, 1 tbc
> Stream mapping:
>   Stream #0:0 -> #0:0 (rawvideo -> mjpeg)
> Press [q] to stop, [?] for help
> frame=   22 fps= 15 q=24.8 Lsize=N/A time=00:00:22.00 bitrate=N/A
> video:1407kB audio:0kB subtitle:0 data:0 global headers:0kB muxing overhead -100.001526%
> 
> 
> It records but runs at 15 fps, I guess this is why "The driver does not
> allow to change time per frame". So my question is how can I record 1 fps?
> 

The v4l2 device input option you are probably looking for is -framerate.

Try ffmpeg -f v4l2 -framerate 1 -i ...

Also, -s is probably not doing what you expect it to do: use the
-video_size v4l2 input option.

-- 
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-user/attachments/20140430/b85e2741/attachment.asc>


More information about the ffmpeg-user mailing list