Capítulo 447 de 988
This page shows estimations to help you better expect how much Remotion Lambda will cost.
// @filename: get-media-metadata.ts
export const getMediaMetadata = async (src: string) => {
const input = new Input({
formats: ALL_FORMATS,
source: new UrlSource(src, {
getRetryDelay: () => null,
}),
});
const durationInSeconds = await input.computeDuration();
const videoTrack = await input.getPrimaryVideoTrack();
const dimensions = videoTrack
? {
width: videoTrack.displayWidth,
height: videoTrack.displayHeight,
}
: null;
const frameRateMetrics = videoTrack
? await videoTrack.computeFrameRateMetrics()
: null;
const fps =
frameRateMetrics === null || frameRateMetrics.probedPacketCount < 2
? null
: frameRateMetrics.bestGuessFrameRate;
return {
durationInSeconds,
dimensions,
fps,
};
};
// @filename: index.tsx
// https://www.remotion.dev/docs/mediabunny/metadata
const src = staticFile('bigbuckbunny.mp4');
export const calculateMetadataFn: CalculateMetadataFunction<Record<string, unknown>> = async () => {
const {durationInSeconds, dimensions, fps} = await getMediaMetadata(src);
const compositionFps = fps ?? 30;
return {
durationInFrames: Math.round(durationInSeconds * compositionFps), // 1440
fps: compositionFps,
width: dimensions!.width,
height: dimensions!.height,
};
};
export const Component = () => {
return <Video src={src} />;
};
export const
// ...(truncated)