canCopyAudioTrack()
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 copied to the output without re-encoding.
You can obtain an AudioTrack using parseMedia() or during the conversion process using the onAudioTrack callback of convertMedia().
Examples
import {parseMedia } from '@remotion/media-parser';
import {canCopyAudioTrack } from '@remotion/webcodecs';
const {tracks , container } = await parseMedia ({
src : 'https://remotion.media/BigBuckBunny.mp4',
fields : {
tracks : true,
container : true,
},
});
const audioTracks = tracks .filter ((t ) => t .type === 'audio');
for (const track of audioTracks ) {
canCopyAudioTrack ({
inputCodec : track .codecEnum ,
outputContainer : 'webm',
inputContainer : container ,
outputAudioCodec : null,
}); // bool
}import {convertMedia , canCopyAudioTrack } from '@remotion/webcodecs';
await convertMedia ({
src : 'https://remotion.media/BigBuckBunny.mp4',
container : 'webm',
videoCodec : 'vp8',
audioCodec : 'opus',
onAudioTrack : async ({track , outputContainer , inputContainer }) => {
const canCopy = canCopyAudioTrack ({
inputCodec : track .codecEnum ,
outputContainer ,
inputContainer ,
outputAudioCodec : null,
});
if (canCopy ) {
return {type : 'copy'};
}
// Just to keep the example brief, in reality, you would re-encode the track here
return {type : 'drop'};
},
});API
inputCodec
string MediaParserAudioCodec
The codec of the input audio track.
inputContainer
string MediaParserContainer
The container format of the input media.
outputContainer
string ConvertMediaContainer
The container format of the output media.
outputAudioCodec
string | null ConvertMediaAudioCodec
The desired audio codec of the output media. If null, it means you don't care about the audio codec as long as it can be copied.
Return value
Returns a boolean.