media-utils
remotionui/media-utilsFreeUtility
Media item timing and fit helpers
Install it
npx shadcn@latest add https://remotionui.com/r/media-utils.jsonSource
1import type { CSSProperties } from "react";23export type MediaFit = "cover" | "contain";45export type MediaItem = {6 src: string;7 title?: string;8 caption?: string;9 durationInFrames?: number;10 fit?: MediaFit;11 backgroundColor?: string;12};1314export type MediaWindow = MediaItem & {15 from: number;16 durationInFrames: number;17 index: number;18};1920export function getMediaObjectFitStyle(21 fit: MediaFit = "cover",22): CSSProperties {23 return {24 width: "100%",25 height: "100%",26 objectFit: fit,27 display: "block",28 };29}3031export function resolveMediaWindows(32 items: MediaItem[],33 defaultDurationInFrames = 90,34): MediaWindow[] {35 let cursor = 0;3637 return items.map((item, index) => {38 const durationInFrames =39 item.durationInFrames ?? defaultDurationInFrames;40 const window = {41 ...item,42 from: cursor,43 durationInFrames,44 index,45 };46 cursor += durationInFrames;47 return window;48 });49}5051export function getTotalMediaDuration(52 items: MediaItem[],53 defaultDurationInFrames = 90,54): number {55 return resolveMediaWindows(items, defaultDurationInFrames).reduce(56 (total, item) => total + item.durationInFrames,57 0,58 );59}6061export function isVideoSource(src: string): boolean {62 return /\.(mp4|mov|webm|m4v)(\?|#|$)/i.test(src);63}
More from remotionui
All 127 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| ai-composer-utilsai-composer-utils | remotionui | Utilities | Free | no deps | |
| audio-viz-utilsaudio-viz-utils | remotionui | Utilities | Free | no deps | |
| caption-utilscaption-utils | remotionui | Utilities | Free | no deps | |
| chart-utilschart-utils | remotionui | Utilities | Free | no deps | |
| code-syntaxcode-syntax | remotionui | Utilities | Free | no deps | |
| layoutlayout | remotionui | Utilities | Free | no deps | |
| map-utilsmap-utils | remotionui | Utilities | Free | no deps | |
| motion-primitivemotion-primitive | remotionui | Utilities | Free | no deps |
