I noticed something weird today, encoding the same flac audio file with opusenc, once on x86_64 and once on an ARM platform I get very different results:
opusenc --vbr --bitrate 128
x86:
Encoding using libopus 1.2 (audio)
-----------------------------------------------------
Input: 44.1kHz 2 channels
Output: 2 channels (2 coupled)
20ms packets, 128kbit/sec VBR
Preskip: 356
Encoding complete
-----------------------------------------------------
Encoded: 6 minutes and 27.4 seconds
Runtime: 4 seconds
(96.85x realtime)
Wrote: 6616545 bytes, 19370 packets, 390 pages
Bitrate: 135.597kbit/s (without overhead)
Instant rates: 1.2kbit/s to 254.4kbit/s
(3 to 636 bytes per packet)
Overhead: 0.76% (container+metadata)
ARM:
Encoding using libopus 1.2 (audio)
-----------------------------------------------------
Input: 44.1kHz 2 channels
Output: 2 channels (2 coupled)
20ms packets, 128kbit/sec VBR
Preskip: 312
Encoding complete
-----------------------------------------------------
Encoded: 6 minutes and 27.38 seconds
Runtime: 52 seconds
(7.45x realtime)
Wrote: 6024359 bytes, 19369 packets, 390 pages
Bitrate: 123.401kbit/s (without overhead)
Instant rates: 1.2kbit/s to 257.2kbit/s
(3 to 643 bytes per packet)
Overhead: 0.813% (container+metadata)
I can maybe understand that behaviour is not entirely deterministic, but is it normal that the rate-control decisions are so very different?