Skip to main content سوق المهارات اكتشف واستكشف مهارات الذكاء الاصطناعي التي بناها المجتمع.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
نسخ Promptعرض تفاصيل Prompt يتجاوز الأمر المباشر Prompt المخصّص للمراجعة. افحص المصدر قبل تشغيله.
npx skills add https://github.com/remotion-dev/html-in-canvas --skill remotion-best-practicesيبقى الأمر في سطر واحد. مرّر أفقيًا لمراجعته كاملًا قبل النسخ.
تفضّل نسخة محلية؟ نزّل الملفات المتاحة حاليًا لدى SkillsMP.
تحميل Zip جاري التحميل... name remotion-best-practices description Best practices for Remotion - Video creation in React metadata {"tags":"remotion, video, react, animation, composition"}
When to use
Use this skills whenever you are dealing with Remotion code to obtain the domain-specific knowledge.
New project setup
When in an empty folder or workspace with no existing Remotion project, scaffold one using:
npx create-video@latest --yes --blank --no-tailwind my-video
Replace my-video with a suitable project name.
Designing a video
Animate properties using useCurrentFrame() and interpolate(). Use Easing to customize the timing of the animation.
import { useCurrentFrame, Easing } from "remotion" ;
export const FadeIn = ( ) => {
const frame = useCurrentFrame ();
const { fps } = useVideoConfig ();
const opacity = interpolate (frame, [0 , 2 * fps], [ , ], {
: ,
: ,
: . ( , , , ),
});
;
};
0
1
extrapolateRight
"clamp"
extrapolateLeft
"clamp"
easing
Easing
bezier
0.16
1
0.3
1
return
<div style ={{ opacity }}> Hello World!</div >
CSS transitions or animations are FORBIDDEN - they will not render correctly.
Tailwind animation class names are FORBIDDEN - they will not render correctly.
Place assets in the public/ folder at your project root.
Use staticFile() to reference files from the public/ folder.
Add images using the <Img> component:
import { Img , staticFile } from "remotion" ;
export const MyComposition = ( ) => {
return <Img src ={staticFile( "logo.png ")} style ={{ width: 100 , height: 100 }} /> ;
};
Add videos using the <Video> component from @remotion/media:
import { Video } from "@remotion/media" ;
import { staticFile } from "remotion" ;
export const MyComposition = ( ) => {
return <Video src ={staticFile( "video.mp4 ")} style ={{ opacity: 0.5 }} /> ;
};
Add audio using the <Audio> component from @remotion/media:
import { Audio } from "@remotion/media" ;
import { staticFile } from "remotion" ;
export const MyComposition = ( ) => {
return <Audio src ={staticFile( "audio.mp3 ")} /> ;
};
Assets can be also referenced as remote URLs:
import { Video } from "@remotion/media" ;
export const MyComposition = ( ) => {
return <Video src ="https://remotion.media/video.mp4" />
};
To delay content wrap it in <Sequence> and use from.
To limit the duration of an element, use durationInFrames of <Sequence>.
<Sequence> by default is an absolute fill. For inline content, use layout="none".
import { Sequence } from "remotion" ;
export const Title = ( ) => {
const frame = useCurrentFrame ();
const { fps } = useVideoConfig ();
const opacity = interpolate (frame, [0 , 2 * fps], [0 , 1 ], {
extrapolateRight : "clamp" ,
extrapolateLeft : "clamp" ,
easing : Easing .bezier (0.16 , 1 , 0.3 , 1 ),
});
return <div style ={{ opacity }}> Title</div > ;
};
export const Subtitle = ( ) => {
return <div > Subtitle</div > ;
};
const Main = ( ) => {
const {fps} = useVideoConfig ();
return (
<AbsoluteFill >
<Sequence >
<Background />
</Sequence >
<Sequence from ={1 * fps } durationInFrames ={2 * fps } layout ="none" >
<Title />
</Sequence >
<Sequence from ={2 * fps } durationInFrames ={2 * fps } layout ="none" >
<Subtitle />
</Sequence >
</AbsoluteFill >
);
}
The width, height, fps, and duration of a video is defined in src/Root.tsx:
import { Composition } from "remotion" ;
import { MyComposition } from "./MyComposition" ;
export const RemotionRoot = ( ) => {
return (
<Composition
id ="MyComposition"
component ={MyComposition}
durationInFrames ={100}
fps ={30}
width ={1080}
height ={1080}
/>
);
};
Metadata can also be calculated dynamically:
import { Composition , CalculateMetadataFunction } from "remotion" ;
import { MyComposition , MyCompositionProps } from "./MyComposition" ;
const calculateMetadata : CalculateMetadataFunction <
MyCompositionProps
> = async ({ props, abortSignal }) => {
const data = await fetch (`https://api.example.com/video/${props.videoId} ` , {
signal : abortSignal,
}).then ((res ) => res.json ());
return {
durationInFrames : Math .ceil (data.duration * 30 ),
props : {
...props,
videoUrl : data.url ,
},
width : 1080 ,
height : 1080 ,
};
};
export const RemotionRoot = ( ) => {
return (
<Composition
id ="MyComposition"
component ={MyComposition}
fps ={30}
width ={1080}
height ={1080}
defaultProps ={{ videoId: "abc123 " }}
calculateMetadata ={calculateMetadata}
/>
);
};
Starting preview Start the Remotion Studio to preview a video:
Optional: one-frame render check You can render a single frame with the CLI to sanity-check layout, colors, or timing.
Skip it for trivial edits, pure refactors, or when you already have enough confidence from Studio or prior renders.
npx remotion still [composition-id] --scale=0.25 --frame=30
At 30 fps, --frame=30 is the one-second mark (--frame is zero-based).
Captions
Using FFmpeg For some video operations, such as trimming videos or detecting silence, FFmpeg should be used. Load the ./rules/ffmpeg.md file for more information.
Silence detection
Audio visualization
Sound effects When needing to use sound effects, load the ./rules/sfx.md file for more information.
3D content See rules/3d.md for 3D content in Remotion using Three.js and React Three Fiber.
Advanced audio See rules/audio.md for advanced audio features like trimming, volume, speed, pitch.
Dynamic duration, dimensions and data
Advanced compositions See rules/compositions.md for how to define stills, folders, default props and for how to nest compositions.
Google Fonts Is the recommended way to load fonts in Remotion. See rules/google-fonts.md for how to load Google Fonts.
Local fonts
Getting audio duration
Getting video dimensions
Getting video duration
GIFs See rules/gifs.md for how to display GIFs synchronized with Remotion's timeline.
Advanced Images See rules/images.md for sizing and positioning images, dynamic image paths, and getting image dimensions.
Light leaks
Lottie animations
Measuring DOM nodes
Measuring text
Advanced sequencing
TailwindCSS
Text animations
Advanced timing See rules/timing.md for advanced timing with interpolate and Bézier easing, and springs.
Transitions
Transparent videos
Trimming See rules/trimming.md for trimming patterns - cutting the beginning or end of animations.
Advanced Videos See rules/videos.md for advanced knowledge about embedding videos - trimming, volume, speed, looping, pitch.
Parameterized videos
Maps See rules/maps.md for adding a map using Mapbox and animating it.
Voiceover See rules/voiceover.md for adding AI-generated voiceover to Remotion compositions using ElevenLabs TTS.
المهن ذات الصلة SOC
استنادا إلى تصنيف SOC المهني