{"record":{"id":"e728f358ecc81a3d","repo":"remotion-dev/remotion","slug":"remotion-media-parser-cannot-handle-the-private-d","errorCode":null,"errorMessage":"@remotion/media-parser cannot handle the private data for VP9. Do you have an example file you could send so we can implement it? https://remotion.dev/report","messagePattern":"@remotion/media-parser cannot handle the private data for VP9\\. Do you have an example file you could send so we can implement it\\? https://remotion\\.dev/report","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"warning","filePath":"packages/media-parser/src/containers/webm/make-track.ts","lineNumber":93,"sourceCode":"\n\tthrow new Error(`Unknown codec: ${codec.value}`);\n};\n\nconst getMatroskaVideoCodecString = ({\n\ttrack,\n\tcodecSegment: codec,\n}: {\n\ttrack: TrackEntry;\n\tcodecSegment: CodecIdSegment;\n}): string | null => {\n\tif (codec.value === 'V_VP8') {\n\t\treturn 'vp8';\n\t}\n\n\tif (codec.value === 'V_VP9') {\n\t\tconst priv = getPrivateData(track);\n\t\tif (priv) {\n\t\t\tthrow new Error(\n\t\t\t\t'@remotion/media-parser cannot handle the private data for VP9. Do you have an example file you could send so we can implement it? https://remotion.dev/report',\n\t\t\t);\n\t\t}\n\n\t\treturn 'vp09.00.10.08';\n\t}\n\n\tif (codec.value === 'V_MPEG4/ISO/AVC') {\n\t\tconst priv = getPrivateData(track);\n\t\tif (priv) {\n\t\t\treturn `avc1.${priv[1].toString(16).padStart(2, '0')}${priv[2].toString(16).padStart(2, '0')}${priv[3].toString(16).padStart(2, '0')}`;\n\t\t}\n\n\t\treturn NO_CODEC_PRIVATE_SHOULD_BE_DERIVED_FROM_SPS;\n\t}\n\n\tif (codec.value === 'V_MPEGH/ISO/HEVC') {\n\t\tconst priv = getPrivateData(track);","sourceCodeStart":75,"sourceCodeEnd":111,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/media-parser/src/containers/webm/make-track.ts#L75-L111","documentation":"Thrown by `getMatroskaVideoCodecString` (make-track.ts:93) specifically for a `V_VP9` track that carries CodecPrivate data. The parser assumes VP9 needs no private data (codec string is hard-coded to `vp09.00.10.08`) and refuses to silently drop or misinterpret private data it cannot parse, asking instead for a real-world sample.","triggerScenarios":"Parsing a VP9 WebM/MKV track whose TrackEntry contains a non-empty `CodecPrivate` element. The VP9 spec generally does not require CodecPrivate, so its presence is unusual and unhandled.","commonSituations":"Experimental or non-standard VP9 muxers; files passed through tools that attach extradata; rare edge cases. The error message is deliberately a feature request rather than a hard failure of design.","solutions":["Report the file to Remotion at https://remotion.dev/report so VP9-with-private-data handling can be implemented.","Re-mux to strip the extradata: `ffmpeg -i in.webm -c:v copy -bitexact out.webm` (or re-encode to plain VP9).","Transcode to AV1 or H.264 if you need guaranteed parseability today: `ffmpeg -i in.webm -c:v libx264 out.mkv`.","Catch the error and treat the asset as unsupported until upstream adds handling."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  await parseMedia({ src, fields: { tracks: true } });\n} catch (err) {\n  if (err instanceof Error && err.message.includes('cannot handle the private data for VP9')) {\n    // Known limitation — strip extradata or transcode, then retry.\n    console.warn('VP9 with CodecPrivate is unsupported; remux without extradata.');\n    return null;\n  }\n  throw err;\n}","preventionTips":["Re-mux VP9 WebM without extradata: ffmpeg -i in.webm -c:v copy -bitexact out.webm.","Prefer AV1 or VP9-without-private-data encodes for guaranteed parseability.","Report example files to Remotion so the feature can be implemented.","Treat VP9 assets from untrusted sources as potentially unsupported."],"tags":["media-parser","webm","vp9","unsupported-feature","feature-request"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}