Terminology
To better understand the documentation, here are some key terms you should know:
- Composition: The root object that contains all assets to be rendered in a single video.
- Layer: A chronological sequence of clips of the same type (e.g., video clips).
- Clip: An object that contains specific rendering information, such as position and duration of visibility within the video.
- Framerate: The rate at which frames are displayed, measured in frames per second (FPS). If not specified otherwise, Diffusion Studio uses a default frame rate of 30 FPS.
- Encoder: A tool that compresses the size of each frame within the sequence, using common codecs such as H.264/AVC1 or H.265/HEVC.
- Video Renderer: An abstraction responsible for creating and managing the visual rendering context (WebGL or Canvas), drawing the composition state to the screen.
- Audio Renderer: Manages the playback of the composition and processes the audio data.
Time Units
When working with time units, you can use the following formats:
2ms
,2s
,2f
(frames @30FPS),3.5min
,2:35
(MM:SS),4:32:12
(HH:MM:SS),3
(@30FPS),Timestamp
That’s enough theoretical background. Now lets start hacking!
Enjoy!
import * as core from '@diffusionstudio/core';
const text = new core.TextClip({
text: 'Hello World',
position: 'center'
});
const composition = new core.Composition(); // create root object
await composition.add(text); // render text
const blob = await new core.Encoder(composition).render();
Last updated on