static getFrameDuration (samples, timescale = 1000) {
    return 20
  }
Opus documentation, https://opus-codec.org/docs/
Ogg Encapsulation for the Opus Audio Codec, https://datatracker.ietf.org/doc/html/rfc7845.html

Packet Organization:

     Page 0         Pages 1 ... n        Pages (n+1) ...
   +------------+ +---+ +---+ ... +---+ +-----------+ +---------+ +--
   |            | |   | |   |     |   | |           | |         | |
   |+----------+| |+-----------------+| |+-------------------+ +-----
   |||ID Header|| ||  Comment Header || ||Audio Data Packet 1| | ...
   |+----------+| |+-----------------+| |+-------------------+ +-----
   |            | |   | |   |     |   | |           | |         | |
   +------------+ +---+ +---+ ... +---+ +-----------+ +---------+ +--
   ^      ^                           ^
   |      |                           |
   |      |                           Mandatory Page Break
   |      |
   |      ID header is contained on a single page
   |
   'Beginning Of Stream'