// Show for exactly 5 secondscomp.add(transparent).start(2.0).duration(5.0)// Appears at 2s, disappears at 7s// Show from 10s to 15scomp.add(transparent).start(10.0).end(15.0)// Appears at 10s, disappears at 15s// Show from start time until end of compositioncomp.add(transparent).start(5.0)// Appears at 5s, continues until composition ends
// Use seconds 5-10 of the source videoconst trimmed = transparent.subclip(5, 10)comp.add(trimmed)// Use from 3 seconds to end of sourceconst fromMiddle = transparent.subclip(3)comp.add(fromMiddle)// Or trim directly in compositioncomp.add(transparent).subclip(2, 8)
You can combine source trimming with composition timing:
// Use seconds 1-4 of source (3 seconds of content)// Show it at 10-13 seconds in the final videocomp.add(transparent) .subclip(1, 4) // Source: use 1-4s (3s of content) .start(10) // Composition: show at 10s .duration(3) // Composition: show for 3s (10-13s)
When you use a video background, it determines the final length:
// 30-second background video = 30-second final compositionconst bg = Background.fromVideo('30_second_bg.mp4')const comp = new Composition(bg)comp.add(transparent) // Even if foreground is 5 seconds// Final video will be 30 seconds
Rule 2: Color/Image Backgrounds Use Longest Foreground
Color and image backgrounds adapt to your content:
// Color background adapts to contentconst bg = Background.fromColor('#FF0000', 1920, 1080, 30)const comp = new Composition(bg)comp.add(tenSecondTransparent) // 10-second transparent videocomp.add(fiveSecondTransparent) // 5-second transparent video// Final video will be 10 seconds (longest foreground)
const comp = new Composition(anyBackground)comp.setDuration(20.0) // Force 20-second durationcomp.add(transparent)// Final video will be exactly 20 seconds
// Method 1: Trim the foreground before addingconst trimmed = video.subclip(10, 20) // Use seconds 10-20comp.add(trimmed, 'segment')// Method 2: Trim in the compositioncomp.add(transparent).subclip(10, 20)// Method 3: Open-ended trim (from 5s to end)comp.add(transparent).subclip(5)
// Multiple segments from same sourcecomp.add(transparent).subclip(0, 3).start(0) // 0-3s of source at 0scomp.add(transparent).subclip(10, 15).start(5) // 10-15s of source at 5scomp.add(transparent).subclip(25, 30).start(12) // 25-30s of source at 12s// Re-trimming (trim a trimmed video)const firstTrim = transparent.subclip(5, 20) // 5-20s of originalconst secondTrim = firstTrim.subclip(2, 8) // 2-8s of first trim = 7-13s of original
// Transparent video with audio that starts at 3 secondscomp.add(transparent) .start(3.0) .audio(true, 1.0) // Audio automatically delayed to match video// Multiple audio sources with different timingcomp.add(transparent1).start(0).audio(true, 0.8) // Main audiocomp.add(transparent2).start(5).audio(true, 0.3) // Background musiccomp.add(transparent3).start(10).audio(true, 0.5) // Sound effects