PiP bottom-left, L
Full-frame A-roll with a large (50% wide) rounded B-roll inset in the bottom-left corner. Inset bottom-left above the caption/username lane (its bottom edge is y=0.80); the right rail stays free. B-roll is as important as the speaker; face may share space.
Preview unavailable
Lay out my footage like this: "PiP bottom-left, L" from the 24fps video editor library.
Preset JSON: https://24fps.dev/video-editor/layouts/pip-bl-l/preset.json (pass its "preset" to the engine).
Engine (MIT, no dependencies, ES module): https://24fps.dev/editor/engine.js. Download the engine next to your page (curl -O) rather than importing cross-origin, then import { mount } from "./engine.js" in a <script type="module"> served over http.
Wiring: root = a position:relative box at the video's size. media = { main, second }: main = wrapper holding my video, second = wrapper holding my other clip (often the background); the engine positions and crops them into the layout's slots. Then const fx = mount(root, { kind: "layout", preset, media }) and call fx.render(seconds) every frame. It is seek-safe: drive it from the GSAP timeline in HyperFrames or call render(frame / fps) in Remotion. Before capturing frames, await (fx.ready ?? document.fonts.ready).
Field reference: https://24fps.dev/video-editor/llms.txt. Keep sizes as fractions of the frame height so it works at any resolution. Credit: 24fps.dev/video-editor- Same idea
- Also called: Picture in picture overlay
- Technique
- Common short-form editing pattern
- Footage
- Man talking and gesturing, Pexels