remotion-dev/remotion · error
Live streams are not currently supported by Remotion. Sorry!
Error message
Live streams are not currently supported by Remotion. Sorry! Source: ${src} What it means
Thrown by getFramesSinceKeyframe in @remotion/media when the primary video track of a source reports itself as a live stream. This helper decodes frames relative to the last keyframe and needs a finite, seekable file; live streams cannot be seeked arbitrarily. Fires at get-frames-since-keyframe.ts:98.
Source
Thrown at packages/media/src/video-extraction/get-frames-since-keyframe.ts:98
const format = await getFormatOrNullOrNetworkError(input);
const isMatroska = format === MATROSKA || format === WEBM;
const getVideoSinks = async (): Promise<VideoSinkResult> => {
if (format === 'network-error') {
return 'network-error';
}
if (format === null) {
return 'unknown-container-format';
}
const videoTrack = await input.getPrimaryVideoTrack();
if (!videoTrack) {
return 'no-video-track';
}
if (await videoTrack.isLive()) {
throw new Error(
'Live streams are not currently supported by Remotion. Sorry! Source: ' +
src,
);
}
if (await videoTrack.isRelativeToUnixEpoch()) {
throw new Error(
'Streams with UNIX timestamps are not currently supported by Remotion. Sorry! Source: ' +
src,
);
}
const canDecode = await videoTrack.canDecode();
if (!canDecode) {
if (videoTrack.codec === 'prores') {
return 'cannot-decode-prores';
}View on GitHub (pinned to 78fe4bb3fd)
Solutions
- Use a finite recorded file (MP4/WebM) or a complete VOD HLS playlist.
- Record the live stream to a file and reference that file instead.
- Ensure any HLS playlist is a complete VOD playlist (has EXT-X-ENDLIST).
Example fix
// before
<OffthreadVideo src={'https://example.com/live/index.m3u8'} />
// after
<OffthreadVideo src={staticFile('recorded.mp4')} /> Defensive patterns
Strategy: validation
Validate before calling
null
Try / catch
// Validate source is a finite file before use; no runtime recovery.
try {
return <OffthreadVideo src={src} />;
} catch (e) {
if (e instanceof Error && e.message.includes('Live streams')) {
return <OffthreadVideo src={staticFile('fallback.mp4')} />;
}
throw e;
} Prevention
- Disallow live/HLS sources for offthread video rendering.
- Validate sources are finite files before passing to <OffthreadVideo>.
- Use VOD playlists or recorded files exclusively.
When it happens
Trigger: An <OffthreadVideo>/<Video> source whose parsed video track reports live (HLS live playlist, DASH live, ongoing segment stream). videoTrack.isLive() resolves true during keyframe-relative frame extraction.
Common situations: Feeding a live broadcast URL, webcam feed, or HLS playlist marked LIVE. This path is the offthread/video-extraction pipeline, so it fires during rendering or offthread frame extraction specifically.
Related errors
- Live streams are not currently supported by Remotion. Sorry!
- Streams with UNIX timestamps are not currently supported by
- Live streams are not currently supported by Remotion. Sorry!
- No src passed
- The media ${ref.src} cannot be seeked. This could be one of
AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12).
Data as JSON: /api/errors/1a23e76231bcae8e.
Report an issue: GitHub.