[opus] Is OPUS_AUTO the default for an encoder's bitrate?
Kevin O'Connor
Kevin.OConnor at genesys.com
Thu Oct 18 14:42:02 UTC 2018
I had expected that the default bitrate for the encoder would be the same as setting it to OPUS_AUTO, but I'm getting difference results:
>opusenc --comp 4 sample.wav sample.opus
Encoding using libopus 1.3-rc2 (audio)
-----------------------------------------------------
Input: 8 kHz, 1 channel
Output: 1 channel (1 uncoupled)
20ms packets, 25 kbit/s VBR
Preskip: 312
Encoding complete
-----------------------------------------------------
Encoded: 2 minutes and 34.94 seconds
Runtime: 1 second
(154.9x realtime)
Wrote: 588189 bytes, 7747 packets, 157 pages
Bitrate: 29.7104 kbit/s (without overhead) Instant rates: 1.2 to 50.4 kbit/s
(3 to 126 bytes per packet)
Overhead: 2.17% (container+metadata)
If I explicitly set the bitrate to OPUS_AUTO, it produces a stream with twice the bitrate of the encoder's default from above.
>opusenc --comp 4 --set-ctl-int 4002=-1000 sample.wav sample.opus
Encoding using libopus 1.3-rc2 (audio)
-----------------------------------------------------
Input: 8 kHz, 1 channel
Output: 1 channel (1 uncoupled)
20ms packets, 25 kbit/s VBR
Preskip: 312
Encoding complete
-----------------------------------------------------
Encoded: 2 minutes and 34.94 seconds
Runtime: 1 second
(154.9x realtime)
Wrote: 1245829 bytes, 7747 packets, 157 pages
Bitrate: 63.6644 kbit/s (without overhead) Instant rates: 1.2 to 120.4 kbit/s
(3 to 301 bytes per packet)
Overhead: 1.03% (container+metadata)
As this is example 8kHz single channel audio, the encoder's default bitrate seems more appropriate than the OPUS_AUTO bitrate. This presents a bit of a problem because there are three possibilities for the bit rate, an explicitly set value, a value set by OPUS_AUTO, and some mystery value from the default encoder initialization. If the bitrate setting is changed, I don't see any way to get back to the mystery value without re-initializing the encoder. Can anyone comment on why it works this way?
Kevin O'Connor
More information about the opus
mailing list