Sistemul de Șabloane Rendervid - Șabloane JSON, Variabile, Animații și Tranziții

Rendervid Video Rendering Templates Open Source

Rendervid este un motor de randare video programatic construit în jurul unui sistem de șabloane declarativ, bazat pe JSON. În loc să editați manual video într-o linie de timp, definiți fiecare aspect al video-ului dvs. – scene, straturi, animații, tranziții și setări de ieșire – într-un singur document JSON. Această abordare face șabloanele fără stare, controlabile prin versiuni și generabile de mașină, deschizând ușa către producția video condusă de AI, pipeline-uri de randare în loturi și fluxuri de lucru de conținut complet automatizate.

Acest ghid acoperă sistemul complet de șabloane Rendervid de sus până jos: configurație la nivel de rădăcină, setări de ieșire, sistemul de variabile și intrări, scene și compoziție, toate cele opt tipuri de straturi, peste 40 de presetări de animații, peste 30 de funcții easing, 17 tranziții de scene, efecte vizuale, configurarea fonturilor și formate de ieșire.


Prezentare Generală a Structurii Șablonului

Fiecare șablon Rendervid este un obiect JSON cu un set bine definit de câmpuri la nivel de rădăcină. Iată scheletul unui șablon complet:

{
  "name": "my-template",
  "output": { ... },
  "inputs": [ ... ],
  "composition": {
    "scenes": [ ... ]
  },
  "fonts": { ... },
  "customComponents": { ... },
  "defaults": { ... }
}

Câmpuri la Nivel de Rădăcină

CâmpTipObligatoriuDescriere
namestringDaIdentificator de șablon lizibil pentru om
outputobjectDaConfigurație de ieșire video sau imagine (dimensiuni, fps, durată, format)
inputsarrayNuDefiniții de intrare dinamice pentru variabile de șablon
compositionobjectDaConține matricea scenes care definește tot conținutul vizual
fontsobjectNuDeclarații Google Fonts și fonturi personalizate
customComponentsobjectNuComponente de strat personalizate înregistrate
defaultsobjectNuValori implicite aplicate tuturor straturilor dacă nu sunt suprascrise

Câmpul name este în scopuri organizaționale – nu afectează randarea. Câmpurile output și composition sunt cei doi stâlpi pe care trebuie să îi aibă fiecare șablon. Tot restul este opțional, dar deblochează capabilități puternice.


Configurare Ieșire

Obiectul output controlează fișierul final randat: formatul său, dimensiunile, rata de cadre, durata și culoarea de fundal.

{
  "output": {
    "type": "video",
    "width": 1920,
    "height": 1080,
    "fps": 30,
    "duration": 10,
    "backgroundColor": "#000000"
  }
}

Câmpuri Ieșire

CâmpTipImplicitDescriere
typestring"video"Tip ieșire: "video" sau "image"
widthnumber1920Lățime în pixeli (până la 7680 pentru 8K)
heightnumber1080Înălțime în pixeli (până la 4320 pentru 8K)
fpsnumber30Cadre pe secundă (1-120)
durationnumberDurată totală în secunde
backgroundColorstring"#000000"Culoare de fundal ca hex, RGB sau culoare denumită

Presetări Comune

Iată configurații de ieșire pentru formate populare:

1080p Full HD (YouTube, scop general):

{
  "type": "video",
  "width": 1920,
  "height": 1080,
  "fps": 30,
  "duration": 60,
  "backgroundColor": "#000000"
}

Instagram Reels / TikTok (9:16 vertical):

{
  "type": "video",
  "width": 1080,
  "height": 1920,
  "fps": 30,
  "duration": 30,
  "backgroundColor": "#FFFFFF"
}

4K UHD:

{
  "type": "video",
  "width": 3840,
  "height": 2160,
  "fps": 60,
  "duration": 120,
  "backgroundColor": "#000000"
}

Open Graph / Imagine Partajare Social:

{
  "type": "image",
  "width": 1200,
  "height": 630,
  "backgroundColor": "#1a1a2e"
}

Pentru ieșirea imagine, fps și duration sunt ignorate – renderer-ul capturează un singur cadru.


Variabile și Intrări de Șablon

Sistemul de intrare și variabile este ceea ce face șabloanele Rendervid reutilizabile. În loc să codificați fix text, culori sau URL-uri în șablonul dvs., definiți intrări și le referențiați folosind sintaxa {{variableName}} oriunde în șablon.

Definirea Intrărilor

Intrările sunt declarate în matricea de nivel superior inputs. Fiecare obiect de intrare descrie o singură variabilă:

{
  "inputs": [
    {
      "key": "title",
      "type": "string",
      "label": "Titlu",
      "description": "Textul titlului principal afișat în scena intro",
      "required": true,
      "default": "Hello World"
    },
    {
      "key": "brandColor",
      "type": "color",
      "label": "Culoare Brand",
      "description": "Culoarea principală a brandului folosită pentru fundaluri și accente",
      "required": false,
      "default": "#FF5733"
    },
    {
      "key": "showSubtitle",
      "type": "boolean",
      "label": "Arată Subtitlu",
      "description": "Comutați vizibilitatea subtitlului",
      "required": false,
      "default": true
    }
  ]
}

Referință Câmpuri Intrare

CâmpTipObligatoriuDescriere
keystringDaIdentificator unic folosit în referințele {{key}}
typestringDaTip de date: string, number, boolean, color, url, array
labelstringNuEtichetă lizibilă pentru om pentru randarea UI
descriptionstringNuExplicație a ceea ce controlează această intrare
requiredbooleanNuDacă intrarea trebuie furnizată la momentul randării
defaultanyNuValoare de fallback dacă nu este furnizată nicio intrare

Tipuri de Intrare

  • string – Text în formă liberă. Folosiți pentru titluri, descrieri, subtitrări sau orice conținut text.
  • number – Valori numerice. Folosiți pentru durată, dimensiuni, poziții, niveluri de opacitate sau numărători.
  • boolean – Comutatoare adevărat/fals. Folosiți pentru vizibilitate condițională, flag-uri de caracteristici sau comutatoare pornit/oprit.
  • color – Valori de culoare în hex (#FF5733), RGB (rgb(255,87,51)) sau format denumit. Folosiți pentru fundaluri, culori text și accente.
  • url – Șiruri URL valide. Folosiți pentru surse de imagini, surse video, link-uri și URL-uri de fonturi.
  • array – Liste de valori. Folosiți pentru galerii de imagini, liste de text, conținut diapozitive sau orice date repetate.

Folosirea Variabilelor în Șablon

Odată ce intrările sunt definite, referențiați-le oriunde în șablon folosind acolade duble:

{
  "type": "text",
  "text": "{{title}}",
  "style": {
    "color": "{{brandColor}}",
    "fontSize": "{{titleSize}}"
  }
}

Variabilele sunt rezolvate la momentul randării. Când apelați API-ul Rendervid sau CLI, treceți valorile reale:

{
  "title": "Vânzare de Vară 2026",
  "brandColor": "#E63946",
  "titleSize": 72
}

Exemplu Complet de Intrare

Iată un șablon complet cu multiple tipuri de intrare lucrând împreună:

{
  "name": "product-promo",
  "output": {
    "type": "video",
    "width": 1080,
    "height": 1080,
    "fps": 30,
    "duration": 15
  },
  "inputs": [
    {
      "key": "productName",
      "type": "string",
      "label": "Nume Produs",
      "description": "Numele produsului promovat",
      "required": true,
      "default": "Produs"
    },
    {
      "key": "price",
      "type": "number",
      "label": "Preț",
      "description": "Prețul produsului afișat în video",
      "required": true,
      "default": 29.99
    },
    {
      "key": "productImage",
      "type": "url",
      "label": "URL Imagine Produs",
      "description": "URL către imaginea produsului",
      "required": true
    },
    {
      "key": "accentColor",
      "type": "color",
      "label": "Culoare Accent",
      "description": "Culoarea folosită pentru butoane CTA și evidențieri",
      "required": false,
      "default": "#FF6B35"
    },
    {
      "key": "showBadge",
      "type": "boolean",
      "label": "Arată Insignă Vânzare",
      "description": "Dacă să afișeze suprapunerea insignei de vânzare",
      "required": false,
      "default": false
    },
    {
      "key": "features",
      "type": "array",
      "label": "Caracteristici Produs",
      "description": "Lista de puncte marcatoare ale caracteristicilor",
      "required": false,
      "default": ["Caracteristică 1", "Caracteristică 2", "Caracteristică 3"]
    }
  ],
  "composition": {
    "scenes": [
      {
        "name": "hero",
        "duration": 15,
        "layers": [
          {
            "type": "image",
            "src": "{{productImage}}",
            "position": { "x": 540, "y": 400 },
            "size": { "width": 600, "height": 600 }
          },
          {
            "type": "text",
            "text": "{{productName}}",
            "style": { "fontSize": 48, "fontWeight": 700, "color": "#FFFFFF" },
            "position": { "x": 540, "y": 80 }
          },
          {
            "type": "text",
            "text": "${{price}}",
            "style": { "fontSize": 64, "fontWeight": 900, "color": "{{accentColor}}" },
            "position": { "x": 540, "y": 900 }
          }
        ]
      }
    ]
  }
}

Acest singur șablon poate genera mii de videoclipuri de produse unice prin simpla schimbare a valorilor de intrare la momentul randării – nu sunt necesare modificări de șablon.


Scene și Compoziție

Obiectul composition este locul unde trăiește conținutul video-ului dvs. Conține o matrice scenes, și fiecare scenă reprezintă un segment distinct al video-ului cu propria sa durată, straturi și tranziție.

{
  "composition": {
    "scenes": [
      {
        "name": "intro",
        "duration": 5,
        "transition": {
          "type": "fade",
          "duration": 1
        },
        "layers": [ ... ]
      },
      {
        "name": "main-content",
        "duration": 20,
        "transition": {
          "type": "slide",
          "duration": 0.5,
          "direction": "left"
        },
        "layers": [ ... ]
      },
      {
        "name": "outro",
        "duration": 5,
        "layers": [ ... ]
      }
    ]
  }
}

Câmpuri Scenă

CâmpTipObligatoriuDescriere
namestringNuIdentificator pentru scenă (pentru lizibilitate și depanare)
durationnumberDaLungimea scenei în secunde
transitionobjectNuEfect de tranziție la intrarea în această scenă din cea anterioară
layersarrayDaMatrice ordonată de obiecte strat randate de jos în sus

Scenele se redau în secvență. Durata totală a video-ului este suma tuturor duratelor scenelor (minus orice suprapunere de tranziție). Straturile dintr-o scenă sunt randate în ordinea matricei – primul strat stă în partea de jos a stivei vizuale, iar ultimul strat stă deasupra.

Dacă nu este specificată nicio tranziție, scena folosește un cut dur în mod implicit.


Sistem de Straturi

Rendervid suportă opt tipuri distincte de straturi. Fiecare tip de strat servește un scop specific și acceptă propriul set de proprietăți pe lângă configurația de bază partajată.

Proprietăți Partajate ale Stratului

Fiecare strat, indiferent de tip, suportă aceste proprietăți de bază:

{
  "position": { "x": 100, "y": 100 },
  "size": { "width": 500, "height": 200 },
  "rotation": 0,
  "scale": { "x": 1, "y": 1 },
  "anchor": { "x": 0.5, "y": 0.5 },
  "opacity": 1,
  "blendMode": "normal",
  "from": 0,
  "duration": -1,
  "filters": [],
  "style": {},
  "className": ""
}
ProprietateTipImplicitDescriere
positionobject{x: 0, y: 0}Coordonate X/Y în pixeli
sizeobjectLățime și înălțime în pixeli
rotationnumber0Unghi de rotație în grade
scaleobject{x: 1, y: 1}Multiplicator de scală pentru axele X și Y
anchorobject{x: 0.5, y: 0.5}Punct de ancoră pentru transformări (interval 0-1, 0.5 = centru)
opacitynumber1Opacitate strat (0 = transparent, 1 = opac)
blendModestring"normal"Mod de amestecare CSS pentru compunere
fromnumber0Timp de start în secunde (relativ la începutul scenei)
durationnumber-1Durată strat în secunde (-1 = durată completă scenă)
filtersarray[]Matrice de obiecte filtru vizual
styleobject{}Proprietăți de stil suplimentare asemănătoare CSS
classNamestring""Nume clasă CSS pentru stilizare personalizată

Cele Opt Tipuri de Straturi

  1. text – Randează text stilizat cu control complet asupra fontului, dimensiunii, culorii, alinierii, înălțimii liniei, spațierii literelor, umbrele text și multe altele. Suportă sintaxa {{variable}} pentru conținut dinamic.

  2. image – Afișează imagini statice din URL-uri sau căi locale. Suportă tăiere, moduri object-fit, rază de margine și filtre de imagine.

  3. video – Încorporează clipuri video într-o scenă. Suportă tăiere (start/end), control volum, rată de redare, buclare și mute.

  4. shape – Randează primitive geometrice: dreptunghiuri, cercuri, elipse, linii și poligoane. Suportă umplere, contur, rază de margine, gradienți și umbre.

  5. audio – Adaugă piste audio la o scenă. Suportă volum, fade in/out, tăiere și buclare. Straturile audio nu au reprezentare vizuală.

  6. group – Un strat container care deține straturi copil. Grupurile vă permit să aplicați transformări, animații și efecte mai multor straturi deodată.

  7. lottie – Randează animații JSON Lottie/Bodymovin. Suportă viteză de redare, buclare și control segment pentru redarea anumitor intervale de cadre.

  8. custom – Încarcă componente personalizate înregistrate definite în câmpul customComponents. Folosiți aceasta pentru șabloane de straturi reutilizabile, parametrizate.

Pentru configurarea detaliată a fiecărui tip de strat, inclusiv toate proprietățile disponibile și exemple de cod, consultați Referința Componentelor Rendervid .


Sistem de Animații

Rendervid include peste 40 de presetări de animații încorporate organizate în patru categorii: entrance (intrare), exit (ieșire), emphasis (accent) și keyframe. Animațiile sunt atașate oricărui strat și controlează modul în care acel strat apare, dispare sau se comportă pe parcursul vieții sale.

Configurare Animație

{
  "type": "text",
  "text": "Titlu Animat",
  "animations": [
    {
      "type": "entrance",
      "effect": "fadeInUp",
      "duration": 30,
      "delay": 10,
      "easing": "easeOutCubic",
      "loop": 0,
      "alternate": false
    }
  ]
}

Câmpuri Animație

CâmpTipImplicitDescriere
typestringCategorie animație: entrance, exit, emphasis, keyframe
effectstringNume presetare (de ex., fadeInUp, pulse, bounceOut)
durationnumber30Durată în cadre
delaynumber0Întârziere înainte de începerea animației, în cadre
easingstring"ease"Nume funcție easing
loopnumber0Număr de bucle (0 = fără buclă, -1 = infinit)
alternatebooleanfalseInversează direcția la bucle alternative

Animații de Intrare (20 presetări)

Animațiile de intrare controlează modul în care un strat apare pe ecran. Rulează o dată când este atins timpul de start al stratului.

PresetareDescriere
fadeInEstompare simplă a opacității de la 0 la 1
fadeInUpSe estompează în timp ce alunecă în sus
fadeInDownSe estompează în timp ce alunecă în jos
fadeInLeftSe estompează în timp ce alunecă de la stânga
fadeInRightSe estompează în timp ce alunecă de la dreapta
slideInUpAlunecă din partea de jos a cadrului
slideInDownAlunecă din partea de sus a cadrului
slideInLeftAlunecă de la marginea stângă
slideInRightAlunecă de la marginea dreaptă
scaleInSe mărește de la 0 la dimensiunea completă
zoomInFace zoom de la o scară mai mică cu ușoară depășire
rotateInRotește în poziție de la un unghi decalat
bounceInSare în poziție cu depășire elastică
flipInXÎntoarcere 3D pe axa X (întoarcere orizontală)
flipInYÎntoarcere 3D pe axa Y (întoarcere verticală)
typewriterCaracterele apar unul câte unul (straturi text)
revealLeftDezvăluire mască alunecând de la stânga
revealRightDezvăluire mască alunecând de la dreapta
revealUpDezvăluire mască alunecând în sus
revealDownDezvăluire mască alunecând în jos

Animații de Ieșire (9 presetări)

Animațiile de ieșire controlează modul în care un strat dispare. Rulează la sfârșitul duratei stratului.

PresetareDescriere
fadeOutEstompare simplă a opacității de la 1 la 0
slideOutUpAlunecă afară prin partea de sus a cadrului
slideOutDownAlunecă afară prin partea de jos a cadrului
scaleOutSe micșorează de la dimensiunea completă la 0
zoomOutFace zoom la o scară mai mică și se estompează
rotateOutRotește afară din poziție la un unghi decalat
bounceOutSare în afară cu depășire elastică înainte de a dispărea
flipOutXÎntoarcere 3D afară pe axa X
flipOutYÎntoarcere 3D afară pe axa Y

Animații de Accent (10 presetări)

Animațiile de accent atrag atenția asupra unui strat în timp ce rămâne vizibil. Funcționează bine cu buclarea.

PresetareDescriere
pulsePuls de scală ritmic (crește și se micșorează)
shakeScuturare orizontală rapidă
bounceMișcare de salt verticală
swingRotație de leagăn asemănătoare pendulului
wobbleLegănare în afara axei combinând rotație și translație
flashClipiri rapide de opacitate
rubberBandEfect de întindere elastică și revenire bruscă
heartbeatRitm de bătăi de inimă cu puls dublu
floatMișcare blândă de plutire sus-și-jos
spinRotație continuă de 360 de grade

Animații Keyframe

Pentru control creativ complet, animațiile keyframe vă permit să definiți modificări personalizate ale proprietăților cadru cu cadru:

{
  "type": "keyframe",
  "keyframes": [
    { "frame": 0, "opacity": 0, "x": -100 },
    { "frame": 15, "opacity": 1, "x": 0 },
    { "frame": 30, "opacity": 1, "x": 0 },
    { "frame": 45, "opacity": 0, "x": 100 }
  ],
  "easing": "easeInOutCubic"
}

Animațiile keyframe pot anima orice proprietate numerică: opacity, x, y, rotation, scaleX, scaleY și multe altele. Fiecare keyframe specifică un număr de cadru și valorile proprietăților la acel cadru. Renderer-ul interpolează între keyframe-uri folosind funcția de easing specificată.

Combinarea Animațiilor

Un singur strat poate avea multiple animații. De exemplu, o animație de intrare urmată de o buclă de accent, apoi o animație de ieșire:

{
  "animations": [
    {
      "type": "entrance",
      "effect": "fadeInUp",
      "duration": 20,
      "easing": "easeOutCubic"
    },
    {
      "type": "emphasis",
      "effect": "pulse",
      "duration": 30,
      "delay": 20,
      "loop": -1
    },
    {
      "type": "exit",
      "effect": "fadeOut",
      "duration": 15,
      "easing": "easeInCubic"
    }
  ]
}

Funcții Easing

Funcțiile easing controlează rata de schimbare în timpul unei animații, determinând dacă mișcarea se simte liniară, netedă, săritoare sau elastică. Rendervid include peste 30 de funcții easing încorporate.

Easing de Bază

FuncțieDescriere
linearViteză constantă de la început la sfârșit, fără accelerare
easeEasing implicit asemănător CSS cu accelerare și decelerare blândă
easeInÎncepe încet, accelerează spre sfârșit
easeOutÎncepe rapid, decelerează spre sfârșit
easeInOutAccelerează în prima jumătate, decelerează în a doua

Easing Pătratic

FuncțieDescriere
easeInQuadAccelerare pătratică (t^2)
easeOutQuadDecelerare pătratică
easeInOutQuadAccelerare pătratică apoi decelerare

Easing Cubic

FuncțieDescriere
easeInCubicAccelerare cubică (t^3) – mai pronunțată decât pătratică
easeOutCubicDecelerare cubică – oprire netedă și cu aspect natural
easeInOutCubicEasing cubic la intrare și ieșire – cel mai utilizat easing

Easing Quartic

FuncțieDescriere
easeInQuartAccelerare quartică (t^4)
easeOutQuartDecelerare quartică
easeInOutQuartEasing quartic la intrare și ieșire

Easing Quintic

FuncțieDescriere
easeInQuintAccelerare quintică (t^5) – start foarte brusc
easeOutQuintDecelerare quintică – oprire foarte bruscă
easeInOutQuintEasing quintic la intrare și ieșire

Easing Sinusoidal

FuncțieDescriere
easeInSineAccelerare bazată pe sinus – curba de easing cea mai blândă
easeOutSineDecelerare bazată pe sinus
easeInOutSineEasing bazat pe sinus la intrare și ieșire

Easing Exponențial

FuncțieDescriere
easeInExpoAccelerare exponențială – aproape plat apoi brusc
easeOutExpoDecelerare exponențială – brusc apoi aproape plat
easeInOutExpoEasing exponențial la intrare și ieșire

Easing Circular

FuncțieDescriere
easeInCircCurbă de accelerare circulară
easeOutCircCurbă de decelerare circulară
easeInOutCircEasing circular la intrare și ieșire

Easing Back

FuncțieDescriere
easeInBackSe trage ușor înapoi înainte de a accelera înainte (anticipare)
easeOutBackDepășește ținta apoi se stabilește înapoi (depășire)
easeInOutBackAnticipare la intrare, depășire la ieșire

Easing Elastic

FuncțieDescriere
easeInElasticLegănare elastică la accelerare – înfășurare asemănătoare arcului
easeOutElasticLegănare elastică la decelerare – revenire bruscă asemănătoare arcului
easeInOutElasticElastic la ambele capete

Easing Bounce

FuncțieDescriere
easeInBounceEfect de salt la intrare – ca o minge aruncată în sens invers
easeOutBounceEfect de salt la ieșire – ca o minge lovind pământul
easeInOutBounceSalt la ambele capete

Alegerea Easing-ului Potrivit

  • Elemente UI și text: easeOutCubic sau easeOutQuart pentru intrări cu aspect natural
  • Mișcare care atrage atenția: easeOutElastic sau easeOutBack pentru depășire jucăușă
  • Buclare netedă: easeInOutSine pentru mișcare blândă, continuă
  • Dezvăluiri dramatice: easeInExpo pentru acumulări, easeOutExpo pentru opriri rapide
  • Simulare fizică: easeOutBounce pentru efecte asemănătoare gravitației

Tranziții de Scene

Tranzițiile controlează modul în care o scenă trece în următoarea. Rendervid oferă 17 tipuri de tranziții de la tăieturi simple la efecte 3D cinematice.

Configurare Tranziție

{
  "name": "scene-two",
  "duration": 10,
  "transition": {
    "type": "fade",
    "duration": 1,
    "direction": "left"
  },
  "layers": [ ... ]
}

Obiectul transition este plasat pe scena de intrare (scena către care se face tranziția). Proprietatea direction se aplică doar tranzițiilor direcționale precum slide, wipe și push.

Toate Cele 17 Tipuri de Tranziții

TranzițieDescriere
cutComutare instantanee fără efect vizual (implicit)
fadeEstompare încrucișată între scene – scena de ieșire se estompează pe măsură ce scena de intrare apare
zoomFace zoom în scena de ieșire în timp ce apare scena de intrare
slideScena de intrare alunecă peste scena de ieșire dintr-o direcție configurabilă (stânga, dreapta, sus, jos)
wipeO ștergere cu margine dură dezvăluie scena de intrare, deplasându-se peste cadru în direcția dată
pushScena de intrare împinge scena de ieșire în afara ecranului în direcția specificată
rotateScena de ieșire rotește afară în timp ce scena de intrare rotește înăuntru
flipTranziție de întoarcere 3D – cadrul se întoarce ca un card pentru a dezvălui următoarea scenă
blurScena de ieșire se estompează în timp ce scena de intrare devine clară
circleO mască circulară se extinde din centru (sau un punct specificat) pentru a dezvălui următoarea scenă
glitchEfect de distorsiune glitch digital cu aberație cromatică și deplasare
dissolveDizolvare la nivel de pixel unde pixelii individuali trec aleatoriu între scene
cubeRotație cub 3D – scenele sunt pe fețe adiacente ale unui cub rotativ
swirlDistorsiune spirală care învârte scena de ieșire în scena de intrare
diagonal-wipeO ștergere diagonală cu margine dură deplasându-se dintr-un colț în cel opus
irisIris circular care se deschide sau se închide ca o diafragmă de cameră
crosszoomAmbele scene fac zoom simultan – cea de ieșire face zoom în, cea de intrare face zoom afară

Exemple de Tranziții

Estompare cinematică cu o estompare încrucișată lungă:

{
  "transition": {
    "type": "fade",
    "duration": 2
  }
}

Alunecare de la dreapta (comună pentru conținut secvențial):

{
  "transition": {
    "type": "slide",
    "duration": 0.5,
    "direction": "right"
  }
}

Rotație cub 3D (aspect dinamic, modern):

{
  "transition": {
    "type": "cube",
    "duration": 1
  }
}

Efect glitch (energic, orientat spre tehnologie):

{
  "transition": {
    "type": "glitch",
    "duration": 0.3
  }
}

Efecte Vizuale

Straturile Rendervid suportă o gamă de efecte vizuale prin filtre, moduri de amestecare, umbre și transformări.

Filtre

Filtrele sunt aplicate prin matricea filters pe orice strat. Fiecare filtru este un obiect cu un type și value:

{
  "filters": [
    { "type": "blur", "value": 5 },
    { "type": "brightness", "value": 1.2 },
    { "type": "contrast", "value": 1.1 },
    { "type": "grayscale", "value": 0.5 },
    { "type": "saturate", "value": 1.5 }
  ]
}
FiltruInterval ValoareDescriere
blur0+ (pixeli)Estompare gaussiană – valori mai mari produc mai multă estompare
brightness0+ (multiplicator)0 = negru, 1 = normal, 2 = luminozitate dublă
contrast0+ (multiplicator)0 = gri, 1 = normal, 2 = contrast dublu
grayscale0-10 = culoare completă, 1 = complet desaturat
hue-rotate0-360 (grade)Rotește culorile în jurul roții culorilor
invert0-10 = normal, 1 = culori complet inversate
saturate0+ (multiplicator)0 = desaturat, 1 = normal, 2 = saturație dublă
sepia0-10 = normal, 1 = ton sepia complet

Moduri de Amestecare

Proprietatea blendMode controlează modul în care un strat se compune cu straturile de dedesubt:

{
  "type": "shape",
  "blendMode": "multiply",
  "opacity": 0.8
}

Moduri de amestecare suportate: normal, multiply, screen, overlay, darken, lighten, color-dodge, color-burn, hard-light, soft-light, difference, exclusion, hue, saturation, color, luminosity.

Umbre

Straturile de text și formă suportă efecte de umbră prin proprietatea style:

{
  "style": {
    "shadow": {
      "color": "rgba(0, 0, 0, 0.5)",
      "offsetX": 4,
      "offsetY": 4,
      "blur": 10
    }
  }
}

Combinarea Efectelor

Filtrele, modurile de amestecare, opacitatea și umbrele pot fi toate combinate pe un singur strat pentru tratamente vizuale sofisticate:

{
  "type": "image",
  "src": "{{backgroundImage}}",
  "opacity": 0.7,
  "blendMode": "overlay",
  "filters": [
    { "type": "blur", "value": 3 },
    { "type": "brightness", "value": 0.8 }
  ],
  "style": {
    "shadow": {
      "color": "rgba(0, 0, 0, 0.3)",
      "offsetX": 0,
      "offsetY": 10,
      "blur": 20
    }
  }
}

Configurare Fonturi

Rendervid suportă atât Google Fonts (peste 100 de familii încorporate) cât și fonturi personalizate încărcate din URL-uri externe.

Google Fonts

Declarați Google Fonts în matricea fonts.google:

{
  "fonts": {
    "google": [
      { "family": "Roboto", "weights": [400, 700] },
      { "family": "Open Sans", "weights": [300, 400, 600, 700] },
      { "family": "Montserrat", "weights": [400, 500, 700, 900] },
      { "family": "Playfair Display", "weights": [400, 700] }
    ]
  }
}

Fiecare obiect font necesită:

CâmpTipDescriere
familystringNume familie Google Font (potrivire exactă necesară)
weightsarrayMatrice de greutăți numerice de încărcat (100-900)

Greutăți comune de fonturi: 100 (Thin), 200 (Extra Light), 300 (Light), 400 (Regular), 500 (Medium), 600 (Semi Bold), 700 (Bold), 800 (Extra Bold), 900 (Black).

Fonturi Personalizate

Încărcați fonturi din URL-uri externe folosind matricea fonts.custom:

{
  "fonts": {
    "custom": [
      {
        "family": "MyBrandFont",
        "src": "https://example.com/fonts/brand-font.woff2",
        "weight": 400,
        "style": "normal"
      },
      {
        "family": "MyBrandFont",
        "src": "https://example.com/fonts/brand-font-bold.woff2",
        "weight": 700,
        "style": "normal"
      }
    ]
  }
}

Formate de font suportate: WOFF2 (recomandat pentru cea mai mică dimensiune de fișier), WOFF, TTF și OTF.

Folosirea Fonturilor în Straturi

Referențiați fonturile declarate după numele familiei în stilurile stratului de text:

{
  "type": "text",
  "text": "{{headline}}",
  "style": {
    "fontFamily": "Montserrat",
    "fontWeight": 700,
    "fontSize": 64,
    "color": "#FFFFFF"
  }
}

Rendervid include lanțuri de fallback de fonturi specifice platformei pentru a asigura randarea consecventă în diferite medii. Dacă un font specificat nu este disponibil, renderer-ul revine la fonturile sistemului care se potrivesc cu aceeași clasificare (serif, sans-serif, monospace).


Formate de Ieșire

Rendervid suportă o gamă largă de formate de ieșire și codecuri atât pentru randarea video cât și pentru imagini.

Formate Video

FormatCodecExtensie FișierCel Mai Bun Pentru
MP4H.264.mp4Compatibilitate maximă – web, mobil, social media
WebMVP8 / VP9.webmÎncorporare web cu dimensiuni de fișier mai mici
MOVProRes.movFluxuri de lucru de editare profesională, calitate fără pierderi
GIF.gifAnimații scurte, partajare socială, email
MP4H.265 / HEVC.mp4Dispozitive mai noi, fișiere cu 50% mai mici decât H.264 la aceeași calitate
WebMAV1.webmCodec de generație următoare, cea mai bună eficiență de compresie

Formate Imagine

FormatExtensie FișierCel Mai Bun Pentru
PNG.pngCalitate fără pierderi, suport transparență
JPEG.jpgFotografii, dimensiuni de fișier mai mici
WebP.webpWeb modern, cel mai bun echilibru între calitate și dimensiune

Presetări Calitate

PresetareDescriere
draftRandare rapidă cu calitate redusă – ideal pentru previzualizare
standardCalitate și dimensiune de fișier echilibrate – bun pentru majoritatea cazurilor de utilizare
highBitrate și calitate mai ridicate – pentru livrabile finale
losslessCalitate maximă fără artefacte de compresie

Suport Rezoluție

Rendervid suportă rezoluții de la miniaturi mici până la 8K:

RezoluțieDimensiuniUtilizare Comună
SD640 x 480Miniaturi, previzualizări
HD1280 x 720Video web, email
Full HD1920 x 1080YouTube, prezentări
2K2560 x 1440Afișaje de înaltă calitate
4K UHD3840 x 2160Profesional, broadcast
8K7680 x 4320Rezoluție maximă, pregătit pentru viitor

Rate de cadre de la 1 fps (prezentări de diapozitive) la 120 fps (slow motion, conținut gaming) sunt suportate. Alegerile comune sunt 24 fps (cinematic), 30 fps (web/social) și 60 fps (mișcare netedă).


Exemplu Complet

Iată un șablon Rendervid complet care demonstrează caracteristicile cheie ale sistemului de șabloane lucrând împreună: intrări dinamice, multiple scene cu tranziții, compoziții stratificate, animații cu easing, fonturi și efecte vizuale.

{
  "name": "tech-product-launch",
  "output": {
    "type": "video",
    "width": 1920,
    "height": 1080,
    "fps": 30,
    "duration": 20,
    "backgroundColor": "#0A0A0A"
  },
  "inputs": [
    {
      "key": "productName",
      "type": "string",
      "label": "Nume Produs",
      "required": true,
      "default": "ProductX"
    },
    {
      "key": "tagline",
      "type": "string",
      "label": "Slogan",
      "required": true,
      "default": "Viitorul este aici."
    },
    {
      "key": "heroImage",
      "type": "url",
      "label": "Imagine Hero",
      "required": true
    },
    {
      "key": "primaryColor",
      "type": "color",
      "label": "Culoare Primară",
      "default": "#6C63FF"
    },
    {
      "key": "ctaText",
      "type": "string",
      "label": "Îndemn la Acțiune",
      "default": "Află Mai Multe"
    }
  ],
  "fonts": {
    "google": [
      { "family": "Inter", "weights": [400, 600, 800] },
      { "family": "JetBrains Mono", "weights": [400] }
    ]
  },
  "composition": {
    "scenes": [
      {
        "name": "intro",
        "duration": 6,
        "layers": [
          {
            "type": "shape",
            "shape": "rectangle",
            "position": { "x": 960, "y": 540 },
            "size": { "width": 1920, "height": 1080 },
            "style": {
              "fill": "{{primaryColor}}",
              "opacity": 0.1
            }
          },
          {
            "type": "text",
            "text": "{{productName}}",
            "position": { "x": 960, "y": 400 },
            "anchor": { "x": 0.5, "y": 0.5 },
            "style": {
              "fontFamily": "Inter",
              "fontWeight": 800,
              "fontSize": 96,
              "color": "#FFFFFF",
              "textAlign": "center"
            },
            "animations": [
              {
                "type": "entrance",
                "effect": "fadeInUp",
                "duration": 30,
                "delay": 15,
                "easing": "easeOutCubic"
              }
            ]
          },
          {
            "type": "text",
            "text": "{{tagline}}",
            "position": { "x": 960, "y": 520 },
            "anchor": { "x": 0.5, "y": 0.5 },
            "style": {
              "fontFamily": "Inter",
              "fontWeight": 400,
              "fontSize": 36,
              "color": "{{primaryColor}}",
              "textAlign": "center",
              "letterSpacing": 4
            },
            "animations": [
              {
                "type": "entrance",
                "effect": "fadeIn",
                "duration": 25,
                "delay": 40,
                "easing": "easeOutSine"
              }
            ]
          },
          {
            "type": "shape",
            "shape": "rectangle",
            "position": { "x": 960, "y": 600 },
            "size": { "width": 80, "height": 3 },
            "style": {
              "fill": "{{primaryColor}}"
            },
            "animations": [
              {
                "type": "entrance",
                "effect": "scaleIn",
                "duration": 20,
                "delay": 60,
                "easing": "easeOutQuart"
              }
            ]
          }
        ]
      },
      {
        "name": "product-showcase",
        "duration": 8,
        "transition": {
          "type": "slide",
          "duration": 0.8,
          "direction": "left"
        },
        "layers": [
          {
            "type": "image",
            "src": "{{heroImage}}",
            "position": { "x": 1200, "y": 540 },
            "size": { "width": 800, "height": 800 },
            "anchor": { "x": 0.5, "y": 0.5 },
            "filters": [
              { "type": "brightness", "value": 1.1 },
              { "type": "contrast", "value": 1.05 }
            ],
            "animations": [
              {
                "type": "entrance",
                "effect": "zoomIn",
                "duration": 40,
                "easing": "easeOutBack"
              },
              {
                "type": "emphasis",
                "effect": "float",
                "duration": 120,
                "delay": 40,
                "loop": -1,
                "alternate": true
              }
            ]
          },
          {
            "type": "text",
            "text": "Prezentăm",
            "position": { "x": 400, "y": 350 },
            "anchor": { "x": 0.5, "y": 0.5 },
            "style": {
              "fontFamily": "JetBrains Mono",
              "fontSize": 18,
              "color": "{{primaryColor}}",
              "textTransform": "uppercase",
              "letterSpacing": 6
            },
            "animations": [
              {
                "type": "entrance",
                "effect": "typewriter",
                "duration": 30,
                "delay": 10,
                "easing": "linear"
              }
            ]
          },
          {
            "type": "text",
            "text": "{{productName}}",
            "position": { "x": 400, "y": 430 },
            "anchor": { "x": 0.5, "y": 0.5 },
            "style": {
              "fontFamily": "Inter",
              "fontWeight": 800,
              "fontSize": 72,
              "color": "#FFFFFF"
            },
            "animations": [
              {
                "type": "entrance",
                "effect": "revealLeft",
                "duration": 25,
                "delay": 20,
                "easing": "easeOutQuart"
              }
            ]
          },
          {
            "type": "text",
            "text": "{{tagline}}",
            "position": { "x": 400, "y": 520 },
            "anchor": { "x": 0.5, "y": 0.5 },
            "style": {
              "fontFamily": "Inter",
              "fontWeight": 400,
              "fontSize": 24,
              "color": "#CCCCCC",
              "lineHeight": 1.6
            },
            "animations": [
              {
                "type": "entrance",
                "effect": "fadeInUp",
                "duration": 20,
                "delay": 40,
                "easing": "easeOutCubic"
              }
            ]
          }
        ]
      },
      {
        "name": "cta",
        "duration": 6,
        "transition": {
          "type": "fade",
          "duration": 1.2
        },
        "layers": [
          {
            "type": "shape",
            "shape": "rectangle",
            "position": { "x": 960, "y": 540 },
            "size": { "width": 1920, "height": 1080 },
            "style": {
              "fill": "{{primaryColor}}",
              "opacity": 0.15
            }
          },
          {
            "type": "text",
            "text": "{{productName}}",
            "position": { "x": 960, "y": 380 },
            "anchor": { "x": 0.5, "y": 0.5 },
            "style": {
              "fontFamily": "Inter",
              "fontWeight": 800,
              "fontSize": 80,
              "color": "#FFFFFF",
              "textAlign": "center"
            },
            "animations": [
              {
                "type": "entrance",
                "effect": "bounceIn",
                "duration": 35,
                "easing": "easeOutElastic"
              }
            ]
          },
          {
            "type": "shape",
            "shape": "rectangle",
            "position": { "x": 960, "y": 550 },
            "size": { "width": 280, "height": 60 },
            "style": {
              "fill": "{{primaryColor}}",
              "borderRadius": 30
            },
            "animations": [
              {
                "type": "entrance",
                "effect": "scaleIn",
                "duration": 25,
                "delay": 30,
                "easing": "easeOutBack"
              },
              {
                "type": "emphasis",
                "effect": "pulse",
                "duration": 60,
                "delay": 60,
                "loop": -1,
                "alternate": true
              }
            ]
          },
          {
            "type": "text",
            "text": "{{ctaText}}",
            "position": { "x": 960, "y": 550 },
            "anchor": { "x": 0.5, "y": 0.5 },
            "style": {
              "fontFamily": "Inter",
              "fontWeight": 600,
              "fontSize": 22,
              "color": "#FFFFFF",
              "textAlign": "center"
            },
            "animations": [
              {
                "type": "entrance",
                "effect": "fadeIn",
                "duration": 20,
                "delay": 40,
                "easing": "easeOutSine"
              }
            ]
          }
        ]
      }
    ]
  }
}

Acest șablon creează un video de lansare de produs de 20 de secunde cu trei scene: un intro tipografic cu animații de text eșalonate, o prezentare de produs cu o imagine plutitoare și efect de mașină de scris, și o scenă finală de îndemn la acțiune cu un buton pulsant. Tot textul, culorile și imaginile sunt conduse de variabile de șablon, făcându-l complet reutilizabil.


Pașii Următori

  • Referință Componente Straturi – Scufundare profundă în fiecare dintre cele 8 tipuri de straturi cu documentație completă a proprietăților și exemple
  • Integrare AI – Învățați cum să generați și să manipulați șabloane Rendervid folosind AI, inclusiv generarea de șabloane bazată pe LLM și randare conștientă de conținut
  • Ghid Implementare – Configurați Rendervid pentru producție: randare server-side, implementare cloud, procesare în loturi și integrare API

Întrebări frecvente

Ce este formatul de șablon Rendervid?

Șabloanele Rendervid sunt fișiere JSON care definesc structura, conținutul, animațiile și setările de ieșire ale unui video sau imagine. Fiecare șablon include o configurație de ieșire (dimensiuni, fps, durată), definiții de intrare pentru variabile dinamice, o compoziție cu scene și straturi, și configurații opționale de fonturi și componente personalizate.

Cum funcționează variabilele de șablon în Rendervid?

Variabilele de șablon folosesc sintaxa {{variableName}}. Definiți intrările în matricea de intrări a șablonului cu o cheie, tip (string, number, boolean, color, url, array), etichetă, descriere și valoare implicită. La momentul randării, aceste variabile sunt înlocuite cu valori reale, făcând șabloanele reutilizabile și dinamice.

Câte presetări de animații are Rendervid?

Rendervid include peste 40 de presetări de animații încorporate organizate în patru categorii: animații de intrare (fadeIn, slideIn, scaleIn, bounceIn, etc.), animații de ieșire (fadeOut, slideOut, zoomOut, etc.), animații de accent (pulse, shake, bounce, swing, heartbeat, etc.) și animații keyframe complet personalizabile cu peste 30 de funcții easing.

Ce tranziții de scene sunt disponibile?

Rendervid oferă 17 tipuri de tranziții de scene: cut, fade, zoom, slide, wipe, push, rotate, flip (3D), blur, circle, glitch, dissolve, cube (3D), swirl, diagonal-wipe, iris și crosszoom. Fiecare tranziție poate fi configurată cu parametri de durată și direcție.

Ce formate de ieșire suportă Rendervid?

Rendervid suportă multiple formate de ieșire inclusiv MP4 (H.264), WebM (VP8/VP9), MOV (ProRes), GIF pentru video și PNG, JPEG, WebP pentru imagini. Codecuri avansate precum H.265/HEVC și AV1 sunt de asemenea suportate. Rezoluția merge până la 8K (7680x4320) cu rate de cadre de la 1 la 120 fps.

Pot folosi fonturi personalizate în șabloanele Rendervid?

Da, Rendervid suportă peste 100 de Google Fonts încorporate și încărcarea fonturilor personalizate din URL-uri în formatele WOFF2, WOFF, TTF și OTF. Puteți specifica greutăți de font de la 100-900 și puteți configura fallback-uri specifice platformei pentru compatibilitate între medii.

Să construim echipa ta de AI

Ajutăm companii ca a ta să dezvolte chatboți inteligenți, servere MCP, instrumente AI sau alte tipuri de automatizare AI pentru a înlocui oamenii în sarcinile repetitive din organizația ta.

Află mai multe

Implementare Rendervid - Randare în Browser, Node.js, Cloud și Docker
Implementare Rendervid - Randare în Browser, Node.js, Cloud și Docker

Implementare Rendervid - Randare în Browser, Node.js, Cloud și Docker

Implementați Rendervid oriunde: randare în browser pentru previzualizări, Node.js pentru procesare batch pe server sau randare cloud pe AWS Lambda, Azure Functi...

20 min citire
Rendervid Deployment +3
json2video-mcp
json2video-mcp

json2video-mcp

Integrați FlowHunt cu serverul json2video-mcp pentru a automatiza generarea programatică de videoclipuri, a gestiona șabloane personalizate și a conecta fluxuri...

4 min citire
AI Video Automation +3