canReencodeVideoTrack()
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 a VideoTrack, determine if it can be re-encoded to another track.
You can obtain a VideoTrack using parseMedia() or during the conversion process using the onVideoTrack callback of convertMedia().
Examples
Check if video tracks can be re-encoded to VP8import {parseMedia } from '@remotion/media-parser'; import {canReencodeVideoTrack } from '@remotion/webcodecs'; const {tracks } = awaitparseMedia ({src : 'https://remotion.media/BigBuckBunny.mp4',fields : {tracks : true, }, }); constvideoTracks =tracks .filter ((t ) =>t .type === 'video'); for (consttrack ofvideoTracks ) { awaitcanReencodeVideoTrack ({track ,videoCodec : 'vp8',resizeOperation : null,rotate : null, }); }
Convert a video track to VP8, otherwise drop itimport {convertMedia ,canReencodeVideoTrack } from '@remotion/webcodecs'; awaitconvertMedia ({src : 'https://remotion.media/BigBuckBunny.mp4',container : 'webm',videoCodec : 'vp8',audioCodec : 'opus',onVideoTrack : async ({track ,resizeOperation ,rotate }) => { constcanReencode = awaitcanReencodeVideoTrack ({track ,videoCodec : 'vp8',resizeOperation ,rotate , }); if (canReencode ) { return {type : 'reencode',videoCodec : 'vp8'}; } return {type : 'drop'}; }, });
API
track
A VideoTrack object.
videoCodec
string ConvertMediaVideoCodec
One of the supported video codecs: "vp8", "vp9".
resizeOperation
The resize operation you would like to apply.
rotate
The rotate operation you would like to apply.
Return value
Returns a Promise<boolean>.