pion/webrtc · error

invalid media timebase

Error message

invalid media timebase

What it means

NewWith validates the parsed IVF file header's timebase: if either the timebase numerator or denominator is zero, timestamps are undefined (division by zero) and the reader refuses the stream. A generic validation guard; the offending input is an IVF file whose header at bytes 20-24/16-20 contains a zero timebase value.

Source

Thrown at pkg/media/ivfreader/ivfreader.go:27

header, err := reader.parseFileHeader()
if err != nil {
	return nil, nil, err
}
if header.TimebaseDenominator == 0 || header.TimebaseNumerator == 0 {
	return nil, nil, errInvalidMediaTimebase
}
reader.timebaseDenominator = header.TimebaseDenominator
reader.timebaseNumerator = header.TimebaseNumerator

return reader, header, nil

View on GitHub (pinned to 8c25dc09fa)

Solutions

  1. Regenerate the IVF file so the header timebase numerator and denominator are non-zero
  2. Verify the source file is not truncated or corrupted; re-encode with ffmpeg (e.g. ffmpeg -i in.ivf -c copy fixed.ivf)
  3. If producing IVF headers programmatically, always write a valid non-zero timebase (e.g. numerator 1, denominator 1000)
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at pkg/media/ivfreader/ivfreader.go:27 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of pion/webrtc@8c25dc09fa (2026-09-03). Data as JSON: /api/errors/30add6fe3871fffb. Report an issue: GitHub.