[FFmpeg-user] problem with FFMPEG and USB WEBCAM: max resolution

Juan M. Anera juasmilla at gmail.com
Sat Jun 18 15:25:35 CEST 2016


Hi all,

I've spent so much time trying to figure out how this FFMPEG and their
libraries work  :(

I have a RaspberryPi 2B and a Logitech USB Webcam. Here is the *input* from
FFMPEG list from my /dev/video0:


        ffmpeg version 3.0.2-2~bpo8+1 Copyright (c) 2000-2016 the FFmpeg
developers
      built with gcc 4.9.2 (Debian 4.9.2-10)
      configuration: --prefix=/usr --extra-version='2~bpo8+1'
--toolchain=hardened --libdir=/usr/lib/arm-linux-gnueabihf
--incdir=/usr/include/arm-linux-gnueabihf --cc=cc --cxx=g++ --enable-gpl
--enable-shared --disable-stripping --disable-decoder=libopenjpeg
--disable-decoder=libschroedinger --enable-avresample --enable-avisynth
--enable-gnutls --enable-ladspa --enable-libass --enable-libbluray
--enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite
--enable-libfontconfig --enable-libfreetype --enable-libfribidi
--enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame
--enable-libopenjpeg --enable-libopus --enable-libpulse
--enable-librubberband --enable-librtmp --enable-libschroedinger
--enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex
--enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis
--enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265
--enable-libxvid --enable-libzvbi --enable-openal --enable-opengl
--enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq
--enable-frei0r --enable-chromaprint --enable-libx264
      libavutil      55. 17.103 / 55. 17.103
      libavcodec     57. 24.102 / 57. 24.102
      libavformat    57. 25.100 / 57. 25.100
      libavdevice    57.  0.101 / 57.  0.101
      libavfilter     6. 31.100 /  6. 31.100
      libavresample   3.  0.  0 /  3.  0.  0
      libswscale      4.  0.100 /  4.  0.100
      libswresample   2.  0.101 /  2.  0.101
      libpostproc    54.  0.100 / 54.  0.100
    [video4linux2,v4l2 @ 0x1171bb0] Raw       :     yuyv422 :
YUYV 4:2:2 : 640x480 160x90 160x120 176x144 320x180 320x240 352x288 432x240
640x360 800x448 800x600 864x480 960x720 1024x576 1280x720 1600x896
1920x1080 2304x1296 2304x1536
    [video4linux2,v4l2 @ 0x1171bb0] Compressed:        h264 :
 H.264 : 640x480 160x90 160x120 176x144 320x180 320x240 352x288 432x240
640x360 800x448 800x600 864x480 960x720 1024x576 1280x720 1600x896 1920x1080
    [video4linux2,v4l2 @ 0x1171bb0] Compressed:       mjpeg :
 Motion-JPEG : 640x480 160x90 160x120 176x144 320x180 320x240 352x288
432x240 640x360 800x448 800x600 864x480 960x720 1024x576 1280x720 1600x896
1920x1080
    /dev/video0: Immediate exit requested


and here is the **audio input**:

    **** List of CAPTURE Hardware Devices ****
    card 1: C920 [HD Pro Webcam C920], device 0: USB Audio [USB Audio]
      Subdevices: 1/1
      Subdevice #0: subdevice #0


I've tried this common and basic ffmpeg routine:

    ffmpeg -y -f alsa -i hw:1 -i /dev/video0 -t 10  out12.avi

and here is the output:

    ffmpeg version 3.0.2-2~bpo8+1 Copyright (c) 2000-2016 the FFmpeg
developers
      built with gcc 4.9.2 (Debian 4.9.2-10)
      configuration: --prefix=/usr --extra-version='2~bpo8+1'
--toolchain=hardened --libdir=/usr/lib/arm-linux-gnueabihf
--incdir=/usr/include/arm-linux-gnueabihf --cc=cc --cxx=g++ --enable-gpl
--enable-shared --disable-stripping --disable-decoder=libopenjpeg
--disable-decoder=libschroedinger --enable-avresample --enable-avisynth
--enable-gnutls --enable-ladspa --enable-libass --enable-libbluray
--enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite
--enable-libfontconfig --enable-libfreetype --enable-libfribidi
--enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame
--enable-libopenjpeg --enable-libopus --enable-libpulse
--enable-librubberband --enable-librtmp --enable-libschroedinger
--enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex
--enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis
--enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265
--enable-libxvid --enable-libzvbi --enable-openal --enable-opengl
--enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq
--enable-frei0r --enable-chromaprint --enable-libx264
      libavutil      55. 17.103 / 55. 17.103
      libavcodec     57. 24.102 / 57. 24.102
      libavformat    57. 25.100 / 57. 25.100
      libavdevice    57.  0.101 / 57.  0.101
      libavfilter     6. 31.100 /  6. 31.100
      libavresample   3.  0.  0 /  3.  0.  0
      libswscale      4.  0.100 /  4.  0.100
      libswresample   2.  0.101 /  2.  0.101
      libpostproc    54.  0.100 / 54.  0.100
    Guessed Channel Layout for  Input Stream #0.0 : stereo
    Input #0, alsa, from 'hw:1':
      Duration: N/A, start: 1466107437.084808, bitrate: 1024 kb/s
        Stream #0:0: Audio: pcm_s16le, 32000 Hz, 2 channels, s16, 1024 kb/s
    Input #1, video4linux2,v4l2, from '/dev/video0':
      Duration: N/A, start: 1578.347093, bitrate: 147456 kb/s
        Stream #1:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422,
1280x720, 147456 kb/s, 10 fps, 10 tbr, 1000k tbn, 1000k tbc
    Output #0, avi, to 'out12.avi':
      Metadata:
        ISFT            : Lavf57.25.100
        Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 1280x720,
q=2-31, 200 kb/s, 10 fps, 10 tbn, 10 tbc
        Metadata:
          encoder         : Lavc57.24.102 mpeg4
        Side data:
          unknown side data type 10 (24 bytes)
        Stream #0:1: Audio: mp3 (libmp3lame) (U[0][0][0] / 0x0055), 32000
Hz, stereo, s16p
        Metadata:
          encoder         : Lavc57.24.102 libmp3lame
    Stream mapping:
      Stream #1:0 -> #0:0 (rawvideo (native) -> mpeg4 (native))
      Stream #0:0 -> #0:1 (pcm_s16le (native) -> mp3 (libmp3lame))
    Press [q] to stop, [?] for help
    [alsa @ 0xe9ec10] Thread message queue blocking; consider raising the
thread_queue_size option (current value: 8)
    frame=    4 fps=0.0 q=2.0 size=     154kB time=00:00:00.40
bitrate=3152.5kbits/sframe=    8 fps=7.7 q=12.0 size=     261kB
time=00:00:00.80 bitrate=2670.1kbits/frame=   13 fps=8.3 q=21.4 size=
303kB time=00:00:01.30 bitrate=1911.3kbits/frame=   18 fps=8.7 q=31.0 size=
    349kB time=00:00:01.80 bitrate=1586.8kbits/frame=   23 fps=8.8 q=31.0
size=     393kB time=00:00:02.30 bitrate=1401.3kbits/frame=   28 fps=9.0
q=31.0 size=     428kB time=00:00:02.80 bitrate=1253.2kbits/frame=   34
fps=9.4 q=31.0 size=     463kB time=00:00:03.40 bitrate=1116.7kbits/frame=
  38 fps=9.2 q=31.0 size=     494kB time=00:00:03.80
bitrate=1065.3kbits/frame=   43 fps=9.3 q=31.0 size=     520kB
time=00:00:04.30 bitrate= 990.6kbits/frame=   49 fps=9.5 q=24.8 size=
557kB time=00:00:04.90 bitrate= 931.1kbits/frame=   55 fps=9.6 q=31.0 size=
    593kB time=00:00:05.50 bitrate= 883.7kbits/frame=   61 fps=9.7 q=24.8
size=     631kB time=00:00:06.10 bitrate= 847.9kbits/frame=   67 fps=9.8
q=31.0 size=     670kB time=00:00:06.70 bitrate= 818.7kbits/frame=   72
fps=9.8 q=31.0 size=     696kB time=00:00:07.20 bitrate= 791.4kbits/frame=
  78 fps=9.9 q=31.0 size=     727kB time=00:00:07.80 bitrate=
763.8kbits/frame=   83 fps=9.9 q=31.0 size=     760kB time=00:00:08.30
bitrate= 750.1kbits/frame=   88 fps=9.8 q=31.0 size=     801kB
time=00:00:08.80 bitrate= 745.4kbits/frame=   93 fps=9.8 q=31.0 size=
840kB time=00:00:09.30 bitrate= 740.1kbits/frame=   98 fps=9.8 q=31.0 size=
    874kB time=00:00:09.80 bitrate= 730.4kbits/frame=  100 fps=9.7 q=31.0
Lsize=     890kB time=00:00:10.04 bitrate= 725.9kbits/s speed=0.979x
    video:757kB audio:114kB subtitle:0kB other streams:0kB global
headers:0kB muxing overhead: 2.143680%


The output seems fine, but the quality is poor, it's recording at 640x480.

Then, I tried this:

    ffmpeg -f alsa -i hw:1 -vcodec h264 -f v4l2 -i /dev/video0 -vcodec copy
-y -t 10 out4.mkv

The image is wonderful, but, unfortunately, the audio is recorded with a
bit lag  :(

All I want is to set the RaspberryPi to record a few seconds with the audio
encompassed *at the highest resolution possible*, or at least some guidance
to achieve that.

Many thanks!


-- 
Por favor, No imprima este mail si no es necesario.


More information about the ffmpeg-user mailing list