Embedding videos into Remotion
You can embed existing videos into Remotion by using the <OffthreadVideo> component.
tsximportReact from 'react';import {OffthreadVideo ,staticFile } from 'remotion';export constMyComp :React .FC = () => {return <OffthreadVideo src ="https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4" />;};
Using a local file
Put a file into the public folder and reference it using staticFile().
tsximportReact from 'react';import {OffthreadVideo ,staticFile } from 'remotion';export constMyComp :React .FC = () => {return <OffthreadVideo src ={staticFile ('video.mp4')} />;};
Trimming
By using the trimBefore prop, you can remove the first few seconds of the video.
In the example below, the first two seconds of the video are skipped (assuming a composition FPS of 30).
tsximportReact from 'react';import {OffthreadVideo ,staticFile } from 'remotion';export constMyComp :React .FC = () => {return <OffthreadVideo src ={staticFile ('video.mp4')}trimBefore ={60} />;};
Similarly, you can use trimAfter to trim the end of the video.
tsximportReact from 'react';import {OffthreadVideo ,staticFile } from 'remotion';export constMyComp :React .FC = () => {return <OffthreadVideo src ={staticFile ('video.mp4')}trimBefore ={60}trimAfter ={120} />;};
Delaying
Use the <Sequence> component to delay the appearance of a video.
In the example below, the video will start playing at frame 60.
tsximportReact from 'react';import {OffthreadVideo ,staticFile ,Sequence } from 'remotion';export constMyComp :React .FC = () => {return (<Sequence from ={60}><OffthreadVideo src ={staticFile ('video.mp4')} /></Sequence >);};
Size and Position
You can size and position the video using CSS.
You'll find the properties width, height, position, left, top, right, bottom, margin, aspectRatio and objectFit useful.
tsximportReact from 'react';import {OffthreadVideo ,staticFile } from 'remotion';export constMyComp :React .FC = () => {return (<OffthreadVideo src ={staticFile ('video.mp4')}style ={{width : 640,height : 360,position : 'absolute',top : 100,left : 100,}}/>);};
Volume
You can set the volume of the video using the volume prop.
tsximportReact from 'react';import {OffthreadVideo ,staticFile } from 'remotion';export constMyComp :React .FC = () => {return <OffthreadVideo src ={staticFile ('video.mp4')}volume ={0.5} />;};
You can also mute a video using the muted prop.
tsximportReact from 'react';import {OffthreadVideo ,staticFile } from 'remotion';export constMyComp :React .FC = () => {return <OffthreadVideo src ={staticFile ('video.mp4')}muted />;};
See Using Audio for more ways you can control volume.
Speed
You can use the playbackRate prop to change the speed of the video.
tsximportReact from 'react';import {OffthreadVideo ,staticFile } from 'remotion';export constMyComp :React .FC = () => {return <OffthreadVideo src ={staticFile ('video.mp4')}playbackRate ={2} />;};
This only works if the speed is constant. See also: Changing the speed of a video over time.
Looping
See: Looping an <OffthreadVideo>
GIFs
See: Using GIFs