remotion-dev/remotion · error · Error
Streams with UNIX timestamps are not currently supported by
Error message
Streams with UNIX timestamps are not currently supported by Remotion. Sorry!
What it means
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.
Source
Thrown at packages/convert/app/components/use-probe.ts:77
const run = async () => {
input.getFormat().then((format) => setContainer(format));
input.source.getSize().then((s) => setSize(s));
getVideoFrameRate(input).then(setFrameRate);
getDurationOrCompute(input).then((duration) =>
setDurationInSeconds(duration),
);
input.getMetadataTags().then((tags) => setMetadata(tags));
const trx = await input.getTracks();
for (const track of trx) {
if (await track.isLive()) {
throw new Error(
'Live streams are not currently supported by Remotion. Sorry!',
);
}
if (await track.isRelativeToUnixEpoch()) {
throw new Error(
'Streams with UNIX timestamps are not currently supported by Remotion. Sorry!',
);
}
}
let hasAudioTrack = false;
let hasVideoTrack = false;
for (const track of trx) {
if (track.isVideoTrack()) {
hasVideoTrack = true;
const codec = await track.getCodec();
setVideoCodec(codec);
const [displayWidth, displayHeight, trackRotation] =
await Promise.all([
track.getDisplayWidth(),
track.getDisplayHeight(),
track.getRotation(),
]);View on GitHub (pinned to 78fe4bb3fd)
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.
Example fix
// before: loading an MPEG-TS with epoch PTS throws // after: normalize timestamps first // $ ffmpeg -i in.ts -c copy -avoid_negative_ts make_zero -f mp4 out.mp4
Defensive patterns
Strategy: validation
Validate before calling
const tracks = await input.getTracks();
const epochFlags = await Promise.all(tracks.map((t) => t.isRelativeToUnixEpoch()));
if (epochFlags.some(Boolean)) {
showError('This source uses UNIX-epoch timestamps. Remux with ffmpeg -avoid_negative_ts make_zero.');
return;
} Type guard
null
Try / catch
try { await probe(input); }
catch (e) {
if (e.message.includes('UNIX timestamps')) suggestRemux();
else throw e;
} Prevention
- 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.
When it happens
Trigger: 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.
Common situations: 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.
Related errors
- Streams with UNIX timestamps are not currently supported by
- Live streams are not currently supported by Remotion. Sorry!
- No supported configs
- Scale must be greater than 0
- Unsupported rotation: ${rotation}
AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12).
Data as JSON: /api/errors/04c39cf23b1b5b97.
Report an issue: GitHub.