{"record":{"id":"2fc96aa5c8e3b342","repo":"remotion-dev/remotion","slug":"stream-info-not-found","errorCode":null,"errorMessage":"Stream info not found","messagePattern":"Stream info not found","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/media-parser/src/containers/flac/parse-flac-frame.ts","lineNumber":116,"sourceCode":"\tconst iterator = getArrayBufferIterator({\n\t\tinitialData: data,\n\t\tmaxBytes: data.length,\n\t\tlogLevel: 'error',\n\t});\n\tconst parsed = parseFrameHeader({iterator, state});\n\tif (!parsed) {\n\t\tthrow new Error('Invalid CRC');\n\t}\n\n\tconst {blockSize, num, sampleRate} = parsed;\n\n\tconst duration = blockSize / sampleRate;\n\tconst structure = state.structure.getFlacStructure();\n\tconst streamInfo = structure.boxes.find(\n\t\t(box) => box.type === 'flac-streaminfo',\n\t);\n\tif (!streamInfo) {\n\t\tthrow new Error('Stream info not found');\n\t}\n\n\tif (streamInfo.minimumBlockSize !== streamInfo.maximumBlockSize) {\n\t\tthrow new Error('Cannot determine timestamp');\n\t}\n\n\tconst timestamp = (num * streamInfo.maximumBlockSize) / streamInfo.sampleRate;\n\tstate.flac.audioSamples.addSample({\n\t\ttimeInSeconds: timestamp,\n\t\toffset,\n\t\tdurationInSeconds: duration,\n\t});\n\n\tconst audioSample = convertAudioOrVideoSampleToWebCodecsTimestamps({\n\t\tsample: {\n\t\t\tdata,\n\t\t\tduration,\n\t\t\tdecodingTimestamp: timestamp,","sourceCodeStart":98,"sourceCodeEnd":134,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/media-parser/src/containers/flac/parse-flac-frame.ts#L98-L134","documentation":"Thrown by emitSample() during FLAC frame parsing when no box of type 'flac-streaminfo' exists in the FLAC structure. The STREAMINFO block is required to compute the frame timestamp (it provides maximumBlockSize and sampleRate). Its absence at this stage means the mandatory STREAMINFO metadata block was never parsed or registered before frame data was encountered.","triggerScenarios":"Parsing FLAC audio samples when the STREAMINFO metadata block is absent from the parsed structure. This occurs with files missing the mandatory STREAMINFO block, with corrupt metadata headers, or when the parser began processing frame data before completing the metadata header pass.","commonSituations":"Corrupt or truncated FLAC files missing the STREAMINFO block. Files with a damaged metadata header section. Edge cases in incremental/streaming parsing where frame data is fed before the header is fully consumed.","solutions":["Check the file has a valid STREAMINFO: `ffprobe input.flac` should report sample rate and channels.","Re-encode to repair: `ffmpeg -i input.flac output.flac`.","Switch to Mediabunny (https://www.remotion.dev/docs/mediabunny/metadata).","Report the file to the Remotion team if standard tools can parse it."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  const result = await parseMedia({src, fields: {durationInSeconds: true}});\n} catch (e) {\n  if (e instanceof Error && e.message === 'Stream info not found') {\n    console.error('FLAC STREAMINFO block missing during frame parse. File is corrupt or truncated.');\n  } else {\n    throw e;\n  }\n}","preventionTips":["Validate FLAC file integrity with ffprobe before parsing.","Ensure the complete metadata header is available before frame data is parsed.","Re-encode corrupt FLAC files: ffmpeg -i input.flac output.flac.","Migrate to Mediabunny for more robust FLAC parsing."],"tags":["flac","media-parser","streaminfo","frame-parsing","missing-metadata"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}