Rendervid Sjabloonsysteem - JSON Sjablonen, Variabelen, Animaties & Overgangen

Rendervid Video Rendering Templates Open Source

Rendervid is een programmatische video rendering engine gebouwd rond een declaratief, JSON-gebaseerd sjabloonsysteem. In plaats van handmatig video te bewerken in een tijdlijn, definieer je elk aspect van je video – scènes, lagen, animaties, overgangen en uitvoerinstellingen – in één enkel JSON-document. Deze benadering maakt sjablonen staatloos, versiecontroleerbaar en machinegenereerbaar, wat de deur opent naar AI-gestuurde videoproductie, batch rendering pipelines en volledig geautomatiseerde contentworkflows.

Deze gids behandelt het complete Rendervid sjabloonsysteem van boven naar beneden: root-level configuratie, uitvoerinstellingen, het variabelen- en invoersysteem, scènes en compositie, alle acht laagtypen, 40+ animatie presets, 30+ easing functies, 17 scène overgangen, visuele effecten, lettertypeconfiguratie en uitvoerformaten.


Sjabloonstructuur Overzicht

Elk Rendervid sjabloon is een JSON-object met een goed gedefinieerde set root-level velden. Hier is het skelet van een compleet sjabloon:

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

Root-Level Velden

VeldTypeVerplichtBeschrijving
namestringJaMenselijk leesbare sjabloon identifier
outputobjectJaVideo of afbeelding uitvoerconfiguratie (afmetingen, fps, duur, formaat)
inputsarrayNeeDynamische invoerdefinities voor sjabloonvariabelen
compositionobjectJaBevat de scenes array die alle visuele inhoud definieert
fontsobjectNeeGoogle Fonts en aangepaste lettertype declaraties
customComponentsobjectNeeGeregistreerde aangepaste laagcomponenten
defaultsobjectNeeStandaardwaarden toegepast op alle lagen tenzij overschreven

Het name veld is voor organisatorische doeleinden – het heeft geen invloed op rendering. De output en composition velden zijn de twee pijlers die elk sjabloon moet hebben. Alles anders is optioneel maar ontgrendelt krachtige mogelijkheden.


Uitvoerconfiguratie

Het output object regelt het uiteindelijk gerenderde bestand: het formaat, afmetingen, framerate, duur en achtergrondkleur.

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

Uitvoervelden

VeldTypeStandaardBeschrijving
typestring"video"Uitvoertype: "video" of "image"
widthnumber1920Breedte in pixels (tot 7680 voor 8K)
heightnumber1080Hoogte in pixels (tot 4320 voor 8K)
fpsnumber30Frames per seconde (1-120)
durationnumberTotale duur in seconden
backgroundColorstring"#000000"Achtergrondkleur als hex, RGB of benoemde kleur

Veelgebruikte Presets

Hier zijn uitvoerconfiguraties voor populaire formaten:

1080p Full HD (YouTube, algemeen gebruik):

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

Instagram Reels / TikTok (9:16 verticaal):

{
  "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 / Social Share Afbeelding:

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

Voor afbeeldinguitvoer worden fps en duration genegeerd – de renderer legt een enkel frame vast.


Sjabloonvariabelen & Invoer

Het invoer- en variabelensysteem is wat Rendervid sjablonen herbruikbaar maakt. In plaats van tekst, kleuren of URL’s hardcoded in je sjabloon te zetten, definieer je inputs en verwijs je ernaar met de {{variableName}} syntax overal in het sjabloon.

Invoer Definiëren

Invoer wordt gedeclareerd in de top-level inputs array. Elk invoer object beschrijft een enkele variabele:

{
  "inputs": [
    {
      "key": "title",
      "type": "string",
      "label": "Titel",
      "description": "Hoofdtiteltekst weergegeven in de intro scène",
      "required": true,
      "default": "Hallo Wereld"
    },
    {
      "key": "brandColor",
      "type": "color",
      "label": "Merkkleur",
      "description": "Primaire merkkleur gebruikt voor achtergronden en accenten",
      "required": false,
      "default": "#FF5733"
    },
    {
      "key": "showSubtitle",
      "type": "boolean",
      "label": "Toon Ondertitel",
      "description": "Schakel ondertitel zichtbaarheid",
      "required": false,
      "default": true
    }
  ]
}

Invoerveld Referentie

VeldTypeVerplichtBeschrijving
keystringJaUnieke identifier gebruikt in {{key}} referenties
typestringJaDatatype: string, number, boolean, color, url, array
labelstringNeeMenselijk leesbaar label voor UI rendering
descriptionstringNeeUitleg van wat deze invoer regelt
requiredbooleanNeeOf de invoer moet worden verstrekt bij render tijd
defaultanyNeeFallback waarde als geen invoer wordt verstrekt

Invoertypen

  • string – Vrije tekst. Gebruik voor titels, beschrijvingen, bijschriften of elke tekstinhoud.
  • number – Numerieke waarden. Gebruik voor duur, groottes, posities, opacity niveaus of tellingen.
  • boolean – Waar/onwaar schakelaars. Gebruik voor voorwaardelijke zichtbaarheid, feature flags of aan/uit schakelaars.
  • color – Kleurwaarden in hex (#FF5733), RGB (rgb(255,87,51)), of benoemd formaat. Gebruik voor achtergronden, tekstkleuren en accenten.
  • url – Geldige URL strings. Gebruik voor afbeeldingsbronnen, videobronnen, links en lettertype URL’s.
  • array – Lijsten van waarden. Gebruik voor afbeeldingsgalerijen, tekstlijsten, dia-inhoud of elke herhaalde data.

Variabelen Gebruiken in het Sjabloon

Zodra invoer is gedefinieerd, verwijs je ernaar overal in het sjabloon met dubbele accolades:

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

Variabelen worden opgelost bij render tijd. Wanneer je de Rendervid API of CLI aanroept, geef je de werkelijke waarden door:

{
  "title": "Zomeruitverkoop 2026",
  "brandColor": "#E63946",
  "titleSize": 72
}

Volledig Invoervoorbeeld

Hier is een compleet sjabloon met meerdere invoertypen die samenwerken:

{
  "name": "product-promo",
  "output": {
    "type": "video",
    "width": 1080,
    "height": 1080,
    "fps": 30,
    "duration": 15
  },
  "inputs": [
    {
      "key": "productName",
      "type": "string",
      "label": "Productnaam",
      "description": "Naam van het product dat wordt gepromoot",
      "required": true,
      "default": "Product"
    },
    {
      "key": "price",
      "type": "number",
      "label": "Prijs",
      "description": "Productprijs weergegeven in de video",
      "required": true,
      "default": 29.99
    },
    {
      "key": "productImage",
      "type": "url",
      "label": "Productafbeelding URL",
      "description": "URL naar de productafbeelding",
      "required": true
    },
    {
      "key": "accentColor",
      "type": "color",
      "label": "Accentkleur",
      "description": "Kleur gebruikt voor CTA knoppen en highlights",
      "required": false,
      "default": "#FF6B35"
    },
    {
      "key": "showBadge",
      "type": "boolean",
      "label": "Toon Uitverkoop Badge",
      "description": "Of de uitverkoop badge overlay moet worden weergegeven",
      "required": false,
      "default": false
    },
    {
      "key": "features",
      "type": "array",
      "label": "Productkenmerken",
      "description": "Lijst van kenmerk opsommingspunten",
      "required": false,
      "default": ["Kenmerk 1", "Kenmerk 2", "Kenmerk 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 }
          }
        ]
      }
    ]
  }
}

Dit enkele sjabloon kan duizenden unieke productvideo’s genereren door simpelweg de invoerwaarden te veranderen bij render tijd – geen sjabloonwijzigingen nodig.


Scènes & Compositie

Het composition object is waar de inhoud van je video leeft. Het bevat een scenes array, en elke scène vertegenwoordigt een apart segment van de video met zijn eigen duur, lagen en overgang.

{
  "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": [ ... ]
      }
    ]
  }
}

Scènevelden

VeldTypeVerplichtBeschrijving
namestringNeeIdentifier voor de scène (voor leesbaarheid en debugging)
durationnumberJaScènelengte in seconden
transitionobjectNeeOvergangseffect bij het betreden van deze scène vanuit de vorige
layersarrayJaGeordende array van laagobjecten gerenderd van onder naar boven

Scènes spelen in volgorde. De totale videoduur is de som van alle scèneduren (minus eventuele overgangsoverlap). Lagen binnen een scène worden gerenderd in array volgorde – de eerste laag zit onderaan de visuele stack, en de laatste laag zit bovenop.

Als geen overgang is gespecificeerd, gebruikt de scène standaard een harde cut.


Laagsysteem

Rendervid ondersteunt acht verschillende laagtypen. Elk laagtype heeft een specifiek doel en accepteert zijn eigen set eigenschappen bovenop de gedeelde basisconfiguratie.

Gedeelde Laageigenschappen

Elke laag, ongeacht type, ondersteunt deze basiseigenschappen:

{
  "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": ""
}
EigenschapTypeStandaardBeschrijving
positionobject{x: 0, y: 0}X/Y coördinaten in pixels
sizeobjectBreedte en hoogte in pixels
rotationnumber0Rotatiehoek in graden
scaleobject{x: 1, y: 1}Schaalmultiplier voor X en Y assen
anchorobject{x: 0.5, y: 0.5}Ankerpunt voor transformaties (0-1 bereik, 0.5 = centrum)
opacitynumber1Laag opacity (0 = transparant, 1 = ondoorzichtig)
blendModestring"normal"CSS blend mode voor compositing
fromnumber0Starttijd in seconden (relatief aan scène start)
durationnumber-1Laagduur in seconden (-1 = volledige scèneduur)
filtersarray[]Array van visuele filterobjecten
styleobject{}Aanvullende CSS-achtige stijleigenschappen
classNamestring""CSS klassenaam voor aangepaste styling

De Acht Laagtypen

  1. text – Rendert gestileerde tekst met volledige controle over lettertype, grootte, kleur, uitlijning, regelhoogte, letterafstand, tekstschaduwen en meer. Ondersteunt de {{variable}} syntax voor dynamische inhoud.

  2. image – Toont statische afbeeldingen van URL’s of lokale paden. Ondersteunt bijsnijden, object-fit modes, border radius en afbeeldingsfilters.

  3. video – Voegt videoclips in binnen een scène. Ondersteunt trimmen (start/einde), volumecontrole, afspeelsnelheid, looping en dempen.

  4. shape – Rendert geometrische primitieven: rechthoeken, cirkels, ellipsen, lijnen en polygonen. Ondersteunt vulling, lijn, border radius, gradiënten en schaduwen.

  5. audio – Voegt audiotracks toe aan een scène. Ondersteunt volume, fade in/out, trimmen en looping. Audiolagen hebben geen visuele representatie.

  6. group – Een containerlaag die onderliggende lagen bevat. Groepen stellen je in staat transformaties, animaties en effecten toe te passen op meerdere lagen tegelijk.

  7. lottie – Rendert Lottie/Bodymovin JSON animaties. Ondersteunt afspeelsnelheid, looping en segmentcontrole voor het afspelen van specifieke framebereiken.

  8. custom – Laadt geregistreerde aangepaste componenten gedefinieerd in het customComponents veld. Gebruik dit voor herbruikbare, geparameteriseerde laagsjablonen.

Voor gedetailleerde configuratie van elk laagtype, inclusief alle beschikbare eigenschappen en codevoorbeelden, zie de Rendervid Componenten Referentie .


Animatiesysteem

Rendervid bevat meer dan 40 ingebouwde animatie presets georganiseerd in vier categorieën: entrance, exit, emphasis en keyframe. Animaties worden gekoppeld aan elke laag en bepalen hoe die laag verschijnt, verdwijnt of zich gedraagt tijdens zijn levensduur.

Animatieconfiguratie

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

Animatievelden

VeldTypeStandaardBeschrijving
typestringAnimatiecategorie: entrance, exit, emphasis, keyframe
effectstringPreset naam (bijv. fadeInUp, pulse, bounceOut)
durationnumber30Duur in frames
delaynumber0Vertraging voordat animatie start, in frames
easingstring"ease"Easing functienaam
loopnumber0Aantal loops (0 = geen loop, -1 = oneindig)
alternatebooleanfalseKeer richting om bij alternatieve loops

Entrance Animaties (20 presets)

Entrance animaties bepalen hoe een laag op het scherm verschijnt. Ze worden eenmalig uitgevoerd wanneer de starttijd van de laag wordt bereikt.

PresetBeschrijving
fadeInEenvoudige opacity fade van 0 naar 1
fadeInUpFadet in terwijl het omhoog schuift
fadeInDownFadet in terwijl het naar beneden schuift
fadeInLeftFadet in terwijl het van links schuift
fadeInRightFadet in terwijl het van rechts schuift
slideInUpSchuift in van onder het frame
slideInDownSchuift in van boven het frame
slideInLeftSchuift in van de linkerrand
slideInRightSchuift in van de rechterrand
scaleInSchaalt op van 0 naar volledige grootte
zoomInZoomt in van een kleinere schaal met lichte overshoot
rotateInRoteert naar positie vanuit een offset hoek
bounceInStuitert naar positie met elastische overshoot
flipInX3D flip op de X-as (horizontale flip)
flipInY3D flip op de Y-as (verticale flip)
typewriterKarakters verschijnen één voor één (tekstlagen)
revealLeftMasker onthulling schuivend van links
revealRightMasker onthulling schuivend van rechts
revealUpMasker onthulling schuivend omhoog
revealDownMasker onthulling schuivend naar beneden

Exit Animaties (9 presets)

Exit animaties bepalen hoe een laag verdwijnt. Ze worden uitgevoerd aan het einde van de duur van de laag.

PresetBeschrijving
fadeOutEenvoudige opacity fade van 1 naar 0
slideOutUpSchuift uit door de bovenkant van het frame
slideOutDownSchuift uit door de onderkant van het frame
scaleOutSchaalt naar beneden van volledige grootte naar 0
zoomOutZoomt uit naar een kleinere schaal en fadet
rotateOutRoteert uit positie naar een offset hoek
bounceOutStuitert naar buiten met elastische overshoot voordat het verdwijnt
flipOutX3D flip uit op de X-as
flipOutY3D flip uit op de Y-as

Emphasis Animaties (10 presets)

Emphasis animaties trekken aandacht naar een laag terwijl deze zichtbaar blijft. Ze werken goed met looping.

PresetBeschrijving
pulseRitmische schaalpuls (groeit en krimpt)
shakeSnelle horizontale schudding
bounceVerticale stuiterbeweging
swingSlinger-achtige zwaairotatie
wobbleOff-axis wiebeling combinerend rotatie en translatie
flashSnelle opacity flitsen
rubberBandElastische rek en klik effect
heartbeatDubbele-puls hartslagritme
floatZachte drijvende op-en-neer beweging
spinContinue 360-graden rotatie

Keyframe Animaties

Voor volledige creatieve controle laten keyframe animaties je aangepaste frame-voor-frame eigenschapswijzigingen definiëren:

{
  "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"
}

Keyframe animaties kunnen elke numerieke eigenschap animeren: opacity, x, y, rotation, scaleX, scaleY, en meer. Elk keyframe specificeert een framenummer en de eigenschapswaarden op dat frame. De renderer interpoleert tussen keyframes met behulp van de gespecificeerde easing functie.

Animaties Combineren

Een enkele laag kan meerdere animaties hebben. Bijvoorbeeld een entrance animatie gevolgd door een emphasis loop, dan een exit animatie:

{
  "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"
    }
  ]
}

Easing Functies

Easing functies bepalen de veranderingssnelheid tijdens een animatie, wat bepaalt of beweging lineair, soepel, stuiterend of elastisch aanvoelt. Rendervid bevat meer dan 30 ingebouwde easing functies.

Basis Easing

FunctieBeschrijving
linearConstante snelheid van start tot einde, geen versnelling
easeStandaard CSS-achtige easing met zachte versnelling en vertraging
easeInBegint langzaam, versnelt naar het einde
easeOutBegint snel, vertraagt naar het einde
easeInOutVersnelt in de eerste helft, vertraagt in de tweede

Quadratische Easing

FunctieBeschrijving
easeInQuadQuadratische versnelling (t^2)
easeOutQuadQuadratische vertraging
easeInOutQuadQuadratische versnelling dan vertraging

Kubische Easing

FunctieBeschrijving
easeInCubicKubische versnelling (t^3) – meer uitgesproken dan quadratisch
easeOutCubicKubische vertraging – soepele en natuurlijk aanvoelende stop
easeInOutCubicKubische ease in en out – de meest gebruikte easing

Kwartische Easing

FunctieBeschrijving
easeInQuartKwartische versnelling (t^4)
easeOutQuartKwartische vertraging
easeInOutQuartKwartische ease in en out

Kwintische Easing

FunctieBeschrijving
easeInQuintKwintische versnelling (t^5) – zeer scherpe start
easeOutQuintKwintische vertraging – zeer scherpe stop
easeInOutQuintKwintische ease in en out

Sinusoïdale Easing

FunctieBeschrijving
easeInSineSinus-gebaseerde versnelling – de zachtste easing curve
easeOutSineSinus-gebaseerde vertraging
easeInOutSineSinus-gebaseerde ease in en out

Exponentiële Easing

FunctieBeschrijving
easeInExpoExponentiële versnelling – bijna vlak dan scherp
easeOutExpoExponentiële vertraging – scherp dan bijna vlak
easeInOutExpoExponentiële ease in en out

Circulaire Easing

FunctieBeschrijving
easeInCircCirculaire versnellingscurve
easeOutCircCirculaire vertragingscurve
easeInOutCircCirculaire ease in en out

Back Easing

FunctieBeschrijving
easeInBackTrekt iets terug voordat het vooruit versnelt (anticipatie)
easeOutBackSchiet over het doel heen en komt dan terug (overshoot)
easeInOutBackAnticipatie bij binnenkomst, overshoot bij uitgang

Elastische Easing

FunctieBeschrijving
easeInElasticElastische wiebeling bij versnelling – veerachtig opwinden
easeOutElasticElastische wiebeling bij vertraging – veerachtig klikken
easeInOutElasticElastisch aan beide kanten

Bounce Easing

FunctieBeschrijving
easeInBounceStuitereffect bij binnenkomst – zoals een bal omgekeerd laten vallen
easeOutBounceStuitereffect bij uitgang – zoals een bal die de grond raakt
easeInOutBounceStuiterend aan beide kanten

De Juiste Easing Kiezen

  • UI elementen en tekst: easeOutCubic of easeOutQuart voor natuurlijk aanvoelende entrances
  • Aandacht-trekkende beweging: easeOutElastic of easeOutBack voor speelse overshoot
  • Soepele looping: easeInOutSine voor zachte, continue beweging
  • Dramatische onthullingen: easeInExpo voor opbouw, easeOutExpo voor snelle stops
  • Fysieke simulatie: easeOutBounce voor zwaartekracht-achtige effecten

Scène Overgangen

Overgangen bepalen hoe één scène overgaat in de volgende. Rendervid biedt 17 overgangstypen variërend van eenvoudige cuts tot cinematische 3D effecten.

Overgangsconfiguratie

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

Het transition object wordt geplaatst op de binnenkomende scène (de scène waarnaar wordt overgegaan). De direction eigenschap is alleen van toepassing op directionele overgangen zoals slide, wipe en push.

Alle 17 Overgangstypen

OvergangBeschrijving
cutDirecte switch zonder visueel effect (standaard)
fadeCrossfade tussen scènes – de uitgaande scène fadet uit terwijl de binnenkomende scène fadet in
zoomZoomt in op de uitgaande scène terwijl de binnenkomende scène verschijnt
slideDe binnenkomende scène schuift over de uitgaande scène vanuit een configureerbare richting (links, rechts, omhoog, omlaag)
wipeEen harde-rand wipe onthult de binnenkomende scène, bewegend over het frame in de gegeven richting
pushDe binnenkomende scène duwt de uitgaande scène van het scherm in de gespecificeerde richting
rotateDe uitgaande scène roteert weg terwijl de binnenkomende scène naar binnen roteert
flip3D flip overgang – het frame flipt zoals een kaart om de volgende scène te onthullen
blurDe uitgaande scène vervaagt terwijl de binnenkomende scène scherp wordt
circleEen circulair masker breidt uit vanuit het centrum (of een gespecificeerd punt) om de volgende scène te onthullen
glitchDigitaal glitch verstoringseffect met chromatische aberratie en verplaatsing
dissolvePixel-niveau dissolve waarbij individuele pixels willekeurig tussen scènes overgaan
cube3D kubus rotatie – de scènes zijn op aangrenzende vlakken van een roterende kubus
swirlSpiraalverstoring die de uitgaande scène in de binnenkomende scène draait
diagonal-wipeEen diagonale harde-rand wipe bewegend van één hoek naar de tegenovergestelde
irisCirculaire iris die opent of sluit zoals een camera-apertuur
crosszoomBeide scènes zoomen tegelijkertijd – de uitgaande zoomt in, de binnenkomende zoomt uit

Overgangsvoorbeelden

Cinematische fade met een lange crossfade:

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

Slide van rechts (gebruikelijk voor sequentiële inhoud):

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

3D kubus rotatie (dynamisch, modern gevoel):

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

Glitch effect (energiek, tech-forward):

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

Visuele Effecten

Rendervid lagen ondersteunen een reeks visuele effecten via filters, blend modes, schaduwen en transformaties.

Filters

Filters worden toegepast via de filters array op elke laag. Elk filter is een object met een type en 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 }
  ]
}
FilterWaardebereikBeschrijving
blur0+ (pixels)Gaussiaanse vervaging – hogere waarden produceren meer vervaging
brightness0+ (multiplier)0 = zwart, 1 = normaal, 2 = dubbele helderheid
contrast0+ (multiplier)0 = grijs, 1 = normaal, 2 = dubbel contrast
grayscale0-10 = volle kleur, 1 = volledig onverzadigd
hue-rotate0-360 (graden)Roteert kleuren rond het kleurenwiel
invert0-10 = normaal, 1 = volledig geïnverteerde kleuren
saturate0+ (multiplier)0 = onverzadigd, 1 = normaal, 2 = dubbele verzadiging
sepia0-10 = normaal, 1 = volle sepia toon

Blend Modes

De blendMode eigenschap bepaalt hoe een laag samengesteld wordt met de lagen eronder:

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

Ondersteunde blend modes: normal, multiply, screen, overlay, darken, lighten, color-dodge, color-burn, hard-light, soft-light, difference, exclusion, hue, saturation, color, luminosity.

Schaduwen

Tekst- en vormlagen ondersteunen schaduweffecten via de style eigenschap:

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

Effecten Combineren

Filters, blend modes, opacity en schaduwen kunnen allemaal worden gecombineerd op een enkele laag voor geavanceerde visuele behandelingen:

{
  "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
    }
  }
}

Lettertypeconfiguratie

Rendervid ondersteunt zowel Google Fonts (100+ families ingebouwd) als aangepaste lettertypen geladen van externe URL’s.

Google Fonts

Declareer Google Fonts in de fonts.google array:

{
  "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] }
    ]
  }
}

Elk lettertype object vereist:

VeldTypeBeschrijving
familystringGoogle Font familienaam (exacte match vereist)
weightsarrayArray van numerieke gewichten om te laden (100-900)

Veelgebruikte lettertypegewichten: 100 (Thin), 200 (Extra Light), 300 (Light), 400 (Regular), 500 (Medium), 600 (Semi Bold), 700 (Bold), 800 (Extra Bold), 900 (Black).

Aangepaste Lettertypen

Laad lettertypen van externe URL’s met behulp van de fonts.custom array:

{
  "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"
      }
    ]
  }
}

Ondersteunde lettertypeformaten: WOFF2 (aanbevolen voor kleinste bestandsgrootte), WOFF, TTF en OTF.

Lettertypen Gebruiken in Lagen

Verwijs naar gedeclareerde lettertypen op familienaam in tekstlaagstijlen:

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

Rendervid bevat platformspecifieke lettertype fallback ketens om consistente rendering over verschillende omgevingen te garanderen. Als een gespecificeerd lettertype niet beschikbaar is, valt de renderer terug op systeemlettertypen die overeenkomen met dezelfde classificatie (serif, sans-serif, monospace).


Uitvoerformaten

Rendervid ondersteunt een breed scala aan uitvoerformaten en codecs voor zowel video als afbeeldingsrendering.

Videoformaten

FormaatCodecBestandsextensieBeste Voor
MP4H.264.mp4Maximale compatibiliteit – web, mobiel, sociale media
WebMVP8 / VP9.webmWeb embedding met kleinere bestandsgroottes
MOVProRes.movProfessionele bewerkingsworkflows, lossless kwaliteit
GIF.gifKorte animaties, social sharing, email
MP4H.265 / HEVC.mp4Nieuwere apparaten, 50% kleinere bestanden dan H.264 bij dezelfde kwaliteit
WebMAV1.webmVolgende generatie codec, beste compressie-efficiëntie

Afbeeldingsformaten

FormaatBestandsextensieBeste Voor
PNG.pngLossless kwaliteit, transparantie ondersteuning
JPEG.jpgFoto’s, kleinere bestandsgroottes
WebP.webpModern web, beste balans van kwaliteit en grootte

Kwaliteit Presets

PresetBeschrijving
draftSnelle rendering met verminderde kwaliteit – ideaal voor preview
standardGebalanceerde kwaliteit en bestandsgrootte – goed voor de meeste gebruikssituaties
highHogere bitrate en kwaliteit – voor definitieve deliverables
losslessMaximale kwaliteit zonder compressie-artefacten

Resolutie Ondersteuning

Rendervid ondersteunt resoluties van kleine thumbnails tot 8K:

ResolutieAfmetingenVeelgebruikt Voor
SD640 x 480Thumbnails, previews
HD1280 x 720Web video, email
Full HD1920 x 1080YouTube, presentaties
2K2560 x 1440Hoge kwaliteit displays
4K UHD3840 x 2160Professioneel, broadcast
8K7680 x 4320Maximale resolutie, toekomstbestendig

Framerates van 1 fps (diavoorstellingen) tot 120 fps (slow motion, gaming content) worden ondersteund. Veelgebruikte keuzes zijn 24 fps (cinematisch), 30 fps (web/social) en 60 fps (soepele beweging).


Compleet Voorbeeld

Hier is een volledig Rendervid sjabloon dat de belangrijkste kenmerken van het sjabloonsysteem demonstreert die samenwerken: dynamische invoer, meerdere scènes met overgangen, gelaagde composities, animaties met easing, lettertypen en visuele effecten.

{
  "name": "tech-product-launch",
  "output": {
    "type": "video",
    "width": 1920,
    "height": 1080,
    "fps": 30,
    "duration": 20,
    "backgroundColor": "#0A0A0A"
  },
  "inputs": [
    {
      "key": "productName",
      "type": "string",
      "label": "Productnaam",
      "required": true,
      "default": "ProductX"
    },
    {
      "key": "tagline",
      "type": "string",
      "label": "Tagline",
      "required": true,
      "default": "De toekomst is hier."
    },
    {
      "key": "heroImage",
      "type": "url",
      "label": "Hero Afbeelding",
      "required": true
    },
    {
      "key": "primaryColor",
      "type": "color",
      "label": "Primaire Kleur",
      "default": "#6C63FF"
    },
    {
      "key": "ctaText",
      "type": "string",
      "label": "Call to Action",
      "default": "Meer Informatie"
    }
  ],
  "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": "Introductie",
            "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"
              }
            ]
          }
        ]
      }
    ]
  }
}

Dit sjabloon creëert een 20 seconden durende productlancering video met drie scènes: een typografische intro met gelaagde tekstanimaties, een product showcase met een zwevende afbeelding en typewriter effect, en een afsluitende call-to-action scène met een pulserende knop. Alle tekst, kleuren en afbeeldingen worden aangestuurd door sjabloonvariabelen, waardoor het volledig herbruikbaar is.


Volgende Stappen

  • Laagcomponenten Referentie – Diepgaande duik in elk van de 8 laagtypen met volledige eigenschapsdocumentatie en voorbeelden
  • AI Integratie – Leer hoe je Rendervid sjablonen genereert en manipuleert met behulp van AI, inclusief LLM-aangedreven sjabloongeneratie en content-aware rendering
  • Deployment Gids – Stel Rendervid in voor productie: server-side rendering, cloud deployment, batch processing en API integratie

Veelgestelde vragen

Wat is het Rendervid sjabloonformaat?

Rendervid sjablonen zijn JSON-bestanden die de structuur, inhoud, animaties en uitvoerinstellingen van een video of afbeelding definiëren. Elk sjabloon bevat een uitvoerconfiguratie (afmetingen, fps, duur), invoerdefinities voor dynamische variabelen, een compositie met scènes en lagen, en optionele lettertype- en aangepaste componentconfiguraties.

Hoe werken sjabloonvariabelen in Rendervid?

Sjabloonvariabelen gebruiken de {{variableName}} syntax. Je definieert invoer in de inputs array van het sjabloon met een key, type (string, number, boolean, color, url, array), label, beschrijving en standaardwaarde. Bij het renderen worden deze variabelen vervangen door werkelijke waarden, waardoor sjablonen herbruikbaar en dynamisch worden.

Hoeveel animatie presets heeft Rendervid?

Rendervid bevat 40+ ingebouwde animatie presets georganiseerd in vier categorieën: entrance animaties (fadeIn, slideIn, scaleIn, bounceIn, etc.), exit animaties (fadeOut, slideOut, zoomOut, etc.), emphasis animaties (pulse, shake, bounce, swing, heartbeat, etc.), en volledig aanpasbare keyframe animaties met 30+ easing functies.

Welke scène overgangen zijn beschikbaar?

Rendervid biedt 17 scène overgangstypen: cut, fade, zoom, slide, wipe, push, rotate, flip (3D), blur, circle, glitch, dissolve, cube (3D), swirl, diagonal-wipe, iris, en crosszoom. Elke overgang kan worden geconfigureerd met duur en richting parameters.

Welke uitvoerformaten ondersteunt Rendervid?

Rendervid ondersteunt meerdere uitvoerformaten waaronder MP4 (H.264), WebM (VP8/VP9), MOV (ProRes), GIF voor video, en PNG, JPEG, WebP voor afbeeldingen. Geavanceerde codecs zoals H.265/HEVC en AV1 worden ook ondersteund. Resolutie gaat tot 8K (7680x4320) met framerates van 1 tot 120 fps.

Kan ik aangepaste lettertypen gebruiken in Rendervid sjablonen?

Ja, Rendervid ondersteunt 100+ ingebouwde Google Fonts en aangepast lettertype laden vanaf URL's in WOFF2, WOFF, TTF en OTF formaten. Je kunt lettertypegewichten van 100-900 specificeren en platformspecifieke fallbacks configureren voor cross-environment compatibiliteit.

Laat ons uw eigen AI-team bouwen

Wij helpen bedrijven zoals die van u bij het ontwikkelen van slimme chatbots, MCP-servers, AI-tools of andere soorten AI-automatisering om mensen te vervangen bij repetitieve taken in uw organisatie.

Meer informatie

Rendervid Componenten - Laagtypen, React Componenten & Visuele Editor
Rendervid Componenten - Laagtypen, React Componenten & Visuele Editor

Rendervid Componenten - Laagtypen, React Componenten & Visuele Editor

Ontdek alle Rendervid componenten: 8 ingebouwde laagtypen (tekst, afbeelding, video, vorm, audio, groep, lottie, aangepast), kant-en-klare React componenten, de...

14 min lezen
Rendervid Components +3
Rendervid Implementatie - Browser, Node.js, Cloud & Docker Rendering
Rendervid Implementatie - Browser, Node.js, Cloud & Docker Rendering

Rendervid Implementatie - Browser, Node.js, Cloud & Docker Rendering

Implementeer Rendervid overal: browser-gebaseerde rendering voor voorbeelden, Node.js voor server-side batch verwerking, of cloud rendering op AWS Lambda, Azure...

19 min lezen
Rendervid Deployment +3