[FFmpeg-user] libvpx usage

Liam Condron-Farnos 23liam at googlemail.com
Sun Jan 6 00:30:33 CET 2013


I've been struggling with this on and off for a few days now: what is the
correct way to encode VP8 video? My reading of ffmpeg -h encoder=libvpx
would lead me to think that

    ffmpeg -i input.mp4 -c:a libvorbis -q:a 5 -q:v libvpx -crf 1 output.webm

should give me a working, ridiculously-high-quality video. However, it just
spits up errors:

 evilsoup at enchantment:~/Videos$ ffmpeg -y -i test.mkv -c:a libvorbis -q:a 5
-c:v libvpx -crf 1 test-1.webm
ffmpeg version git-2012-12-18-b7e085a Copyright (c) 2000-2012 the FFmpeg
developers
  built on Dec 20 2012 11:44:19 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: --enable-gpl --enable-libfaac --enable-libfdk-aac
--enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb
--enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx
--enable-x11grab --enable-libx264 --enable-nonfree --enable-version3
--enable-libass
  libavutil      52. 12.100 / 52. 12.100
  libavcodec     54. 80.100 / 54. 80.100
  libavformat    54. 49.102 / 54. 49.102
  libavdevice    54.  3.102 / 54.  3.102
  libavfilter     3. 28.100 /  3. 28.100
  libswscale      2.  1.103 /  2.  1.103
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
Input #0, matroska,webm, from 'test.mkv':
  Metadata:
    MAJOR_BRAND     : isom
    MINOR_VERSION   : 512
    COMPATIBLE_BRANDS: isomiso2avc1mp41
    ENCODER         : Lavf54.49.102
  Duration: 00:00:30.03, start: 0.000000, bitrate: 1063 kb/s
    Stream #0:0(und): Video: h264 (Main), yuv420p, 854x480, SAR 1:1 DAR
427:240, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Metadata:
      LANGUAGE        : und
      HANDLER_NAME    : VideoHandler
    Stream #0:1(und): Audio: vorbis, 44100 Hz, stereo, fltp (default)
    Metadata:
      LANGUAGE        : und
      HANDLER_NAME    : SoundHandler
[libvpx @ 0x967df40] v1.1.0
Output #0, webm, to 'test-1.webm':
  Metadata:
    MAJOR_BRAND     : isom
    MINOR_VERSION   : 512
    COMPATIBLE_BRANDS: isomiso2avc1mp41
    encoder         : Lavf54.49.102
    Stream #0:0(und): Video: vp8, yuv420p, 854x480 [SAR 1:1 DAR 427:240],
q=-1--1, 200 kb/s, 1k tbn, 23.98 tbc (default)
    Metadata:
      LANGUAGE        : und
      HANDLER_NAME    : VideoHandler
    Stream #0:1(und): Audio: vorbis, 44100 Hz, stereo, fltp (default)
    Metadata:
      LANGUAGE        : und
      HANDLER_NAME    : SoundHandler
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> libvpx)
  Stream #0:1 -> #0:1 (vorbis -> libvorbis)
Press [q] to stop, [?] for help
[libvpx @ 0x967df40] Error encoding frame: Invalid parameter
[libvpx @ 0x967df40]   Additional information: cq_level out of range
[cfg->rc_min_quantizer..cfg->rc_max_quantizer]
Video encoding failed

.....

If I omit the -crf, it encodes correctly, but then I'm giving up all
control of the process, *and* the default setting is horrible.

I'm sure I'm missing something obvious, but google searching is even more
useless than it usually is for ffmpeg. Any help would be greatly
appreciated.

Cheers
  -Liam


More information about the ffmpeg-user mailing list