remotion-dev/remotion · error

Live media cannot be transcribed.

Error message

Live media cannot be transcribed.

What it means

The transcription pipeline decodes the media offline into a 16kHz WAV for Whisper. Live streams (webcam capture, live HLS/DASH) cannot be decoded this way, so the function proactively rejects any audio track reporting isLive() === true.

Source

Thrown at packages/studio/src/components/Transcription/resample-media-to-16-khz.ts:48

	}> = [];

	try {
		onProgress(0);
		const audioTracks = await input.getAudioTracks();
		const primaryVideoTrack =
			audioStreamIndex === null ? await input.getPrimaryVideoTrack() : null;
		const audioTrack =
			audioStreamIndex !== null
				? (audioTracks[audioStreamIndex] ?? null)
				: primaryVideoTrack
					? await primaryVideoTrack.getPrimaryPairableAudioTrack()
					: (audioTracks[0] ?? null);
		if (audioTrack === null) {
			throw new Error('The selected media does not have an audio track.');
		}

		if (await audioTrack.isLive()) {
			throw new Error('Live media cannot be transcribed.');
		}

		const output = new Output({
			format: new WavOutputFormat(),
			target: new NullTarget(),
		});
		const conversion = await Conversion.init({
			input,
			output,
			tracks: 'all',
			video: {discard: true},
			audio: (track) => {
				if (track.id !== audioTrack.id) {
					return {discard: true};
				}

				return {
					codec: 'pcm-f32',

View on GitHub (pinned to b2f4e34732)

Solutions

  1. Use a recorded (non-live) media file as the transcription source.
  2. Record the live stream to a file first, then transcribe the recording.
  3. Choose a VOD rendition of the stream instead of the live manifest.

Example fix

// before
addCaptionJob({src: 'https://example.com/live/stream.m3u8'});
// after
addCaptionJob({src: '/recording.mp4'}); // recorded file
Defensive patterns

Strategy: validation

Validate before calling

if (await audioTrack.isLive()) {
  throw new Error('Cannot transcribe a live stream.');
}

Try / catch

try {
  await transcribe(src);
} catch (e) {
  if (e.message === 'Live media cannot be transcribed.') {
    alert('Please provide a recorded file instead of a live stream.');
  }
}

Prevention

When it happens

Trigger: Attempting to transcribe a live media source — e.g. a MediaStream-backed track or live-streamed URL where audioTrack.isLive() resolves true.

Common situations: Pointing the transcription modal at a live stream URL or capture device instead of a recorded file; testing with a camera/microphone source.

Understand the failure class

Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.

Related errors


AI-assisted analysis of remotion-dev/remotion@b2f4e34732 (2026-09-09). Data as JSON: /api/errors/ca200cffb1569385. Report an issue: GitHub.