Skip to main content

canReencodeAudioTrack()

Part of the @remotion/webcodecs package.

warning

Unstable API: This package is experimental. We might change the API at any time, until we remove this notice.

Given an AudioTrack, determine if it can be re-encoded to another track.

You can obtain an AudioTrack using parseMedia() or during the conversion process using the onAudioTrack callback of convertMedia().

Examples

Check if an audio track can be re-encoded to Opus
tsx
import {parseMedia} from '@remotion/media-parser';
import {canReencodeAudioTrack} from '@remotion/webcodecs';
 
const {audioTracks} = await parseMedia({
src: 'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',
fields: {
tracks: true,
},
});
 
for (const track of audioTracks) {
await canReencodeAudioTrack({
track,
audioCodec: 'opus',
bitrate: 128000,
});
}
Check if an audio track can be re-encoded to Opus
tsx
import {parseMedia} from '@remotion/media-parser';
import {canReencodeAudioTrack} from '@remotion/webcodecs';
 
const {audioTracks} = await parseMedia({
src: 'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',
fields: {
tracks: true,
},
});
 
for (const track of audioTracks) {
await canReencodeAudioTrack({
track,
audioCodec: 'opus',
bitrate: 128000,
});
}
Convert an audio track to Opus, otherwise drop it
tsx
import {convertMedia, canReencodeAudioTrack} from '@remotion/webcodecs';
 
await convertMedia({
src: 'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',
container: 'webm',
videoCodec: 'vp8',
audioCodec: 'opus',
onAudioTrack: async ({track}) => {
const canReencode = await canReencodeAudioTrack({
track,
audioCodec: 'opus',
bitrate: 128000,
});
 
if (canReencode) {
return {type: 'reencode', audioCodec: 'opus', bitrate: 128000};
}
 
return {type: 'drop'};
},
});
Convert an audio track to Opus, otherwise drop it
tsx
import {convertMedia, canReencodeAudioTrack} from '@remotion/webcodecs';
 
await convertMedia({
src: 'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',
container: 'webm',
videoCodec: 'vp8',
audioCodec: 'opus',
onAudioTrack: async ({track}) => {
const canReencode = await canReencodeAudioTrack({
track,
audioCodec: 'opus',
bitrate: 128000,
});
 
if (canReencode) {
return {type: 'reencode', audioCodec: 'opus', bitrate: 128000};
}
 
return {type: 'drop'};
},
});

API

track

A AudioTrack object.

audioCodec

string ConvertMediaAudioCodec

bitrate

number

The bitrate with which you'd like to re-encode the audio track.

Return value

Returns a Promise<boolean>.

See also