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
Check if an audio track can be copiedtsx
import {parseMedia } from '@remotion/media-parser';import {canCopyAudioTrack } from '@remotion/webcodecs';const {audioTracks ,container } = awaitparseMedia ({src : 'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',fields : {tracks : true,container : true,},});for (consttrack ofaudioTracks ) {canCopyAudioTrack ({inputCodec :track .codecWithoutConfig ,outputContainer : 'webm',inputContainer :container ,}); // bool}
Check if an audio track can be copiedtsx
import {parseMedia } from '@remotion/media-parser';import {canCopyAudioTrack } from '@remotion/webcodecs';const {audioTracks ,container } = awaitparseMedia ({src : 'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',fields : {tracks : true,container : true,},});for (consttrack ofaudioTracks ) {canCopyAudioTrack ({inputCodec :track .codecWithoutConfig ,outputContainer : 'webm',inputContainer :container ,}); // bool}
Copy an audio track to Opus, otherwise drop ittsx
import {convertMedia ,canCopyAudioTrack } from '@remotion/webcodecs';awaitconvertMedia ({src : 'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',container : 'webm',videoCodec : 'vp8',audioCodec : 'opus',onAudioTrack : async ({track ,outputContainer ,inputContainer }) => {constcanCopy =canCopyAudioTrack ({inputCodec :track .codecWithoutConfig ,outputContainer ,inputContainer ,});if (canCopy ) {return {type : 'copy'};}// Just to keep the example brief, in reality, you would re-encode the track herereturn {type : 'drop'};},});
Copy an audio track to Opus, otherwise drop ittsx
import {convertMedia ,canCopyAudioTrack } from '@remotion/webcodecs';awaitconvertMedia ({src : 'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',container : 'webm',videoCodec : 'vp8',audioCodec : 'opus',onAudioTrack : async ({track ,outputContainer ,inputContainer }) => {constcanCopy =canCopyAudioTrack ({inputCodec :track .codecWithoutConfig ,outputContainer ,inputContainer ,});if (canCopy ) {return {type : 'copy'};}// Just to keep the example brief, in reality, you would re-encode the track herereturn {type : 'drop'};},});
API
inputCodec
string MediaParserAudioCodec
The codec of the input audio track.
inputContainer
string ParseMediaContainer
The container format of the input media.
outputContainer
string ConvertMediaContainer
The container format of the output media.
Return value
Returns a boolean
.