---
title: Core Concepts
url: https://docs.kaltura.com/docs/rich-media-cms-apis/content-management/video-editing-core-concepts
---

## Core Concepts


### Operation Resource Types

| Type | Purpose |
|------|---------|
| `KalturaOperationResource` | Single-source operations: clip, trim, overlay, effects |
| `KalturaOperationResources` (plural) | Multi-source concatenation: splice segments from N entries |
| `KalturaClipAttributes` | Time range selection: offset + duration (milliseconds) |
| `KalturaOverlayAttributes` | Picture-in-picture composition |
| `KalturaReplaceBackgroundAttributes` | Chroma-key background replacement |
| `KalturaRenderCaptionAttributes` | Caption text burn-in to video |
| `KalturaEffect` | Fade in/out transitions |
| `KalturaDimensionsAttributes` | Output resolution/aspect ratio control |

### Entry Replacement Flow (Trim)

Trimming uses `media.updateContent` which triggers the **replacement flow** — a safe, non-destructive update pipeline:

1. Call `media.updateContent` with the operation resource
2. Kaltura creates a temporary replacement entry and begins processing
3. The original entry's `replacementStatus` changes from `0` (NONE) to `3` (NOT_READY_AND_NOT_APPROVED)
4. Poll `baseEntry.get` until `replacementStatus` changes to `2` (READY_BUT_NOT_APPROVED)
5. Call `media.approveReplace` to swap the processed content into the original entry
6. The entry returns to `replacementStatus=0` with the new content

**Replacement statuses:**

| Value | Name | Meaning |
|-------|------|---------|
| 0 | NONE | No replacement in progress |
| 1 | APPROVED_BUT_NOT_READY | Approved, still processing |
| 2 | READY_BUT_NOT_APPROVED | Processing complete, awaiting approval |
| 3 | NOT_READY_AND_NOT_APPROVED | Processing, not yet approved |
| 4 | FAILED | Replacement processing failed |

### Clip Flow (New Entry)

Creating a clip produces a new entry preserving the original:

1. Call `baseEntry.clone` with `KalturaBaseEntryCloneOptionComponent` (itemType=6, rule=1) to exclude flavors — creates NO_CONTENT clone with metadata
2. Call `media.updateContent` on the cloned entry with `KalturaOperationResource` specifying the time range
3. Poll for the cloned entry to reach READY status

### Constraints

| Constraint | Value |
|-----------|-------|
| Maximum clips in concatenation | 5 (configurable per account) |
| Maximum total duration (concat) | 5 hours |
| Concurrent replacements per entry | 1 (returns `ENTRY_REPLACEMENT_ALREADY_EXISTS` if busy) |
| Audio mixing model | Complementary: overlay at `volume`, main at `1-volume` |
| Image sources in composition | Auto-looped with shortest-duration matching |
| Overlay shapes | CIRCLE (1), RECTANGLE (2), RECTANGLE_ROUNDED_CORNERS (3), ELLIPSE (4) |
| Caption color format | ASS format: `&HBBGGRR&` |
| Background color format | Hex: `0xRRGGBB` (default: `0x6FED48` green) |
