Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

For rendering, the time it takes is very different.

  • -b 3500K -minrate 0K -maxrate 8000K takes 1hr 17min
  • vb=3000k takes 2.5 hours

What is vb 3000k and how is it different from -b 3500K -minrate 0K -maxrate 8000K? Are these variable bit rate settings?

If I changed to -b 3500K -minrate 3500K -maxrate 3500K, is that constant bit rate?

share|improve this question

Please read the documentation for FFmpeg, and run ffmpeg -h full for the list of options.

Generally, here's what the options mean:

  • -b:v (or -vb, the same) specifies a constant bit rate for the encoder to use:

    -b <int> E..VA. set bitrate (in bits/s) (from 0 to INT_MAX)

  • -minrate specifies a minimum tolerance to be used:

    -minrate <int> E..VA. Set minimum bitrate tolerance (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise. (from INT_MIN to INT_MAX)

  • -maxrate specifies a maximum tolerance. However, as the documentation indicates, this is only used in conjunction with bufsize:

    -maxrate <int> E..VA. Set maximum bitrate tolerance (in bits/s). Requires bufsize to be set. (from INT_MIN to INT_MAX)

    -bufsize <int> E..VA. set ratecontrol buffer size (in bits) (from INT_MIN to INT_MAX)

    This only makes sense for variable bit rate encoding, e.g. VBV encoding in x264, where instead of using a constant bit rate or constant quality model, the encoder simulates a transmission with a virtual buffer at the decoder. You typically only use this for streaming, since the technique will constrain the bit rate in order to not exceed a certain value which would cause the decoder buffer to underflow.

To summarize:

  • To set up a CBR process, use -b:v 3500K -minrate 3500K, or leave out the minrate altogether—in practice I've never used it.

  • To set up a constrained bit rate process for streaming, use -maxrate 3500K -bufsize 1000K, for example. You'll have to adjust the rate and buffer sizes to the context obviously.

share|improve this answer
1  
How would it encode using a variable bit rate? as in the syntax to use? – Scott Downey Jan 14 '13 at 14:12
    
What encoder do you want to use? – slhck Jan 14 '13 at 14:12
    
ffmpeg, I beleive that is used in kdenlive – Scott Downey Jan 14 '13 at 14:14
    
No, I meant as in: x264 for H.264/MPEG-4 AVC video or XviD for MPEG-4, or Ogg Theora, etc. simply put, what file do you want? MP4? – slhck Jan 14 '13 at 14:17
2  
See here for more information on encoding with x264 in FFmpeg; especially looks at the presets (I generally use the veryfast preset, in my tests the largest dropoff in filesize was between superfast and veryfast - after that the differences were much more incremental. YMMV of course). – evilsoup Jan 14 '13 at 15:00

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .