Importing media
Ways in
| Route | Handles |
|---|---|
| Drag from the OS onto the canvas or the timeline | Images, video, audio — placed where you drop them |
| The Assets panel — Import, Import Folder, or a drop on the panel | Adds to the project’s library; you place it afterwards |
| File ▸ Import ▸ Files… · Folder… · 3D Model… · Template Package… | The same import, from the menu |
| The Media Browser tab of the Assets panel | Lists a folder on disk, so footage can be dragged in without an import dialog |
| New Layer ▸ Audio… / Image Sequence… | A file picker; a sequence arrives as one timed layer |
| New Layer ▸ Import .lottie / .json Animation… | See Lottie |
Importing into the Assets panel does not place anything in the composition. As in After Effects and Premiere, importing fills the project; placing a file is a separate, explicit gesture — a drag onto the canvas or the timeline, or Add to Composition / Add at Playhead on the asset’s row. After an import, one toast offers to add the files to the composition, for when you did mean both. A fresh import is always selected and scrolled into view, and any filter that would hide it is cleared.
Where assets live
| Path | Storage |
|---|---|
| Cloud | Cloudinary, keyed <kind>:<public_id>. Audio is uploaded as resource_type: 'video' |
| Local-first | A content-addressed blob store inside the project bundle |
The Assets panel
One list for images, video and audio, as a list or a thumbnail grid: folders, sorting, filters (including Show Unused Only), tags and colour labels, and a metadata drawer describing the selected file and the layers that use it. Its toolbar carries New Folder, add to the composition or at the playhead, Interpret Footage and New Composition from Footage. See Left sidebar panels.
Footage is a source
A placed composition and an imported clip are the same shape of thing: both have an intrinsic size and an intrinsic time, and both go into a host that may disagree with either. They are handled by one mechanism, not a footage path beside a composition path.
Two consequences worth knowing:
- Footage auto-fits on import. A 4K clip dropped into a 1080 composition used to arrive at 3840 × 2160 — four times the frame, with only its centre visible. It now lands framed.
- Interpretation lives on the asset, not the layer. Correcting a mis-tagged import updates every layer using that file at once, in every composition, after you have already cut with it.
Probing on import
On the desktop, ffprobe runs on import when it can be found, and supplies
three facts only a demuxer knows: the real source frame rate, the container’s
pixel aspect, and a definitive inventory of audio streams. The audio section of
the inspector appears on real stream data rather than waiting for a decode to
fail.
Degradation is explicit. The installers ship ffmpeg for export but not
ffprobe, so the probe uses one from $FFPROBE_PATH, beside the FFmpeg in use,
or on your PATH — and may find nothing:
| Tier | What is known |
|---|---|
| Probed | Real source rate, pixel aspect, audio streams |
| None | Import still succeeds, with today’s fallback behaviour |
An import never fails or is skipped because a probe did not run.
The probed rate is written to the asset’s metadata, deliberately not to
interpret.conformFps. Conform means “the user overrode the file” — writing
both would leave nothing to reset to.
Interpret Footage
Per-asset overrides for what the file claims about itself:
| Setting | Notes |
|---|---|
| Conform frame rate | Overrides the probed source rate |
| Pixel aspect ratio | Applied before fit, not after |
| Alpha | Straight or premultiplied — see How a frame is rendered |
| Loop count | — |
| Proxy | See Proxies |
Fit is a command
Fit is something you run, not something the layer stores.
| Command | Result |
|---|---|
| Fit to Comp | Scale to fit inside the composition frame |
| Fit to Width / Fit to Height | Fit one axis |
| Fill Comp | Cover the frame, cropping the overflow |
| Set to Native Size | Back to the source’s intrinsic pixels |
| Centre Anchor Point in Layer Content | Anchor to the middle of what is actually there |
Each computes once and writes the result. This is why the old Media-panel Fit Mode dropdown never appeared to do anything and has been removed: a stored mode has to be re-resolved every frame against a composition size that can change, which puts it in a fight with the selection handles that has no defined winner.
Media controls
Once a media layer exists, the Media settings section of the Properties panel carries:
| Control | Applies to |
|---|---|
| Source | Which asset the layer points at |
| Trim | In and out points within the source |
| Speed | Playback rate. The clip’s audio follows the retimed picture |
| Crop | — |
| Volume | Video and audio — in dB, and keyframable |
Video layers
Video layers seek frame-accurately during export, not just during preview. A video that looks correct scrubbing in the viewport will land correctly in the file. A proxy never substitutes for output.
A video layer also plays and exports its own audio track — see Audio.
Frame blending is available for video whose frame rate does not match the composition’s — it interpolates between source frames rather than duplicating or dropping them. It brackets on the source’s rate when that is known, which is what the import probe supplies. Bracketing on the composition’s rate instead — which is what it used to do — made both bracket times land inside the same decoded frame for a 24 fps source in a 30 fps comp, collapsing the blend to nearest-frame in exactly the mismatched-rate case the feature exists for.
Image sequences
A multi-file import arrives as a single timed layer, not as N layers. Trim, retime and speed it like any other media.
Time controls
For any layer, Properties ▸ Blending and switches adds Time stretch %, Reverse and Freeze frame. The same commands, with Time Remapping, Retime and the Frame Blend modes (Off, Frame Mix, Pixel Motion), are under Animation ▸ Time.