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-thumbnail's setVideoTrack when the primary video track reports isRelativeToUnixEpoch() === true. Thumbnail sampling relies on media-relative timestamps; UNIX-epoch timestamps break the seek/sample math, so the hook refuses the input.

Source

Thrown at packages/convert/app/lib/use-thumbnail.ts:42

	const execute = useCallback(() => {
		const getDuration = async () => {
			const duration = await input.computeDuration();
			waveform.setDuration(duration);
		};

		const setVideoTrack = async () => {
			const videoTrack = await input.getPrimaryVideoTrack();

			if (videoTrack) {
				if (await videoTrack.isLive()) {
					throw new Error(
						'Live streams are not currently supported by Remotion. Sorry!',
					);
				}

				if (await videoTrack.isRelativeToUnixEpoch()) {
					throw new Error(
						'Streams with UNIX timestamps are not currently supported by Remotion. Sorry!',
					);
				}

				const videoSink = new VideoSampleSink(videoTrack);
				let samples = 0;
				const iterator = videoSink.samples();
				for await (const sample of iterator) {
					samples++;
					onVideoThumbnail(sample.toVideoFrame());
					sample.close();

					if (samples === 60) {
						iterator.return().catch(() => undefined);
						break;
					}
				}

View on GitHub (pinned to 78fe4bb3fd)

Solutions

  1. Remux to reset timestamps: `ffmpeg -i in.ts -c copy -avoid_negative_ts make_zero out.mp4`.
  2. Re-encode the source to rewrite PTS relative to stream start.
  3. Skip thumbnail generation for epoch-relative inputs.

Example fix

// before
if (await videoTrack.isRelativeToUnixEpoch()) throw ...;

// after (normalize the source upstream)
// $ ffmpeg -i in.ts -c copy -avoid_negative_ts make_zero -f mp4 out.mp4
// then load out.mp4 into Convert
Defensive patterns

Strategy: validation

Validate before calling

const videoTrack = await input.getPrimaryVideoTrack();
if (videoTrack && await videoTrack.isRelativeToUnixEpoch()) {
  suggestRemux('ffmpeg -i in.ts -c copy -avoid_negative_ts make_zero out.mp4');
  return;
}

Type guard

null

Try / catch

try { await setVideoTrack(); }
catch (e) {
  if (e.message.includes('UNIX timestamps')) suggestRemux();
  else throw e;
}

Prevention

When it happens

Trigger: Loading MPEG-TS or DASH segments whose PTS reference is the UNIX epoch rather than zero-based media time, in the thumbnail path. Same root cause as error 191 but in the thumbnail hook.

Common situations: Hardware-encoder captures, broadcast MPEG-TS files, or DASH with wall-clock timing fed into the Convert UI for thumbnails.

Related errors


AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12). Data as JSON: /api/errors/07182b382be46e59. Report an issue: GitHub.