Indeed, ffmpeg uses 10 ms frames for Opus. We do not know why they're doing this, but it's sub-optimal. You can get higher quality with 20 ms frames.
Is there already a bug logged for this at ffmpeg? I'm struggling to find anything on the ffmpeg bug list.
I tested latest ffmpeg from git compilied with libopus v1.1-rc. It uses 20ms frames:
D:\>ffmpeg.exe -i test.wav -c opus test.opus
....
D:\>opusinfo.exe test.opus
Processing file "test.opus"...
New logical stream (#1, serial: f68e8976): type opus
Encoded with Lavf55.21.102
User comments section follows...
encoder=Lavf55.21.102
Opus stream 1:
Pre-skip: 312
Playback gain: 0 dB
Channels: 2
Original sample rate: 48000Hz
Packet duration: 20.0ms (max), 20.0ms (avg), 20.0ms (min)
Page duration: 1000.0ms (max), 997.1ms (avg), 120.0ms (min)
Total data length: 3778579 bytes (overhead: 0.728%)
Playback length: 5m:06.102s
Average bitrate: 98.75 kb/s, w/o overhead: 98.03 kb/s
Logical stream 1 ended