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, nilView on GitHub (pinned to 8c25dc09fa)
Solutions
- Regenerate the IVF file so the header timebase numerator and denominator are non-zero
- Verify the source file is not truncated or corrupted; re-encode with ffmpeg (e.g. ffmpeg -i in.ivf -c copy fixed.ivf)
- 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.