Render Engine

Media processing pipeline, timeline, mixing, encoding GPU, dan export.

Media Processing Pipeline

14 tahap dari project hingga publish ready, dengan estimasi porsi waktu render.

Project

0.2s

Muat manifest proyek, resolusi target, durasi 20 detik, dan preset platform.

wave 0

Scene Assets

1.3s

Streaming loading aset: video scene, image scene, voice, musik, SFX, subtitle, thumbnail.

wave 1incremental

Media Validation

0.9s

Probe seluruh aset; blokir pipeline bila ada file rusak, codec asing, atau aset hilang.

wave 1incremental

Timeline Builder

0.6s

Susun timeline 10 scene × 2 detik dengan layer, track audio, subtitle, transisi, dan motion.

wave 2incremental

Video Composer

4.7s

Compositing berbasis layer: scene, overlay, motion graphics, logo, watermark, CTA, outro.

wave 3gpuincremental

Audio Mixer

1.5s

Mix voice, musik, SFX, ambience dengan ducking, denoise, normalisasi, dan limiter.

wave 3incremental

Subtitle Composer

1.3s

Render subtitle word-by-word multi bahasa dengan gaya karaoke/TikTok/YouTube/cinematic.

wave 3gpuincremental

Visual Effects

2.8s

Terapkan bloom, light rays, partikel, motion blur, depth of field, dan vignette secukupnya.

wave 4gpuincremental

Color Grading

1.1s

Terapkan LUT preset konsisten lintas scene beserta pencocokan white balance.

wave 4gpuincremental

Quality Control

1.3s

Character consistency checker, scene quality checker, dan sinkronisasi audio/subtitle.

wave 5gpuincremental

Encoding

3.9s

Encode H.264/H.265/AV1/VP9 pada preset Draft s.d. Lossless dengan akselerasi GPU.

wave 6gpu

Compression

1.1s

Bitrate adaptif, constant quality, VBR dua langkah, dan faststart untuk streaming.

wave 7

Export

0.6s

Bungkus MP4/MOV/WebM sesuai preset YouTube Shorts, TikTok, Reels.

wave 8

Publish Ready

0.2s

Paket akhir: video, thumbnail, judul, deskripsi, tag, hashtag, caption.

wave 9

Media Validation Engine

Pipeline diblokir sampai seluruh aturan lolos.

  • File rusak

    Regenerasi aset

    Probe berhasil, moov atom utuh, tidak ada frame korup.

  • Resolusi

    Regenerasi aset

    Minimal 1080 × 1920, rasio 9:16 persis.

  • Frame rate

    Versi cadangan

    24/30/60 FPS konstan; VFR dinormalisasi ke CFR.

  • Codec

    Versi cadangan

    Video H.264/H.265/AV1/VP9, audio AAC/Opus/PCM.

  • Durasi

    Regenerasi aset

    Tiap scene 2.00 detik ± 40 ms; total 20.00 detik.

  • Sinkronisasi

    Peringatan log

    Drift A/V < 40 ms pada seluruh timeline.

  • Audio

    Regenerasi aset

    48 kHz stereo, puncak ≤ −1 dBTP, tidak silent.

  • Subtitle

    Peringatan log

    Timestamp monoton naik, tanpa tumpang tindih, ≤ 2 baris.

  • Missing asset

    Versi cadangan

    Seluruh slot scene terisi atau punya versi cadangan.

Parallel Processing

Rendering akhir dimulai hanya setelah semua gelombang aset selesai.

Wave 0

Project

Wave 1

Scene AssetsMedia Validation

Wave 2

Timeline Builder

Wave 3

Video ComposerAudio MixerSubtitle Composer

Wave 4

Visual EffectsColor Grading

Wave 5

Quality Control

Wave 6

Encoding

Wave 7

Compression

Wave 8

Export

Wave 9

Publish Ready

Timeline Builder

10 scene × 2 detik; transisi & motion dipilih otomatis dari suasana cerita.

SceneStart → EndSourceMotion / CameraTransitionAudio / Sub
Scene 10.0s → 2.2svideoDolly · dollyFadevoice / id-ID
Scene 22.2s → 4.4svideoParallax · multi-planeMask Revealvoice / id-ID
Scene 34.4s → 6.7simageTilt · verticalBlurvoice / id-ID
Scene 46.7s → 8.9svideoSlow Motion · staticCross Dissolvevoice / id-ID
Scene 58.9s → 11.1svideoDolly · dollyLight Leakvoice / id-ID
Scene 611.1s → 13.3simageParallax · multi-planeMask Revealvoice / id-ID
Scene 713.3s → 15.6svideoTilt · verticalBlurvoice / id-ID
Scene 815.6s → 17.8svideoSlow Motion · staticCross Dissolvevoice / id-ID
Scene 917.8s → 20.0simageDolly · dollyLight Leakvoice+outro / id-ID

Motion Graphics

0.0 – 20.0s

Lower third + progress bar tipis.

Logo

0.0 – 2.5s

Fade in 8 frame, safe area 6%.

Watermark (opsional)

2.5 – 17.0s

Opacity 18%, sudut kanan bawah.

CTA

16.0 – 18.5s

Spring pop-in, kontras tinggi.

Outro

18.0 – 20.0s

Mask reveal ke brand card.

Audio Mixer

Voice, musik, SFX, ambience dengan ducking dan limiter.

Voice Over

0 dB

Track referensi utama

Background Music

-14 dB

Ducking aktif saat voice bicara

Sound Effects

-8 dB

Ducking aktif saat voice bicara

Ambience

-20 dB

Ducking aktif saat voice bicara

  • Noise Reduction

    afftdn=nf=-28

    Hanya pada track voice.

  • High-pass

    highpass=f=80

    Buang rumble di bawah 80 Hz.

  • Ducking otomatis

    sidechaincompress=threshold=0.03:ratio=8:attack=5:release=250

    Musik & SFX turun saat voice aktif.

  • Stereo Balancing

    stereotools=balance_in=0

    Voice mono-center, musik lebar.

  • Normalisasi volume

    loudnorm=I=-14:TP=-1.5:LRA=11

    Target −14 LUFS untuk Shorts.

  • Audio Limiter

    alimiter=limit=0.95

    Cegah clipping setelah mixing.

  • Fade In / Out

    afade=t=in:d=0.35, afade=t=out:st=19.4:d=0.6

    Selalu di akhir rantai.

Subtitle Composer

Multi bahasa, word-by-word, selalu sinkron dengan audio.

Highlight per kata mengikuti forced alignment, warna aksen bergerak.

Malam itu lentera kecil menyala

FadeSlideBounceHighlightWord by wordOutlineShadow
id-IDen-USms-MYes-ESar-SAja-JP

Motion, Transition & Visual Effects

Halus, sinematik, dan diterapkan secukupnya.

Motion Engine

Zoom In

Skala 1.00 → 1.12 dengan easing cubic-out.

Zoom Out

Skala 1.14 → 1.00, menyingkap konteks scene.

Pan

Geser horizontal 6% lebar frame, konstan.

Tilt

Geser vertikal 5% tinggi frame ke atas.

Rotate

Rotasi halus ±1.5° untuk aksen playful.

Dolly

Zoom + pergeseran perspektif ringan (fake 3D).

Parallax

Foreground/midground/background beda kecepatan.

Camera Shake

Noise Perlin amplitudo rendah, 4–6 Hz.

Slow Motion

Retime 0.6× dengan interpolasi optical flow.

Speed Ramp

0.5× → 1.6× pada titik aksen audio.

Ken Burns

Zoom + pan simultan untuk aset still.

Depth Simulation

Depth map menggerakkan layer semu 2.5D.

Whip Pan

Pan cepat + motion blur directional.

Transition Engine

Fade · 8f · calmCross Dissolve · 10f · calmBlur · 9f · dramaticZoom · 7f · energeticWhip · 5f · energeticLight Leak · 12f · dramaticFlash · 4f · energeticPush · 8f · playfulSlide · 8f · playfulMask Reveal · 12f · dramatic

Visual Effects

Lens Flare · subtleBloom · mediumLight Rays · subtleParticle · subtleRain · scene-basedFog · scene-basedDust · subtleSmoke · scene-basedGlow · mediumReflection · subtleShadow Enhancement · mediumMotion Blur · mediumDepth of Field · mediumVignette · subtleChromatic Aberration · opsional

Color Grading

LUT konsisten di seluruh scene.

lut3d=teal_orange_v3.cube, eq=contrast=1.08:saturation=1.05:gamma=0.98

Contrast

1.08

Saturation

1.05

Gamma

0.98

Character Consistency Checker

WajahRambutWarna kulitPakaianAksesoriProporsi tubuh

Scene Quality Checker

BlurNoiseArtefakDistorsiFlickerWarnaKomposisiRasio aspekSafe area

Encoding & Compression

Pilih codec, kualitas, resolusi, FPS, dan backend GPU — estimasi dihitung langsung.

Bitrate

9 Mbps

Ukuran file (20s)

22.82 MB

Waktu encode

4.9s

Encoder

h264_nvenc

GPU aktif

ffmpeg -y \
  -i timeline.json.mkv \
  -c:v h264_nvenc \
  -rc vbr -cq 21 -b:v 9M -maxrate 13.5M \
  -r 30 \
  -vf scale=1080:1920:flags=lanczos,format=yuv420p \
  -c:a aac -b:a 192k -ar 48000 -ac 2 \
  -movflags +faststart \
  out.mp4

Constant Quality

CRF/CQ sebagai default — kualitas stabil lintas scene.

Variable Bitrate

Two-pass VBR bila target ukuran file dikunci.

Bitrate adaptif

Analisis kompleksitas per scene menaikkan bitrate hanya di scene padat gerak.

Fast Start

moov atom dipindah ke depan agar streaming mulai instan.

Ukuran file

Target < 12 MB untuk 20 detik 1080p tanpa artefak kasat mata.

Render Queue & Monitoring

Kontrol antrean dan metrik real-time.

Kisah Lentera Malam

rendering

job_8f21 · high · nvenc · ETA 48s

Robot Kecil Penjaga Kebun

queued

job_8f22 · normal · nvenc · ETA 190s

Petualangan Awan Biru

paused

job_8f19 · normal · qsv · ETA 120s

Naga dari Bukit Kabut

failed

job_8f17 · low · cpu ·

Sepatu Ajaib Rani

done

job_8f11 · normal · videotoolbox ·

Priority queue (paid > free, retry > baru)Pause / Resume per jobCancel dengan pembersihan artefak sementaraRetry otomatis dan manualEstimated time berdasarkan histori encoderQueue monitoring real-timeBackground rendering tanpa memblok UI

Progress render

%

Encoding FPS

fps

CPU

%

GPU

%

RAM

GB

Storage

GB

Queue depth

job

Estimasi waktu

detik

Kecepatan encoding

×realtime

Tingkat keberhasilan

%

Error Recovery & Logging

Checkpoint, resume, retry, dan jejak audit.

  1. 1

    Simpan checkpoint per tahap ke object storage (state + hash aset).

  2. 2

    Saat gagal, resume dari checkpoint terakhir — bukan dari nol.

  3. 3

    Retry otomatis dengan exponential backoff untuk error transien.

  4. 4

    Gunakan aset cadangan (versi sebelumnya) bila regenerasi gagal dua kali.

  5. 5

    Hanya scene bermasalah yang di-render ulang; scene valid dipertahankan.

  6. 6

    Catat seluruh kesalahan beserta konteks tahap, aset, dan parameter encoder.

Log fields

render_started_at / finished_atcodec + encoder (nvenc / qsv / vt / libx264)resolution + fpstarget & actual bitratedurasi outputerror code + stack tahapretry count per tahapgpu_utilization_avgcpu_utilization_avg

Quality Assurance

Gate wajib sebelum export dijalankan.

  • Durasi tepat

    Total 20.000 detik ± 1 frame.

  • Tanpa frame kosong

    Tidak ada frame hitam/putih penuh > 2 frame beruntun.

  • Audio sinkron

    Offset voice terhadap mulut/beat < 40 ms.

  • Subtitle sinkron

    Cue mengikuti word timestamp hasil forced alignment.

  • Scene lengkap

    10 dari 10 scene ter-render dan tervalidasi.

  • Thumbnail tersedia

    1080 × 1920 PNG/JPG < 2 MB.

  • Metadata lengkap

    Judul, deskripsi, tag, hashtag, caption terisi.

  • Rasio 9:16

    SAR 1:1, DAR 9:16, tanpa pillarbox.

Bila satu gate gagal, proses berhenti dan hanya tahap bermasalah yang dijalankan ulang.

Export & Publish Package

Preset per platform vertikal + paket publikasi.

PlatformFormatCatatan
YouTube ShortsMP4 · H264 · 1080p · 30fps≤ 60 detik, 9:16, faststart.
YouTube Shorts 4KMP4 · H265 · 2160p · 60fpsHDR-ready, bitrate tinggi.
TikTokMP4 · H264 · 1080p · 30fpsSafe area atas 12% & bawah 20%.
Instagram ReelsMP4 · H264 · 1080p · 30fpsAudio −14 LUFS, caption burn-in opsional.
Facebook ReelsMP4 · H264 · 1080p · 30fpsKompatibilitas maksimum.
Web / WebMWEBM · VP9 · 1080p · 30fpsUntuk preview in-app tanpa lisensi.
Video final (MP4/MOV/WebM)Thumbnail 1080 × 1920Title (≤ 60 karakter)Description dengan timestampTagsHashtagsCaption siap tempel

Panduan Optimasi Performa

Kunci render cepat pada volume tinggi.

Lazy loading aset

Aset di-fetch saat tahap membutuhkannya, bukan di awal.

Cache aset stabil

Hash konten sebagai kunci; scene tak berubah dilewati.

Incremental rendering

Segmen scene disimpan terpisah lalu di-concat.

Smart re-render

Diff timeline menandai scene mana yang wajib di-render ulang.

Asset deduplication

Aset identik lintas proyek berbagi satu blob.

Multi-thread processing

Filter graph dipecah ke worker pool per core.

Streaming asset loading

Range request memutar aset besar tanpa unduh penuh.

Total 14 tahap · 6 tahap GPU-accelerated · 9 tahap mendukung smart re-render.