packages/docs/docs/videos/index.mdx
You can embed existing videos into Remotion by using the <OffthreadVideo> component.
import React from 'react';
import {OffthreadVideo, staticFile} from 'remotion';
export const MyComp: React.FC = () => {
return <OffthreadVideo src="https://remotion.media/BigBuckBunny.mp4" />;
};
Put a file into the public folder and reference it using staticFile().
import React from 'react';
import {OffthreadVideo, staticFile} from 'remotion';
export const MyComp: React.FC = () => {
return <OffthreadVideo src={staticFile('video.mp4')} />;
};
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).
import React from 'react';
import {OffthreadVideo, staticFile} from 'remotion';
export const MyComp: React.FC = () => {
return <OffthreadVideo src={staticFile('video.mp4')} trimBefore={60} />;
};
Similarly, you can use trimAfter to trim the end of the video.
import React from 'react';
import {OffthreadVideo, staticFile} from 'remotion';
export const MyComp: React.FC = () => {
return <OffthreadVideo src={staticFile('video.mp4')} trimBefore={60} trimAfter={120} />;
};
Use the <Sequence> component to delay the appearance of a video.
In the example below, the video will start playing at frame 60.
import React from 'react';
import {OffthreadVideo, staticFile, Sequence} from 'remotion';
export const MyComp: React.FC = () => {
return (
<Sequence from={60}>
<OffthreadVideo src={staticFile('video.mp4')} />
</Sequence>
);
};
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.
import React from 'react';
import {OffthreadVideo, staticFile} from 'remotion';
export const MyComp: React.FC = () => {
return (
<OffthreadVideo
src={staticFile('video.mp4')}
style={{
width: 640,
height: 360,
position: 'absolute',
top: 100,
left: 100,
}}
/>
);
};
You can set the volume of the video using the volume prop.
import React from 'react';
import {OffthreadVideo, staticFile} from 'remotion';
export const MyComp: React.FC = () => {
return <OffthreadVideo src={staticFile('video.mp4')} volume={0.5} />;
};
You can also mute a video using the muted prop.
import React from 'react';
import {OffthreadVideo, staticFile} from 'remotion';
export const MyComp: React.FC = () => {
return <OffthreadVideo src={staticFile('video.mp4')} muted />;
};
See Using Audio for more ways you can control volume.
You can use the playbackRate prop to change the speed of the video.
import React from 'react';
import {OffthreadVideo, staticFile} from 'remotion';
export const MyComp: 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.
See: Looping an <OffthreadVideo>
See: Using GIFs