Rendervid Template System - JSON Skabeloner, Variabler, Animationer & Overgange

Rendervid Video Rendering Templates Open Source

Rendervid er en programmatisk videorenderingsmotor bygget omkring et deklarativt, JSON-baseret skabelonsystem. I stedet for manuelt at redigere video i en tidslinje, definerer du hvert aspekt af din video – scener, lag, animationer, overgange og outputindstillinger – i et enkelt JSON-dokument. Denne tilgang gør skabeloner tilstandsløse, versionskontrollerbare og maskingenererede, hvilket åbner døren til AI-drevet videoproduktion, batch-renderingspipelines og fuldt automatiserede indholdsworkflows.

Denne guide dækker det komplette Rendervid skabelonsystem fra top til bund: rotniveau konfiguration, outputindstillinger, variabel- og inputsystemet, scener og komposition, alle otte lagtyper, 40+ animationsforudindstillinger, 30+ easing funktioner, 17 sceneovergange, visuelle effekter, skrifttypekonfiguration og outputformater.


Skabelonstruktur Oversigt

Hver Rendervid skabelon er et JSON-objekt med et veldefineret sæt felter på rotniveau. Her er skelettet af en komplet skabelon:

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

Felter på Rotniveau

FeltTypePåkrævetBeskrivelse
namestringJaMenneskelæselig skabelonidentifikator
outputobjectJaVideo- eller billedoutputkonfiguration (dimensioner, fps, varighed, format)
inputsarrayNejDynamiske inputdefinitioner for skabelonvariabler
compositionobjectJaIndeholder scenes arrayet, der definerer alt visuelt indhold
fontsobjectNejGoogle Fonts og brugerdefinerede skrifttypedeklarationer
customComponentsobjectNejRegistrerede brugerdefinerede lagkomponenter
defaultsobjectNejStandardværdier anvendt på alle lag medmindre overskrevet

name feltet er til organisatoriske formål – det påvirker ikke renderingen. output og composition felterne er de to søjler, hver skabelon skal have. Alt andet er valgfrit, men låser op for kraftfulde muligheder.


Output Konfiguration

output objektet styrer den endelige renderede fil: dens format, dimensioner, billedhastighed, varighed og baggrundsfarve.

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

Output Felter

FeltTypeStandardBeskrivelse
typestring"video"Outputtype: "video" eller "image"
widthnumber1920Bredde i pixels (op til 7680 for 8K)
heightnumber1080Højde i pixels (op til 4320 for 8K)
fpsnumber30Billeder pr. sekund (1-120)
durationnumberTotal varighed i sekunder
backgroundColorstring"#000000"Baggrundsfarve som hex, RGB eller navngivet farve

Almindelige Forudindstillinger

Her er outputkonfigurationer til populære formater:

1080p Full HD (YouTube, generelt formål):

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

Instagram Reels / TikTok (9:16 lodret):

{
  "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 Billede:

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

For billedoutput ignoreres fps og duration – rendereren fanger en enkelt frame.


Skabelonvariabler & Inputs

Input- og variabelsystemet er det, der gør Rendervid skabeloner genanvendelige. I stedet for at hardkode tekst, farver eller URL’er i din skabelon, definerer du inputs og refererer til dem ved hjælp af {{variableName}} syntaksen hvor som helst i skabelonen.

Definering af Inputs

Inputs deklareres i inputs arrayet på topniveau. Hvert inputobjekt beskriver en enkelt variabel:

{
  "inputs": [
    {
      "key": "title",
      "type": "string",
      "label": "Titel",
      "description": "Hovedtiteltekst vist i introscenen",
      "required": true,
      "default": "Hej Verden"
    },
    {
      "key": "brandColor",
      "type": "color",
      "label": "Brandfarve",
      "description": "Primær brandfarve brugt til baggrunde og accenter",
      "required": false,
      "default": "#FF5733"
    },
    {
      "key": "showSubtitle",
      "type": "boolean",
      "label": "Vis Undertekst",
      "description": "Skift undertekstsynlighed",
      "required": false,
      "default": true
    }
  ]
}

Input Felt Reference

FeltTypePåkrævetBeskrivelse
keystringJaUnik identifikator brugt i {{key}} referencer
typestringJaDatatype: string, number, boolean, color, url, array
labelstringNejMenneskelæselig etiket til UI-rendering
descriptionstringNejForklaring af hvad dette input styrer
requiredbooleanNejOm inputtet skal leveres ved renderingstidspunkt
defaultanyNejFallback-værdi hvis intet input leveres

Input Typer

  • string – Fri tekst. Brug til titler, beskrivelser, billedtekster eller ethvert tekstindhold.
  • number – Numeriske værdier. Brug til varigheder, størrelser, positioner, uigennemsigtigheds niveauer eller antal.
  • boolean – Sand/falsk skift. Brug til betinget synlighed, funktionsflag eller til/fra kontakter.
  • color – Farveværdier i hex (#FF5733), RGB (rgb(255,87,51)) eller navngivet format. Brug til baggrunde, tekstfarver og accenter.
  • url – Gyldige URL-strenge. Brug til billedkilder, videokilder, links og skrifttype-URL’er.
  • array – Lister af værdier. Brug til billedgallerier, tekstlister, slideindhold eller enhver gentaget data.

Brug af Variabler i Skabelonen

Når inputs er defineret, referer til dem hvor som helst i skabelonen ved hjælp af dobbelte krøllede parenteser:

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

Variabler løses ved renderingstidspunkt. Når du kalder Rendervid API eller CLI, sender du de faktiske værdier:

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

Fuldt Input Eksempel

Her er en komplet skabelon med flere inputtyper, der arbejder sammen:

{
  "name": "product-promo",
  "output": {
    "type": "video",
    "width": 1080,
    "height": 1080,
    "fps": 30,
    "duration": 15
  },
  "inputs": [
    {
      "key": "productName",
      "type": "string",
      "label": "Produktnavn",
      "description": "Navn på produktet, der promoveres",
      "required": true,
      "default": "Produkt"
    },
    {
      "key": "price",
      "type": "number",
      "label": "Pris",
      "description": "Produktpris vist i videoen",
      "required": true,
      "default": 29.99
    },
    {
      "key": "productImage",
      "type": "url",
      "label": "Produktbillede URL",
      "description": "URL til produktbilledet",
      "required": true
    },
    {
      "key": "accentColor",
      "type": "color",
      "label": "Accentfarve",
      "description": "Farve brugt til CTA-knapper og fremhævninger",
      "required": false,
      "default": "#FF6B35"
    },
    {
      "key": "showBadge",
      "type": "boolean",
      "label": "Vis Udsalgsmærke",
      "description": "Om udsalgsmærket skal vises",
      "required": false,
      "default": false
    },
    {
      "key": "features",
      "type": "array",
      "label": "Produktfunktioner",
      "description": "Liste over funktionspunkter",
      "required": false,
      "default": ["Funktion 1", "Funktion 2", "Funktion 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 }
          }
        ]
      }
    ]
  }
}

Denne enkelte skabelon kan generere tusindvis af unikke produktvideoer ved blot at ændre inputværdierne ved renderingstidspunkt – ingen skabelonændringer nødvendige.


Scener & Komposition

composition objektet er hvor din videos indhold lever. Det indeholder et scenes array, og hver scene repræsenterer et distinkt segment af videoen med sin egen varighed, lag og 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": [ ... ]
      }
    ]
  }
}

Scene Felter

FeltTypePåkrævetBeskrivelse
namestringNejIdentifikator for scenen (til læsbarhed og fejlfinding)
durationnumberJaScenelængde i sekunder
transitionobjectNejOvergangseffekt ved indtræden i denne scene fra den forrige
layersarrayJaOrdnet array af lagobjekter renderet fra bund til top

Scener afspilles i rækkefølge. Den totale videovarighed er summen af alle scenevarigheder (minus eventuel overgangsoverlap). Lag inden for en scene renderes i array-rækkefølge – det første lag sidder i bunden af den visuelle stak, og det sidste lag sidder øverst.

Hvis ingen overgang er angivet, bruger scenen et hårdt cut som standard.


Lag System

Rendervid understøtter otte forskellige lagtyper. Hver lagtype tjener et specifikt formål og accepterer sit eget sæt af egenskaber oven på den delte basiskonfiguration.

Delte Lag Egenskaber

Hvert lag, uanset type, understøtter disse basisegenskaber:

{
  "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": ""
}
EgenskabTypeStandardBeskrivelse
positionobject{x: 0, y: 0}X/Y koordinater i pixels
sizeobjectBredde og højde i pixels
rotationnumber0Rotationsvinkel i grader
scaleobject{x: 1, y: 1}Skaleringsmultiplikator for X og Y akser
anchorobject{x: 0.5, y: 0.5}Ankerpunkt for transformationer (0-1 område, 0.5 = center)
opacitynumber1Laguigennemsigtighed (0 = transparent, 1 = uigennemsigtig)
blendModestring"normal"CSS blend mode til compositing
fromnumber0Starttidspunkt i sekunder (relativt til scenestart)
durationnumber-1Lagvarighed i sekunder (-1 = fuld scenevarighed)
filtersarray[]Array af visuelle filterobjekter
styleobject{}Yderligere CSS-lignende stilegenskaber
classNamestring""CSS klassenavn til brugerdefineret styling

De Otte Lagtyper

  1. text – Renderer stylet tekst med fuld kontrol over skrifttype, størrelse, farve, justering, linjehøjde, bogstavafstand, tekstskygger og mere. Understøtter {{variable}} syntaksen til dynamisk indhold.

  2. image – Viser statiske billeder fra URL’er eller lokale stier. Understøtter beskæring, object-fit modes, border radius og billedfiltre.

  3. video – Indlejrer videoclips i en scene. Understøtter trimning (start/slut), volumenkontrol, afspilningshastighed, looping og muting.

  4. shape – Renderer geometriske primitiver: rektangler, cirkler, ellipser, linjer og polygoner. Understøtter fyld, streg, border radius, gradienter og skygger.

  5. audio – Tilføjer lydspor til en scene. Understøtter volumen, fade ind/ud, trimning og looping. Lydlag har ingen visuel repræsentation.

  6. group – Et containerlag, der indeholder underordnede lag. Grupper giver dig mulighed for at anvende transformationer, animationer og effekter på flere lag på én gang.

  7. lottie – Renderer Lottie/Bodymovin JSON-animationer. Understøtter afspilningshastighed, looping og segmentkontrol til afspilning af specifikke frame-områder.

  8. custom – Indlæser registrerede brugerdefinerede komponenter defineret i customComponents feltet. Brug dette til genanvendelige, parametriserede lagskabeloner.

For detaljeret konfiguration af hver lagtype, herunder alle tilgængelige egenskaber og kodeeksempler, se Rendervid Components Reference .


Animations System

Rendervid inkluderer over 40 indbyggede animationsforudindstillinger organiseret i fire kategorier: entrance, exit, emphasis og keyframe. Animationer er knyttet til ethvert lag og styrer, hvordan det lag vises, forsvinder eller opfører sig i løbet af sin levetid.

Animations Konfiguration

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

Animations Felter

FeltTypeStandardBeskrivelse
typestringAnimationskategori: entrance, exit, emphasis, keyframe
effectstringForudindstillingsnavn (f.eks. fadeInUp, pulse, bounceOut)
durationnumber30Varighed i frames
delaynumber0Forsinkelse før animation starter, i frames
easingstring"ease"Easing funktionsnavn
loopnumber0Antal loops (0 = ingen loop, -1 = uendelig)
alternatebooleanfalseVend retning ved alternative loops

Indgangsanimationer (20 forudindstillinger)

Indgangsanimationer styrer, hvordan et lag vises på skærmen. De kører én gang, når lagets starttidspunkt nås.

ForudindstillingBeskrivelse
fadeInSimpel uigennemsigtigheds fade fra 0 til 1
fadeInUpFader ind mens den glider opad
fadeInDownFader ind mens den glider nedad
fadeInLeftFader ind mens den glider fra venstre
fadeInRightFader ind mens den glider fra højre
slideInUpGlider ind fra under rammen
slideInDownGlider ind fra oven på rammen
slideInLeftGlider ind fra venstre kant
slideInRightGlider ind fra højre kant
scaleInSkalerer op fra 0 til fuld størrelse
zoomInZoomer ind fra en mindre skala med let overskridelse
rotateInRoterer ind i position fra en forskudt vinkel
bounceInHopper ind i position med elastisk overskridelse
flipInX3D flip på X-aksen (horisontal flip)
flipInY3D flip på Y-aksen (vertikal flip)
typewriterTegn vises et ad gangen (tekstlag)
revealLeftMaskeavsløring glider fra venstre
revealRightMaskeavsløring glider fra højre
revealUpMaskeavsløring glider opad
revealDownMaskeavsløring glider nedad

Udgangsanimationer (9 forudindstillinger)

Udgangsanimationer styrer, hvordan et lag forsvinder. De kører ved slutningen af lagets varighed.

ForudindstillingBeskrivelse
fadeOutSimpel uigennemsigtigheds fade fra 1 til 0
slideOutUpGlider ud gennem toppen af rammen
slideOutDownGlider ud gennem bunden af rammen
scaleOutSkalerer ned fra fuld størrelse til 0
zoomOutZoomer ud til en mindre skala og fader
rotateOutRoterer ud af position til en forskudt vinkel
bounceOutHopper udad med elastisk overskridelse før forsvinden
flipOutX3D flip ud på X-aksen
flipOutY3D flip ud på Y-aksen

Fremhævelsesanimationer (10 forudindstillinger)

Fremhævelsesanimationer tiltrækker opmærksomhed til et lag, mens det forbliver synligt. De fungerer godt med looping.

ForudindstillingBeskrivelse
pulseRytmisk skalapuls (vokser og skrumper)
shakeHurtig horisontal rysten
bounceVertikal hoppebevægelse
swingPendul-lignende svingende rotation
wobbleOff-akse vaklen kombinerer rotation og translation
flashHurtige uigennemsigtigheds blink
rubberBandElastisk stræk og snap effekt
heartbeatDobbelt-puls hjertebanke rytme
floatBlid flydende op-og-ned bevægelse
spinKontinuerlig 360-graders rotation

Keyframe Animationer

For fuld kreativ kontrol lader keyframe-animationer dig definere brugerdefinerede frame-for-frame egenskabsændringer:

{
  "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-animationer kan animere enhver numerisk egenskab: opacity, x, y, rotation, scaleX, scaleY og mere. Hver keyframe angiver et framenummer og egenskabsværdierne ved det frame. Rendereren interpolerer mellem keyframes ved hjælp af den angivne easing funktion.

Kombination af Animationer

Et enkelt lag kan have flere animationer. For eksempel en indgangsanimation efterfulgt af en fremhævelsesloop og derefter en udgangsanimation:

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

Easing funktioner styrer ændringshastigheden under en animation og bestemmer, om bevægelsen føles lineær, glat, hoppende eller elastisk. Rendervid inkluderer over 30 indbyggede easing funktioner.

Basis Easing

FunktionBeskrivelse
linearKonstant hastighed fra start til slut, ingen acceleration
easeStandard CSS-lignende easing med blid acceleration og deceleration
easeInStarter langsomt, accelererer mod slutningen
easeOutStarter hurtigt, decelererer mod slutningen
easeInOutAccelererer i første halvdel, decelererer i anden

Kvadratisk Easing

FunktionBeskrivelse
easeInQuadKvadratisk acceleration (t^2)
easeOutQuadKvadratisk deceleration
easeInOutQuadKvadratisk acceleration derefter deceleration

Kubisk Easing

FunktionBeskrivelse
easeInCubicKubisk acceleration (t^3) – mere udtalt end kvadratisk
easeOutCubicKubisk deceleration – glat og naturlig-følende stop
easeInOutCubicKubisk ease ind og ud – den mest almindeligt anvendte easing

Kvartisk Easing

FunktionBeskrivelse
easeInQuartKvartisk acceleration (t^4)
easeOutQuartKvartisk deceleration
easeInOutQuartKvartisk ease ind og ud

Kvintisk Easing

FunktionBeskrivelse
easeInQuintKvintisk acceleration (t^5) – meget skarp start
easeOutQuintKvintisk deceleration – meget skarp stop
easeInOutQuintKvintisk ease ind og ud

Sinusformet Easing

FunktionBeskrivelse
easeInSineSinus-baseret acceleration – den blødeste easing kurve
easeOutSineSinus-baseret deceleration
easeInOutSineSinus-baseret ease ind og ud

Eksponentiel Easing

FunktionBeskrivelse
easeInExpoEksponentiel acceleration – næsten flad derefter skarp
easeOutExpoEksponentiel deceleration – skarp derefter næsten flad
easeInOutExpoEksponentiel ease ind og ud

Cirkulær Easing

FunktionBeskrivelse
easeInCircCirkulær accelerationskurve
easeOutCircCirkulær decelerationskurve
easeInOutCircCirkulær ease ind og ud

Tilbage Easing

FunktionBeskrivelse
easeInBackTrækker lidt tilbage før acceleration fremad (forventning)
easeOutBackOverskrider målet og sætter sig derefter tilbage (overskridelse)
easeInOutBackForventning ved indgang, overskridelse ved udgang

Elastisk Easing

FunktionBeskrivelse
easeInElasticElastisk vaklen ved acceleration – fjerlignende opvinding
easeOutElasticElastisk vaklen ved deceleration – fjerlignende snap
easeInOutElasticElastisk i begge ender

Bounce Easing

FunktionBeskrivelse
easeInBounceHoppende effekt ved indgang – som en bold tabt i omvendt
easeOutBounceHoppende effekt ved udgang – som en bold, der rammer jorden
easeInOutBounceHoppende i begge ender

Valg af Rigtig Easing

  • UI-elementer og tekst: easeOutCubic eller easeOutQuart til naturlig-følende indgange
  • Opmærksomhedsfangende bevægelse: easeOutElastic eller easeOutBack til legende overskridelse
  • Glat looping: easeInOutSine til blid, kontinuerlig bevægelse
  • Dramatiske afsløringer: easeInExpo til opbygninger, easeOutExpo til snappy stop
  • Fysisk simulation: easeOutBounce til tyngdekraft-lignende effekter

Scene Overgange

Overgange styrer, hvordan en scene flyder ind i den næste. Rendervid tilbyder 17 overgangstyper, der spænder fra simple cuts til cinematiske 3D-effekter.

Overgangs Konfiguration

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

transition objektet placeres på den indkommende scene (scenen, der overgås til). direction egenskaben gælder kun for retningsbestemte overgange som slide, wipe og push.

Alle 17 Overgangstyper

OvergangBeskrivelse
cutØjeblikkelig skift uden visuel effekt (standard)
fadeCrossfade mellem scener – den udgående scene fader ud, mens den indkommende scene fader ind
zoomZoomer ind i den udgående scene, mens den indkommende scene vises
slideDen indkommende scene glider over den udgående scene fra en konfigurerbar retning (venstre, højre, op, ned)
wipeEn hård-kant wipe afslører den indkommende scene og bevæger sig på tværs af rammen i den givne retning
pushDen indkommende scene skubber den udgående scene ud af skærmen i den angivne retning
rotateDen udgående scene roterer væk, mens den indkommende scene roterer ind
flip3D flip overgang – rammen flipper som et kort for at afsløre næste scene
blurDen udgående scene sløres ud, mens den indkommende scene skærpes i fokus
circleEn cirkulær maske udvider fra midten (eller et angivet punkt) for at afsløre næste scene
glitchDigital glitch forvrængningseffekt med kromatisk aberration og forskydning
dissolvePixel-niveau opløsning, hvor individuelle pixels overgår tilfældigt mellem scener
cube3D terning rotation – scenerne er på tilstødende flader af en roterende terning
swirlSpiral forvrængning, der hvirvler den udgående scene ind i den indkommende scene
diagonal-wipeEn diagonal hård-kant wipe bevæger sig fra et hjørne til det modsatte
irisCirkulær iris, der åbner eller lukker som en kamerablænde
crosszoomBegge scener zoomer samtidigt – den udgående zoomer ind, den indkommende zoomer ud

Overgangs Eksempler

Cinematisk fade med en lang crossfade:

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

Glid fra højre (almindelig til sekventielt indhold):

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

3D terning rotation (dynamisk, moderne følelse):

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

Glitch effekt (energisk, tech-fremadrettet):

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

Visuelle Effekter

Rendervid lag understøtter en række visuelle effekter gennem filtre, blend modes, skygger og transformationer.

Filtre

Filtre anvendes via filters arrayet på ethvert lag. Hvert filter er et objekt med en type og 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 }
  ]
}
FilterVærdiområdeBeskrivelse
blur0+ (pixels)Gaussisk sløring – højere værdier producerer mere sløring
brightness0+ (multiplikator)0 = sort, 1 = normal, 2 = dobbelt lysstyrke
contrast0+ (multiplikator)0 = grå, 1 = normal, 2 = dobbelt kontrast
grayscale0-10 = fuld farve, 1 = fuldt umættet
hue-rotate0-360 (grader)Roterer farver rundt om farvehjulet
invert0-10 = normal, 1 = fuldt inverterede farver
saturate0+ (multiplikator)0 = umættet, 1 = normal, 2 = dobbelt mætning
sepia0-10 = normal, 1 = fuld sepia tone

Blend Modes

blendMode egenskaben styrer, hvordan et lag composites med lagene under det:

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

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

Skygger

Tekst- og formlag understøtter skyggeeffekter gennem style egenskaben:

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

Kombination af Effekter

Filtre, blend modes, uigennemsigtighed og skygger kan alle kombineres på et enkelt lag til sofistikerede visuelle behandlinger:

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

Skrifttype Konfiguration

Rendervid understøtter både Google Fonts (100+ familier indbygget) og brugerdefinerede skrifttyper indlæst fra eksterne URL’er.

Google Fonts

Deklarer Google Fonts i fonts.google arrayet:

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

Hvert skrifttypeobjekt kræver:

FeltTypeBeskrivelse
familystringGoogle Font familienavn (nøjagtig match påkrævet)
weightsarrayArray af numeriske vægte at indlæse (100-900)

Almindelige skrifttypevægte: 100 (Tynd), 200 (Ekstra Let), 300 (Let), 400 (Regular), 500 (Medium), 600 (Semi Fed), 700 (Fed), 800 (Ekstra Fed), 900 (Sort).

Brugerdefinerede Skrifttyper

Indlæs skrifttyper fra eksterne URL’er ved hjælp af fonts.custom arrayet:

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

Understøttede skrifttypeformater: WOFF2 (anbefalet til mindste filstørrelse), WOFF, TTF og OTF.

Brug af Skrifttyper i Lag

Referer deklarerede skrifttyper efter familienavn i tekstlag stilarter:

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

Rendervid inkluderer platformspecifikke skrifttype fallback-kæder for at sikre konsistent rendering på tværs af forskellige miljøer. Hvis en angivet skrifttype er utilgængelig, falder rendereren tilbage til systemskrifttyper, der matcher samme klassifikation (serif, sans-serif, monospace).


Output Formater

Rendervid understøtter en bred vifte af outputformater og codecs til både video- og billedrendering.

Video Formater

FormatCodecFilendelseBedst Til
MP4H.264.mp4Maksimal kompatibilitet – web, mobil, sociale medier
WebMVP8 / VP9.webmWeb-indlejring med mindre filstørrelser
MOVProRes.movProfessionelle redigeringsworkflows, tabsfri kvalitet
GIF.gifKorte animationer, social deling, e-mail
MP4H.265 / HEVC.mp4Nyere enheder, 50% mindre filer end H.264 ved samme kvalitet
WebMAV1.webmNæste generations codec, bedste komprimeringseffektivitet

Billede Formater

FormatFilendelseBedst Til
PNG.pngTabsfri kvalitet, gennemsigtighedsunderstøttelse
JPEG.jpgFotografier, mindre filstørrelser
WebP.webpModerne web, bedste balance mellem kvalitet og størrelse

Kvalitets Forudindstillinger

ForudindstillingBeskrivelse
draftHurtig rendering med reduceret kvalitet – ideel til forhåndsvisning
standardAfbalanceret kvalitet og filstørrelse – god til de fleste use cases
highHøjere bitrate og kvalitet – til endelige leverancer
losslessMaksimal kvalitet uden komprimeringsartefakter

Opløsnings Understøttelse

Rendervid understøtter opløsninger fra små thumbnails op til 8K:

OpløsningDimensionerAlmindelig Brug
SD640 x 480Thumbnails, forhåndsvisninger
HD1280 x 720Web video, e-mail
Full HD1920 x 1080YouTube, præsentationer
2K2560 x 1440Høj-kvalitets displays
4K UHD3840 x 2160Professionel, broadcast
8K7680 x 4320Maksimal opløsning, fremtidssikret

Billedhastigheder fra 1 fps (slideshows) til 120 fps (slow motion, gaming indhold) understøttes. Almindelige valg er 24 fps (cinematisk), 30 fps (web/social) og 60 fps (glat bevægelse).


Komplet Eksempel

Her er en fuld Rendervid skabelon, der demonstrerer skabelonsystemets nøglefunktioner, der arbejder sammen: dynamiske inputs, flere scener med overgange, lagdelte kompositioner, animationer med easing, skrifttyper og visuelle effekter.

{
  "name": "tech-product-launch",
  "output": {
    "type": "video",
    "width": 1920,
    "height": 1080,
    "fps": 30,
    "duration": 20,
    "backgroundColor": "#0A0A0A"
  },
  "inputs": [
    {
      "key": "productName",
      "type": "string",
      "label": "Produktnavn",
      "required": true,
      "default": "ProductX"
    },
    {
      "key": "tagline",
      "type": "string",
      "label": "Tagline",
      "required": true,
      "default": "Fremtiden er her."
    },
    {
      "key": "heroImage",
      "type": "url",
      "label": "Hero Billede",
      "required": true
    },
    {
      "key": "primaryColor",
      "type": "color",
      "label": "Primær Farve",
      "default": "#6C63FF"
    },
    {
      "key": "ctaText",
      "type": "string",
      "label": "Call to Action",
      "default": "Lær Mere"
    }
  ],
  "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": "Introducerer",
            "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"
              }
            ]
          }
        ]
      }
    ]
  }
}

Denne skabelon opretter en 20-sekunders produktlanceringsvideo med tre scener: en typografisk intro med forskudte tekstanimationer, en produktpræsentation med et flydende billede og skrivemaskineeffekt samt en afsluttende call-to-action scene med en pulserende knap. Al tekst, farver og billeder drives af skabelonvariabler, hvilket gør den fuldt genanvendelig.


Næste Skridt

  • Layer Components Reference – Dybt dyk ned i hver af de 8 lagtyper med fuld egenskabsdokumentation og eksempler
  • AI Integration – Lær hvordan du genererer og manipulerer Rendervid skabeloner ved hjælp af AI, herunder LLM-drevet skabelongenerering og indholdsbev idst rendering
  • Deployment Guide – Opsæt Rendervid til produktion: server-side rendering, cloud deployment, batch processing og API integration

Ofte stillede spørgsmål

Hvad er Rendervid skabelonformatet?

Rendervid skabeloner er JSON-filer, der definerer strukturen, indholdet, animationerne og outputindstillingerne for en video eller et billede. Hver skabelon inkluderer en outputkonfiguration (dimensioner, fps, varighed), inputdefinitioner for dynamiske variabler, en komposition med scener og lag samt valgfri skrifttype- og tilpassede komponentkonfigurationer.

Hvordan fungerer skabelonvariabler i Rendervid?

Skabelonvariabler bruger {{variableName}} syntaksen. Du definerer inputs i skabelonens inputs array med en nøgle, type (string, number, boolean, color, url, array), label, beskrivelse og standardværdi. Ved renderingstidspunktet erstattes disse variabler med faktiske værdier, hvilket gør skabeloner genanvendelige og dynamiske.

Hvor mange animationsforudindstillinger har Rendervid?

Rendervid inkluderer 40+ indbyggede animationsforudindstillinger organiseret i fire kategorier: indgangsanimationer (fadeIn, slideIn, scaleIn, bounceIn, osv.), udgangsanimationer (fadeOut, slideOut, zoomOut, osv.), fremhævelsesanimationer (pulse, shake, bounce, swing, heartbeat, osv.) og fuldt tilpasselige keyframe-animationer med 30+ easing funktioner.

Hvilke sceneovergange er tilgængelige?

Rendervid tilbyder 17 sceneovergangstyper: cut, fade, zoom, slide, wipe, push, rotate, flip (3D), blur, circle, glitch, dissolve, cube (3D), swirl, diagonal-wipe, iris og crosszoom. Hver overgang kan konfigureres med varighed og retningsparametre.

Hvilke outputformater understøtter Rendervid?

Rendervid understøtter flere outputformater, herunder MP4 (H.264), WebM (VP8/VP9), MOV (ProRes), GIF til video og PNG, JPEG, WebP til billeder. Avancerede codecs som H.265/HEVC og AV1 understøttes også. Opløsningen går op til 8K (7680x4320) med billedhastigheder fra 1 til 120 fps.

Kan jeg bruge brugerdefinerede skrifttyper i Rendervid skabeloner?

Ja, Rendervid understøtter 100+ indbyggede Google Fonts og brugerdefineret skrifttypeindlæsning fra URL'er i WOFF2, WOFF, TTF og OTF formater. Du kan angive skrifttypevægte fra 100-900 og konfigurere platformspecifikke fallbacks for kompatibilitet på tværs af miljøer.

Lad os bygge dit eget AI-team

Vi hjælper virksomheder som din med at udvikle smarte chatbots, MCP-servere, AI-værktøjer eller andre typer AI-automatisering til at erstatte mennesker i gentagne opgaver i din organisation.

Lær mere

Rendervid Komponenter - Lagtyper, React Komponenter & Visuel Editor
Rendervid Komponenter - Lagtyper, React Komponenter & Visuel Editor

Rendervid Komponenter - Lagtyper, React Komponenter & Visuel Editor

Udforsk alle Rendervid komponenter: 8 indbyggede lagtyper (tekst, billede, video, form, lyd, gruppe, lottie, tilpasset), færdigbyggede React komponenter, den vi...

13 min læsning
Rendervid Components +3
Rendervid Deployment - Browser, Node.js, Cloud & Docker Rendering
Rendervid Deployment - Browser, Node.js, Cloud & Docker Rendering

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

Deploy Rendervid hvor som helst: browserbaseret rendering til forhåndsvisninger, Node.js til serverside batch-behandling, eller cloud rendering på AWS Lambda, A...

18 min læsning
Rendervid Deployment +3
Rendervid: Det gratis Remotion-alternativ til AI-drevet videogenerering
Rendervid: Det gratis Remotion-alternativ til AI-drevet videogenerering

Rendervid: Det gratis Remotion-alternativ til AI-drevet videogenerering

Opdag Rendervid, det gratis open-source alternativ til Remotion til programmatisk videogenerering. AI-først design med MCP-integration, JSON-skabeloner, cloud r...

13 min læsning
Rendervid Video Rendering +3