I think ffmpeg may need some patches to utilize this functionality.
Not for those options. The choice between CBR/CVBR/VBR has always been available in libopus, but the VBR setting was more constrained and acted more like CVBR:
Most libopus options are modeled after the opusenc utility from opus-tools. The following is an option mapping chart describing options supported by the libopus wrapper, and their opusenc-equivalent in parentheses.
Set the bit rate in bits/s. FFmpeg’s ‘b’ option is expressed in bits/s, while opusenc’s ‘bitrate’ in kilobits/s.
‘vbr (vbr, hard-cbr, and cvbr)’
Set VBR mode. The FFmpeg ‘vbr’ option has the following valid arguments, with the their opusenc equivalent options in parentheses:
Use constant bit rate encoding.
Use variable bit rate encoding (the default).
Use constrained variable bit rate encoding.
Set encoding algorithm complexity. Valid options are integers in the 0-10 range. 0 gives the fastest encodes but lower quality, while 10 gives the highest quality but slowest encoding. The default is 10.
Set maximum frame size, or duration of a frame in milliseconds. The argument must be exactly the following: 2.5, 5, 10, 20, 40, 60. Smaller frame sizes achieve lower latency but less quality at a given bitrate. Sizes greater than 20ms are only interesting at fairly low bitrates. The default of FFmpeg is 10ms, but is 20ms in opusenc.
Set expected packet loss percentage. The default is 0.
Set intended application type. Valid options are listed below:
Favor improved speech intelligibility.
Favor faithfulness to the input (the default).
Restrict to only the lowest delay modes.
Set cutoff bandwidth in Hz. The argument must be exactly one of the following: 4000, 6000, 8000, 12000, or 20000, corresponding to narrowband, mediumband, wideband, super wideband, and fullband respectively. The default is 0 (cutoff disabled).
The temporal VBR is something that the encoder automatically enables for bitrates <= 64Kbps. The only thing that I don't think ffmpeg uses is the surround API changes in libopus.