{"record":{"id":"04c39cf23b1b5b97","repo":"remotion-dev/remotion","slug":"streams-with-unix-timestamps-are-not-currently-sup","errorCode":null,"errorMessage":"Streams with UNIX timestamps are not currently supported by Remotion. Sorry!","messagePattern":"Streams with UNIX timestamps are not currently supported by Remotion\\. Sorry!","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/convert/app/components/use-probe.ts","lineNumber":77,"sourceCode":"\t\tconst run = async () => {\n\t\t\tinput.getFormat().then((format) => setContainer(format));\n\t\t\tinput.source.getSize().then((s) => setSize(s));\n\t\t\tgetVideoFrameRate(input).then(setFrameRate);\n\t\t\tgetDurationOrCompute(input).then((duration) =>\n\t\t\t\tsetDurationInSeconds(duration),\n\t\t\t);\n\t\t\tinput.getMetadataTags().then((tags) => setMetadata(tags));\n\n\t\t\tconst trx = await input.getTracks();\n\t\t\tfor (const track of trx) {\n\t\t\t\tif (await track.isLive()) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t'Live streams are not currently supported by Remotion. Sorry!',\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (await track.isRelativeToUnixEpoch()) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t'Streams with UNIX timestamps are not currently supported by Remotion. Sorry!',\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet hasAudioTrack = false;\n\t\t\tlet hasVideoTrack = false;\n\t\t\tfor (const track of trx) {\n\t\t\t\tif (track.isVideoTrack()) {\n\t\t\t\t\thasVideoTrack = true;\n\t\t\t\t\tconst codec = await track.getCodec();\n\t\t\t\t\tsetVideoCodec(codec);\n\t\t\t\t\tconst [displayWidth, displayHeight, trackRotation] =\n\t\t\t\t\t\tawait Promise.all([\n\t\t\t\t\t\t\ttrack.getDisplayWidth(),\n\t\t\t\t\t\t\ttrack.getDisplayHeight(),\n\t\t\t\t\t\t\ttrack.getRotation(),\n\t\t\t\t\t\t]);","sourceCodeStart":59,"sourceCodeEnd":95,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/convert/app/components/use-probe.ts#L59-L95","documentation":"Thrown by use-probe when any input track reports isRelativeToUnixEpoch() === true. Remotion operates on media-relative timestamps; UNIX-epoch timestamps (e.g. from some camera captures or MPEG-TS) break duration/seek math, so probing refuses them.","triggerScenarios":"Loading MPEG-TS or container segments whose PTS reference is the UNIX epoch rather than zero-based media time. The probe iterates every track and throws on the first epoch-relative one.","commonSituations":"Screen captures from certain tools, DASH segments with wall-clock timing, or remuxed broadcast TS files that preserve epoch PTS; common with hardware encoders and some surveillance/capture pipelines.","solutions":["Remux the source to reset timestamps to zero-based media time: `ffmpeg -i in.ts -c copy -avoid_negative_ts make_zero out.mp4`.","Re-encode the source so PTS is rewritten relative to the stream start.","Reject epoch-relative inputs in the UI before conversion."],"exampleFix":"// before: loading an MPEG-TS with epoch PTS throws\n\n// after: normalize timestamps first\n// $ ffmpeg -i in.ts -c copy -avoid_negative_ts make_zero -f mp4 out.mp4","handlingStrategy":"validation","validationCode":"const tracks = await input.getTracks();\nconst epochFlags = await Promise.all(tracks.map((t) => t.isRelativeToUnixEpoch()));\nif (epochFlags.some(Boolean)) {\n  showError('This source uses UNIX-epoch timestamps. Remux with ffmpeg -avoid_negative_ts make_zero.');\n  return;\n}","typeGuard":"null","tryCatchPattern":"try { await probe(input); }\ncatch (e) {\n  if (e.message.includes('UNIX timestamps')) suggestRemux();\n  else throw e;\n}","preventionTips":["Remux MPEG-TS/DASH sources to reset PTS before importing.","Detect epoch-relative tracks early and surface a fix hint.","Prefer MP4/MKV outputs from capture tools to avoid epoch PTS."],"tags":["typescript","convert","timestamps","mpegts","unix-epoch","media"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}