remotion-dev/remotion · error · Error
Expected av1 private data to be version 1, got ${version}
Error message
Expected av1 private data to be version 1, got ${version} What it means
After the leading marker bit, parseAv1PrivateData reads the next 7 bits as the AV1 codec-private version, which the spec fixes at 1. Any other version is rejected. The thrown value is the parsed version so you can see what was found.
Source
Thrown at packages/media-parser/src/containers/webm/av1-codec-private.ts:22
export const parseAv1PrivateData = (
data: Uint8Array,
colrAtom: ColorParameterBox | null,
) => {
const iterator = getArrayBufferIterator({
initialData: data,
maxBytes: data.byteLength,
logLevel: 'error',
});
iterator.startReadingBits();
if (iterator.getBits(1) !== 1) {
iterator.destroy();
throw new Error('Expected av1 private data to be version 1');
}
const version = iterator.getBits(7);
if (version !== 1) {
iterator.destroy();
throw new Error(
`Expected av1 private data to be version 1, got ${version}`,
);
}
let str = 'av01.';
// https://aomediacodec.github.io/av1-isobmff/#codecsparam
const seqProfile = iterator.getBits(3);
// Profile
str += seqProfile;
str += '.';
const seq_level_idx = iterator.getBits(5);
const seq_tier_0 = iterator.getBits(1);
// Level
// The level parameter value SHALL equal the first level value indicated by seq_level_idx in the Sequence Header OBU
str += String(seq_level_idx).padStart(2, '0');View on GitHub (pinned to 78fe4bb3fd)
Solutions
- Re-mux with a current ffmpeg/av1 toolchain.
- Validate headers with ffprobe.
- Use Mediabunny; try/catch fallback.
Example fix
# re-mux with current ffmpeg
ffmpeg -i in.webm -c copy out.webm
await parseMedia({ src: 'out.webm' }); Defensive patterns
Strategy: try-catch
Validate before calling
// ffprobe validates AV1 codec-private headers // ffprobe -v error -show_streams in.mkv
Try / catch
try {
await parseMedia({ src: 'in.mkv' });
} catch (err) {
if (err instanceof Error && /av1 private data to be version/i.test(err.message)) {
// re-mux with current toolchain
} else throw err;
} Prevention
- Keep your muxer/ffmpeg current for AV1 packaging.
- Probe files before parsing.
- Use Mediabunny.
When it happens
Trigger: An AV1 track whose CodecPrivate version field (bits 1-7) is not 1: a future/draft codec-private version, a corrupted header, or a non-conformant muxer.
Common situations: Newer AV1 packaging draft; corrupted bytes; older or non-standard muxers.
Related errors
- Expected av1 private data to be version 1
- Expected vorbis private data version 2
- Error parsing vorbis codec private
- No main segment
- No tracks segment
AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12).
Data as JSON: /api/errors/97f71d99188b6417.
Report an issue: GitHub.