>>2250796Well, to begin, the value of -b:v is not a hard cap, it's actually a variable bit rate setting that tries to make the average rate (across the entire video) adhere to the number specified. This is really the "target" bit rate rather than a strict setting.
I can't really explain why the output shows a high bitrate at first, only to scale it down as it goes on. I assume it doesn't really mean much, though, since it has done that in every webm I've made. It probably has to do with the allocation of the variable bitrate. Either way, I wouldnt say that FFmpeg has a problem with dropping the bitrate far below the original work's bitrate, since that is what you are actually asking it to do.
If you want to set hard minimum and maximum bitrates, which I do not recommend, there are other parameters for that. You can find them in the documentation.
You are also using the -crf parameter in conjunction with -b:v, correct? It increases the quality overall and you should always use both -b:v and -crf unless you're doing two-pass.
Basically, I think you've set your b:v too low. It's trying to average out to 1mbps, and that is reducing the quality more than it actually needs to, judging by the fact that the file you show there is just 1.82Mb when it can be up to 3Mb.
If the quality is still too low when it's at the max file size, you can try scaling and/or cropping the video. You can do this on the command line with FFmpeg with the -vf parameter. Scaling it down is a particularly easy way to increase the quality given the limited amount of bitrate we have to work with.
However, the best way to get the highest quality for big files given the space limitation we have is to use the two-pass method. If you need to make sure you're using every bit optimally, it is the best way to do it, period. Also, it can be used in conjunction with cropping/scaling.
TL;DR: Use two-pass for long/big/high bitrate clips.