Страница 1 из 1

ffmpeg + video4linux2

Добавлено: 2014-10-28 21:19:49
serezhaf
Никак не получается грабить видео с камеры при помощи ffmpeg'а.

Установлен webcamd, камеру видит, pwcview спокойно получает изображение.
Пытаюсь выполнить ffmpeg -f video4linux2 -i /dev/video0 -vcodec mpeg4 -f avi test.avi

Код: Выделить всё

ffmpeg version 2.3.3 Copyright (c) 2000-2014 the FFmpeg developers
  built on Oct 28 2014 23:57:50 with FreeBSD clang version 3.3 (tags/RELEASE_33/final 183502) 20130610
  configuration: --disable-libaacplus --disable-indev=alsa --disable-outdev=alsa --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libass --disable-libcdio --disable-libcelt --enable-libfaac --disable-libfdk-aac --disable-ffserver --enable-fontconfig --enable-libfreetype --enable-frei0r --disable-gnutls --disable-libgsm --enable-iconv --disable-indev=jack --enable-libmp3lame --disable-libbluray --enable-libv4l2 --disable-libmodplug --disable-openal --disable-indev=openal --enable-libopencv --disable-libopenjpeg --disable-libopus --disable-libpulse --disable-indev=pulse --disable-outdev=pulse --disable-librtmp --enable-libschroedinger --disable-libspeex --enable-libtheora --disable-vaapi --disable-vdpau --enable-libvorbis --disable-libvo-aacenc --disable-libvo-amrwbenc --enable-libvpx --enable-libx264 --disable-libx265 --enable-libxvid --prefix=/usr/local --mandir=/usr/local/man --datadir=/usr/local/share/ffmpeg --enable-shared --enable-gpl --enable-postproc --enable-avfilter --enable-avresample --enable-pthreads --enable-memalign-hack --disable-libstagefright-h264 --disable-libutvideo --disable-libsoxr --cc=cc --extra-cflags='-msse -I/usr/local/include/vorbis -I/usr/local/include' --extra-ldflags='-L/usr/local/lib ' --extra-libs=-pthread --disable-debug --disable-ffplay --disable-outdev=sdl --enable-nonfree
  libavutil      52. 92.100 / 52. 92.100
  libavcodec     55. 69.100 / 55. 69.100
  libavformat    55. 48.100 / 55. 48.100
  libavdevice    55. 13.102 / 55. 13.102
  libavfilter     4. 11.100 /  4. 11.100
  libavresample   1.  3.  0 /  1.  3.  0
  libswscale      2.  6.100 /  2.  6.100
  libswresample   0. 19.100 /  0. 19.100
  libpostproc    52.  3.100 / 52.  3.100
libv4l2: error mmapping buffer 16: Invalid argument
[video4linux2,v4l2 @ 0x808050420] ioctl(VIDIOC_QBUF): Invalid argument
libv4l2: warning v4l2 mmap buffers still mapped on close()
/dev/video0: Invalid argument
truss пока не сильно помог, вот кусочек:

Код: Выделить всё

libv4l2: error mmapping buffer 16: Invalid argument
write(2,"libv4l2: error mmapping buffer 1"...,52) = 52 (0x34)
[video4linux2,v4l2 @ 0x808050420] write(2,"\^[[0;35m[video4linux2,v4l2 @ 0x"...,45) = 45 (0x2d)
ioctl(VIDIOC_QBUF): Invalid argument
write(2,"\^[[1;31mioctl(VIDIOC_QBUF): Inv"...,48) = 48 (0x30)
munmap(0x800685000,460800)                       = 0 (0x0)
munmap(0x8006f6000,460800)                       = 0 (0x0)
munmap(0x800767000,460800)                       = 0 (0x0)
munmap(0x80798e000,460800)                       = 0 (0x0)
munmap(0x8079ff000,460800)                       = 0 (0x0)
munmap(0x807a70000,460800)                       = 0 (0x0)
munmap(0x807ae1000,460800)                       = 0 (0x0)
munmap(0x807b52000,460800)                       = 0 (0x0)
munmap(0x828400000,460800)                       = 0 (0x0)
munmap(0x828471000,460800)                       = 0 (0x0)
munmap(0x8284e2000,460800)                       = 0 (0x0)
munmap(0x828553000,460800)                       = 0 (0x0)
munmap(0x8285c4000,460800)                       = 0 (0x0)
munmap(0x828635000,460800)                       = 0 (0x0)
munmap(0x8286a6000,460800)                       = 0 (0x0)
munmap(0x828717000,460800)                       = 0 (0x0)
libv4l2: warning v4l2 mmap buffers still mapped on close()
write(2,"libv4l2: warning v4l2 mmap buffe"...,59) = 59 (0x3b)
close(3)                                         = 0 (0x0)
madvise(0x80802c000,0x1000,0x5,0xaaaaaaaaaaaaaaab,0x808000b58,0x80374cb10) = 0 (0x0)
madvise(0x808031000,0x2000,0x5,0xaaaaaaaaaaaaaaab,0x808000b58,0x80374cb10) = 0 (0x0)
madvise(0x808064000,0x1000,0x5,0xaaaaaaaaaaaaaaab,0x808000b58,0x80374cb10) = 0 (0x0)
madvise(0x80806d000,0x1000,0x5,0xaaaaaaaaaaaaaaab,0x808000b58,0x80374cb10) = 0 (0x0)
madvise(0x80807d000,0x4000,0x5,0xaaaaaaaaaaaaaaab,0x808000b58,0x80374cb10) = 0 (0x0)
madvise(0x808046000,0x1000,0x5,0xaaaaaaaaaaaaaaab,0x808000708,0x80374cb10) = 0 (0x0)
madvise(0x80804f000,0x1000,0x5,0xaaaaaaaaaaaaaaab,0x808000708,0x80374cb10) = 0 (0x0)
/dev/video0: Invalid argument
write(2,"\^[[1;31m/dev/video0: Invalid ar"...,41) = 41 (0x29)
madvise(0x808047000,0x8000,0x5,0xaaaaaaaaaaaaaaab,0x8080008a0,0x80374cb10) = 0 (0x0)
madvise(0x808050000,0x1000,0x5,0xaaaaaaaaaaaaaaab,0x8080008a0,0x80374cb10) = 0 (0x0)
madvise(0x808060000,0x1000,0x5,0xaaaaaaaaaaaaaaab,0x8080008a0,0x80374cb10) = 0 (0x0)
ioctl(0,TIOCSETA,0x62c748)                       = 0 (0x0)
process exit, rval = 1
Под линухом с этой же камерой - все ок.
Никто не сталкивался с такой проблемой?