packages/docs/docs/webcodecs/can-reencode-audio-track.mdx
:::warning We are phasing out Remotion WebCodecs and are moving to Mediabunny! :::
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().
import {parseMedia} from '@remotion/media-parser';
import {canReencodeAudioTrack} from '@remotion/webcodecs';
const {tracks} = await parseMedia({
src: 'https://remotion.media/BigBuckBunny.mp4',
fields: {
tracks: true,
},
});
const audioTracks = tracks.filter((t) => t.type === 'audio');
for (const track of audioTracks) {
await canReencodeAudioTrack({
track,
audioCodec: 'opus',
bitrate: 128000,
sampleRate: null,
});
}
import {convertMedia, canReencodeAudioTrack} from '@remotion/webcodecs';
await convertMedia({
src: 'https://remotion.media/BigBuckBunny.mp4',
container: 'webm',
videoCodec: 'vp8',
audioCodec: 'opus',
onAudioTrack: async ({track}) => {
const canReencode = await canReencodeAudioTrack({
track,
audioCodec: 'opus',
bitrate: 128000,
sampleRate: null,
});
if (canReencode) {
return {type: 'reencode', audioCodec: 'opus', bitrate: 128000, sampleRate: null};
}
return {type: 'drop'};
},
});
trackA AudioTrack object.
audioCodecstring <TsType type="ConvertMediaAudioCodec" source="@remotion/webcodecs" />
bitratenumber
The bitrate with which you'd like to re-encode the audio track.
sampleRatenumber | null
The sample rate with which you'd like to re-encode the audio track. If the sampleRate is null, the sample rate of the original track will be used.
Returns a Promise<boolean>.