Rendervid Template System - JSON-maler, Variabler, Animasjoner og Overganger

Rendervid Video Rendering Templates Open Source

Rendervid er en programmatisk videorenderingsmotor bygget rundt et deklarativt, JSON-basert malsystem. I stedet for å manuelt redigere video i en tidslinje, definerer du hvert aspekt av videoen din – scener, lag, animasjoner, overganger og utdatainnstillinger – i et enkelt JSON-dokument. Denne tilnærmingen gjør maler tilstandsløse, versjonskontrollerbare og maskingenerbare, noe som åpner døren for AI-drevet videoproduksjon, batch-renderingspipelines og fullautomatiserte innholdsarbeidsflyter.

Denne guiden dekker det komplette Rendervid-malsystemet fra topp til bunn: konfigurasjon på rotnivå, utdatainnstillinger, variabel- og inndatasystemet, scener og komposisjon, alle åtte lagtyper, 40+ animasjonsforhåndsinnstillinger, 30+ easing-funksjoner, 17 sceneoverganger, visuelle effekter, skrifttypekonfigurasjon og utdataformater.


Oversikt over Malstruktur

Hver Rendervid-mal er et JSON-objekt med et veldefinert sett av felt på rotnivå. Her er skjelettet til en komplett mal:

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

Felt på Rotnivå

FeltTypePåkrevdBeskrivelse
namestringJaMenneskelesbar malidentifikator
outputobjectJaVideo- eller bildeutdatakonfigurasjon (dimensjoner, fps, varighet, format)
inputsarrayNeiDynamiske inndatadefinisjoner for malvariabler
compositionobjectJaInneholder scenes-arrayen som definerer alt visuelt innhold
fontsobjectNeiGoogle Fonts og tilpassede skrifttypedeklarasjoner
customComponentsobjectNeiRegistrerte tilpassede lagkomponenter
defaultsobjectNeiStandardverdier som gjelder for alle lag med mindre overstyrt

name-feltet er for organisatoriske formål – det påvirker ikke renderingen. output- og composition-feltene er de to pilarene hver mal må ha. Alt annet er valgfritt, men låser opp kraftige funksjoner.


Utdatakonfigurasjon

output-objektet kontrollerer den endelige rendrede filen: dens format, dimensjoner, bildefrekvens, varighet og bakgrunnsfarge.

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

Utdatafelt

FeltTypeStandardBeskrivelse
typestring"video"Utdatatype: "video" eller "image"
widthnumber1920Bredde i piksler (opptil 7680 for 8K)
heightnumber1080Høyde i piksler (opptil 4320 for 8K)
fpsnumber30Bilder per sekund (1-120)
durationnumberTotal varighet i sekunder
backgroundColorstring"#000000"Bakgrunnsfarge som hex, RGB eller navngitt farge

Vanlige Forhåndsinnstillinger

Her er utdatakonfigurasjoner for populære formater:

1080p Full HD (YouTube, generelt bruk):

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

Instagram Reels / TikTok (9:16 vertikal):

{
  "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 / Bilde for Sosial Deling:

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

For bildeutdata ignoreres fps og duration – rendereren fanger en enkelt ramme.


Malvariabler og Inndata

Inndata- og variabelsystemet er det som gjør Rendervid-maler gjenbrukbare. I stedet for å hardkode tekst, farger eller URL-er inn i malen din, definerer du inndata og refererer til dem ved å bruke {{variableName}}-syntaksen hvor som helst i malen.

Definere Inndata

Inndata deklareres i inputs-arrayen på toppnivå. Hvert inndataobjekt beskriver en enkelt variabel:

{
  "inputs": [
    {
      "key": "title",
      "type": "string",
      "label": "Tittel",
      "description": "Hovedtitteltekst vist i intro-scenen",
      "required": true,
      "default": "Hello World"
    },
    {
      "key": "brandColor",
      "type": "color",
      "label": "Merkevarefarge",
      "description": "Primær merkevarefarge brukt til bakgrunner og aksenter",
      "required": false,
      "default": "#FF5733"
    },
    {
      "key": "showSubtitle",
      "type": "boolean",
      "label": "Vis Undertekst",
      "description": "Slå av/på synlighet for undertekst",
      "required": false,
      "default": true
    }
  ]
}

Referanse for Inndatafelt

FeltTypePåkrevdBeskrivelse
keystringJaUnik identifikator brukt i {{key}}-referanser
typestringJaDatatype: string, number, boolean, color, url, array
labelstringNeiMenneskelesbar etikett for UI-rendering
descriptionstringNeiForklaring av hva denne inndataen kontrollerer
requiredbooleanNeiOm inndataen må oppgis ved renderingstidspunktet
defaultanyNeiFallback-verdi hvis ingen inndata oppgis

Inndatatyper

  • string – Friformtekst. Bruk for titler, beskrivelser, bildetekster eller ethvert tekstinnhold.
  • number – Numeriske verdier. Bruk for varigheter, størrelser, posisjoner, opasitetsnivåer eller antall.
  • boolean – Sann/usann-brytere. Bruk for betinget synlighet, funksjonsflagger eller av/på-brytere.
  • color – Fargeverdier i hex (#FF5733), RGB (rgb(255,87,51)) eller navngitt format. Bruk for bakgrunner, tekstfarger og aksenter.
  • url – Gyldige URL-strenger. Bruk for bildekilder, videokilder, lenker og skrifttype-URL-er.
  • array – Lister med verdier. Bruk for bildegallerier, tekstlister, lysbildeinnhold eller andre gjentatte data.

Bruke Variabler i Malen

Når inndata er definert, referer du til dem hvor som helst i malen ved å bruke doble krøllparenteser:

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

Variabler løses ved renderingstidspunktet. Når du kaller Rendervid API eller CLI, sender du de faktiske verdiene:

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

Fullstendig Inndataeksempel

Her er en komplett mal med flere inndatatyper som fungerer 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 som markedsføres",
      "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": "URL til Produktbilde",
      "description": "URL til produktbildet",
      "required": true
    },
    {
      "key": "accentColor",
      "type": "color",
      "label": "Aksentfarge",
      "description": "Farge brukt til CTA-knapper og høydepunkter",
      "required": false,
      "default": "#FF6B35"
    },
    {
      "key": "showBadge",
      "type": "boolean",
      "label": "Vis Salgsmerke",
      "description": "Om salgsmerket skal vises som overlegg",
      "required": false,
      "default": false
    },
    {
      "key": "features",
      "type": "array",
      "label": "Produktfunksjoner",
      "description": "Liste over funksjonspunkter",
      "required": false,
      "default": ["Funksjon 1", "Funksjon 2", "Funksjon 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 enkle malen kan generere tusenvis av unike produktvideoer ved ganske enkelt å endre inndataverdiene ved renderingstidspunktet – ingen malmodifikasjoner nødvendig.


Scener og Komposisjon

composition-objektet er der videoens innhold befinner seg. Det inneholder en scenes-array, og hver scene representerer et distinkt segment av videoen med sin egen varighet, 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": [ ... ]
      }
    ]
  }
}

Scenefelt

FeltTypePåkrevdBeskrivelse
namestringNeiIdentifikator for scenen (for lesbarhet og feilsøking)
durationnumberJaScenelengde i sekunder
transitionobjectNeiOvergangseffekt ved inngang til denne scenen fra den forrige
layersarrayJaOrdnet array av lagobjekter rendret fra bunn til topp

Scener spilles i sekvens. Den totale videovarigheten er summen av alle scenevarigheter (minus eventuell overgangsoverlapping). Lag innenfor en scene rendres i array-rekkefølge – det første laget sitter nederst i den visuelle stakken, og det siste laget sitter øverst.

Hvis ingen overgang er spesifisert, bruker scenen et hardt cut som standard.


Lagsystem

Rendervid støtter åtte distinkte lagtyper. Hver lagtype tjener et spesifikt formål og aksepterer sitt eget sett med egenskaper på toppen av den delte basiskonfigurasjonen.

Delte Lagegenskaper

Hvert lag, uavhengig av type, støtter disse basisegenskapene:

{
  "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": ""
}
EgenskapTypeStandardBeskrivelse
positionobject{x: 0, y: 0}X/Y-koordinater i piksler
sizeobjectBredde og høyde i piksler
rotationnumber0Rotasjonsvinkel i grader
scaleobject{x: 1, y: 1}Skaleringsmultiplikator for X- og Y-akser
anchorobject{x: 0.5, y: 0.5}Ankerpunkt for transformasjoner (0-1 område, 0.5 = senter)
opacitynumber1Lagopasitet (0 = gjennomsiktig, 1 = ugjennomsiktig)
blendModestring"normal"CSS blandingsmodus for komposisjon
fromnumber0Starttid i sekunder (relativt til scenestart)
durationnumber-1Lagvarighet i sekunder (-1 = full scenevarighet)
filtersarray[]Array av visuelle filterobjekter
styleobject{}Ekstra CSS-lignende stilegenskaper
classNamestring""CSS-klassenavn for tilpasset styling

De Åtte Lagtypene

  1. text – Rendrer stilisert tekst med full kontroll over skrifttype, størrelse, farge, justering, linjehøyde, bokstavavstand, tekstskygger og mer. Støtter {{variable}}-syntaksen for dynamisk innhold.

  2. image – Viser statiske bilder fra URL-er eller lokale stier. Støtter beskjæring, objekttilpasningsmodi, kantradius og bildefiltre.

  3. video – Bygger inn videoklipp i en scene. Støtter trimming (start/slutt), volumkontroll, avspillingshastighet, looping og demping.

  4. shape – Rendrer geometriske primitiver: rektangler, sirkler, ellipser, linjer og polygoner. Støtter fyll, strøk, kantradius, gradienter og skygger.

  5. audio – Legger til lydspor i en scene. Støtter volum, fade inn/ut, trimming og looping. Lydlag har ingen visuell representasjon.

  6. group – Et containerlag som holder underordnede lag. Grupper lar deg anvende transformasjoner, animasjoner og effekter på flere lag samtidig.

  7. lottie – Rendrer Lottie/Bodymovin JSON-animasjoner. Støtter avspillingshastighet, looping og segmentkontroll for avspilling av spesifikke rammeområder.

  8. custom – Laster registrerte tilpassede komponenter definert i customComponents-feltet. Bruk dette for gjenbrukbare, parametriserte lagmaler.

For detaljert konfigurasjon av hver lagtype, inkludert alle tilgjengelige egenskaper og kodeeksempler, se Rendervid Components Reference .


Animasjonssystem

Rendervid inkluderer over 40 innebygde animasjonsforhåndsinnstillinger organisert i fire kategorier: inngang, utgang, vektlegging og keyframe. Animasjoner festes til ethvert lag og kontrollerer hvordan det laget vises, forsvinner eller oppfører seg i løpet av sin levetid.

Animasjonskonfigurasjon

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

Animasjonsfelt

FeltTypeStandardBeskrivelse
typestringAnimasjonskategori: entrance, exit, emphasis, keyframe
effectstringForhåndsinnstillingsnavn (f.eks. fadeInUp, pulse, bounceOut)
durationnumber30Varighet i rammer
delaynumber0Forsinkelse før animasjonen starter, i rammer
easingstring"ease"Easing-funksjonsnavn
loopnumber0Antall løkker (0 = ingen løkke, -1 = uendelig)
alternatebooleanfalseReverser retning på alternative løkker

Inngangsanimasjoner (20 forhåndsinnstillinger)

Inngangsanimasjoner kontrollerer hvordan et lag vises på skjermen. De kjører én gang når lagets starttid nås.

ForhåndsinnstillingBeskrivelse
fadeInEnkel opasitetsfade fra 0 til 1
fadeInUpFader inn mens den glir oppover
fadeInDownFader inn mens den glir nedover
fadeInLeftFader inn mens den glir fra venstre
fadeInRightFader inn mens den glir fra høyre
slideInUpGlir inn fra under rammen
slideInDownGlir inn fra over rammen
slideInLeftGlir inn fra venstre kant
slideInRightGlir inn fra høyre kant
scaleInSkalerer opp fra 0 til full størrelse
zoomInZoomer inn fra mindre skala med lett overskudd
rotateInRoterer inn i posisjon fra en forskjøvet vinkel
bounceInSpretter inn i posisjon med elastisk overskudd
flipInX3D-flip på X-aksen (horisontal flip)
flipInY3D-flip på Y-aksen (vertikal flip)
typewriterTegn vises ett om gangen (tekstlag)
revealLeftMaskeavsløring som glir fra venstre
revealRightMaskeavsløring som glir fra høyre
revealUpMaskeavsløring som glir oppover
revealDownMaskeavsløring som glir nedover

Utgangsanimasjoner (9 forhåndsinnstillinger)

Utgangsanimasjoner kontrollerer hvordan et lag forsvinner. De kjører på slutten av lagets varighet.

ForhåndsinnstillingBeskrivelse
fadeOutEnkel opasitetsfade fra 1 til 0
slideOutUpGlir ut gjennom toppen av rammen
slideOutDownGlir ut gjennom bunnen av rammen
scaleOutSkalerer ned fra full størrelse til 0
zoomOutZoomer ut til mindre skala og fader
rotateOutRoterer ut av posisjon til en forskjøvet vinkel
bounceOutSpretter utover med elastisk overskudd før den forsvinner
flipOutX3D-flip ut på X-aksen
flipOutY3D-flip ut på Y-aksen

Vektleggingsanimasjoner (10 forhåndsinnstillinger)

Vektleggingsanimasjoner trekker oppmerksomhet til et lag mens det forblir synlig. De fungerer godt med looping.

ForhåndsinnstillingBeskrivelse
pulseRytmisk skalapuls (vokser og krymper)
shakeRask horisontal risting
bounceVertikal sprettbevegelse
swingPendellignende svingende rotasjon
wobbleOff-axis vakle som kombinerer rotasjon og translasjon
flashRaske opasitetsglimt
rubberBandElastisk strekk- og kneppeffekt
heartbeatDobbel-puls hjerteslag-rytme
floatForsiktig flytende opp-og-ned-bevegelse
spinKontinuerlig 360-graders rotasjon

Keyframe-animasjoner

For full kreativ kontroll lar keyframe-animasjoner deg definere tilpassede ramme-for-ramme egenskapsendringer:

{
  "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-animasjoner kan animere enhver numerisk egenskap: opacity, x, y, rotation, scaleX, scaleY og mer. Hver keyframe spesifiserer et rammenummer og egenskapsverdiene ved den rammen. Rendereren interpolerer mellom keyframes ved å bruke den spesifiserte easing-funksjonen.

Kombinere Animasjoner

Et enkelt lag kan ha flere animasjoner. For eksempel en inngangsanimasjon etterfulgt av en vektleggingsløkke, deretter en utgangsanimasjon:

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

Easing-funksjoner kontrollerer endringshastigheten under en animasjon, og bestemmer om bevegelsen føles lineær, jevn, hoppende eller elastisk. Rendervid inkluderer over 30 innebygde easing-funksjoner.

Grunnleggende Easing

FunksjonBeskrivelse
linearKonstant hastighet fra start til slutt, ingen akselerasjon
easeStandard CSS-lignende easing med forsiktig akselerasjon og retardasjon
easeInStarter sakte, akselererer mot slutten
easeOutStarter raskt, retarderer mot slutten
easeInOutAkselererer i første halvdel, retarderer i andre

Kvadratisk Easing

FunksjonBeskrivelse
easeInQuadKvadratisk akselerasjon (t^2)
easeOutQuadKvadratisk retardasjon
easeInOutQuadKvadratisk akselerasjon deretter retardasjon

Kubisk Easing

FunksjonBeskrivelse
easeInCubicKubisk akselerasjon (t^3) – mer uttalt enn kvadratisk
easeOutCubicKubisk retardasjon – jevn og naturligfølende stopp
easeInOutCubicKubisk ease inn og ut – den mest brukte easing

Kvartisk Easing

FunksjonBeskrivelse
easeInQuartKvartisk akselerasjon (t^4)
easeOutQuartKvartisk retardasjon
easeInOutQuartKvartisk ease inn og ut

Kvintisk Easing

FunksjonBeskrivelse
easeInQuintKvintisk akselerasjon (t^5) – veldig skarp start
easeOutQuintKvintisk retardasjon – veldig skarp stopp
easeInOutQuintKvintisk ease inn og ut

Sinusformet Easing

FunksjonBeskrivelse
easeInSineSinusbasert akselerasjon – den mildeste easing-kurven
easeOutSineSinusbasert retardasjon
easeInOutSineSinusbasert ease inn og ut

Eksponentiell Easing

FunksjonBeskrivelse
easeInExpoEksponentiell akselerasjon – nesten flat deretter skarp
easeOutExpoEksponentiell retardasjon – skarp deretter nesten flat
easeInOutExpoEksponentiell ease inn og ut

Sirkulær Easing

FunksjonBeskrivelse
easeInCircSirkulær akselerasjonskurve
easeOutCircSirkulær retardasjonskurve
easeInOutCircSirkulær ease inn og ut

Back Easing

FunksjonBeskrivelse
easeInBackTrekker seg litt tilbake før den akselererer fremover (antesitering)
easeOutBackOverskrider målet og setter seg deretter tilbake (overskudd)
easeInOutBackAntesitering ved inngang, overskudd ved utgang

Elastisk Easing

FunksjonBeskrivelse
easeInElasticElastisk vakle ved akselerasjon – fjærlignende oppvikling
easeOutElasticElastisk vakle ved retardasjon – fjærlignende knips
easeInOutElasticElastisk på begge ender

Bounce Easing

FunksjonBeskrivelse
easeInBounceSpretteffekt ved inngang – som en ball sluppet i revers
easeOutBounceSpretteffekt ved utgang – som en ball som treffer bakken
easeInOutBounceSpretting på begge ender

Velge Riktig Easing

  • UI-elementer og tekst: easeOutCubic eller easeOutQuart for naturligfølende innganger
  • Oppmerksomhetsfangende bevegelse: easeOutElastic eller easeOutBack for leken overskudd
  • Jevn looping: easeInOutSine for forsiktig, kontinuerlig bevegelse
  • Dramatiske avsløringer: easeInExpo for oppbygging, easeOutExpo for raske stopp
  • Fysisk simulering: easeOutBounce for tyngdekraftlignende effekter

Sceneoverganger

Overganger kontrollerer hvordan en scene flyter inn i den neste. Rendervid tilbyr 17 overgangstyper fra enkle kutt til kinematiske 3D-effekter.

Overgangskonfigurasjon

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

transition-objektet plasseres på den innkommende scenen (scenen det overganges til). direction-egenskapen gjelder kun for retningsbestemte overganger som slide, wipe og push.

Alle 17 Overgangstyper

OvergangBeskrivelse
cutØyeblikkelig bytte uten visuell effekt (standard)
fadeKryssfading mellom scener – den utgående scenen fader ut mens den innkommende scenen fader inn
zoomZoomer inn i den utgående scenen mens den innkommende scenen vises
slideDen innkommende scenen glir over den utgående scenen fra en konfigurerbar retning (venstre, høyre, opp, ned)
wipeEn hard kant-wipe avslører den innkommende scenen, beveger seg over rammen i gitt retning
pushDen innkommende scenen skyver den utgående scenen ut av skjermen i spesifisert retning
rotateDen utgående scenen roterer bort mens den innkommende scenen roterer inn
flip3D-flip-overgang – rammen flipper som et kort for å avsløre neste scene
blurDen utgående scenen blir uskarp mens den innkommende scenen skjerpes inn i fokus
circleEn sirkulær maske utvides fra sentrum (eller et spesifisert punkt) for å avsløre neste scene
glitchDigital glitch-forvrengningseffekt med kromatisk aberrasjon og forskyvning
dissolvePiksel-nivå oppløsning der individuelle piksler overgår tilfeldig mellom scener
cube3D-kuberotasjon – scenene er på tilstøtende flater av en roterende kube
swirlSpiralforvrengning som virvler den utgående scenen inn i den innkommende scenen
diagonal-wipeEn diagonal hard kant-wipe som beveger seg fra ett hjørne til det motsatte
irisSirkulær iris som åpner eller lukker seg som en kamerablender
crosszoomBegge scener zoomer samtidig – den utgående zoomer inn, den innkommende zoomer ut

Overgangseksempler

Kinematisk fade med lang kryssfading:

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

Gli fra høyre (vanlig for sekvensielt innhold):

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

3D-kuberotasjon (dynamisk, moderne følelse):

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

Glitch-effekt (energisk, teknologisk fremoverlent):

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

Visuelle Effekter

Rendervid-lag støtter en rekke visuelle effekter gjennom filtre, blandingsmoduser, skygger og transformasjoner.

Filtre

Filtre anvendes via filters-arrayen 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 }
  ]
}
FilterVerdiområdeBeskrivelse
blur0+ (piksler)Gaussisk uskarphet – høyere verdier produserer mer uskarphet
brightness0+ (multiplikator)0 = svart, 1 = normal, 2 = dobbel lysstyrke
contrast0+ (multiplikator)0 = grå, 1 = normal, 2 = dobbel kontrast
grayscale0-10 = full farge, 1 = fullstendig desaturert
hue-rotate0-360 (grader)Roterer farger rundt fargehjulet
invert0-10 = normal, 1 = fullstendig inverterte farger
saturate0+ (multiplikator)0 = desaturert, 1 = normal, 2 = dobbel metning
sepia0-10 = normal, 1 = full sepia-tone

Blandingsmoduser

blendMode-egenskapen kontrollerer hvordan et lag komponeres med lagene under det:

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

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

Skygger

Tekst- og formlag støtter skyggeeffekter gjennom style-egenskapen:

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

Kombinere Effekter

Filtre, blandingsmoduser, opasitet og skygger kan alle kombineres på et enkelt lag for sofistikerte 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
    }
  }
}

Skrifttypekonfigurasjon

Rendervid støtter både Google Fonts (100+ familier innebygd) og tilpassede skrifttyper lastet fra eksterne URL-er.

Google Fonts

Deklarer Google Fonts i fonts.google-arrayen:

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

FeltTypeBeskrivelse
familystringGoogle Font-familienavn (eksakt match påkrevd)
weightsarrayArray av numeriske vekter å laste (100-900)

Vanlige skriftvekter: 100 (Tynn), 200 (Ekstra Lett), 300 (Lett), 400 (Vanlig), 500 (Medium), 600 (Halvfet), 700 (Fet), 800 (Ekstra Fet), 900 (Svart).

Tilpassede Skrifttyper

Last skrifttyper fra eksterne URL-er ved å bruke fonts.custom-arrayen:

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

Støttede skrifttypeformater: WOFF2 (anbefalt for minste filstørrelse), WOFF, TTF og OTF.

Bruke Skrifttyper i Lag

Referer til deklarerte skrifttyper etter familienavn i tekstlagstiler:

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

Rendervid inkluderer plattformspesifikke skrifttype-fallback-kjeder for å sikre konsistent rendering på tvers av forskjellige miljøer. Hvis en spesifisert skrifttype er utilgjengelig, faller rendereren tilbake til systemskrifttyper som matcher samme klassifisering (serif, sans-serif, monospace).


Utdataformater

Rendervid støtter et bredt spekter av utdataformater og kodeker for både video- og bilderendering.

Videoformater

FormatKodekFiltypeBest For
MP4H.264.mp4Maksimal kompatibilitet – web, mobil, sosiale medier
WebMVP8 / VP9.webmWebinnbygging med mindre filstørrelser
MOVProRes.movProfesjonelle redigeringsarbeidsflyter, tapsfri kvalitet
GIF.gifKorte animasjoner, sosial deling, e-post
MP4H.265 / HEVC.mp4Nyere enheter, 50% mindre filer enn H.264 ved samme kvalitet
WebMAV1.webmNeste generasjons kodek, beste komprimeringseffektivitet

Bildeformater

FormatFiltypeBest For
PNG.pngTapsfri kvalitet, gjennomsiktighetsstøtte
JPEG.jpgFotografier, mindre filstørrelser
WebP.webpModerne web, beste balanse mellom kvalitet og størrelse

Kvalitetsforhåndsinnstillinger

ForhåndsinnstillingBeskrivelse
draftRask rendering med redusert kvalitet – ideell for forhåndsvisning
standardBalansert kvalitet og filstørrelse – bra for de fleste brukstilfeller
highHøyere bitrate og kvalitet – for endelige leveranser
losslessMaksimal kvalitet uten komprimeringsartefakter

Oppløsningsstøtte

Rendervid støtter oppløsninger fra små miniatyrbilder opp til 8K:

OppløsningDimensjonerVanlig Bruk
SD640 x 480Miniatyrbilder, forhåndsvisninger
HD1280 x 720Webvideo, e-post
Full HD1920 x 1080YouTube, presentasjoner
2K2560 x 1440Høykvalitetsskjermer
4K UHD3840 x 2160Profesjonell, kringkasting
8K7680 x 4320Maksimal oppløsning, fremtidssikker

Bildefrekvenser fra 1 fps (lysbildefremvisninger) til 120 fps (sakte film, spillinnhold) støttes. Vanlige valg er 24 fps (kinematisk), 30 fps (web/sosial) og 60 fps (jevn bevegelse).


Fullstendig Eksempel

Her er en full Rendervid-mal som demonstrerer malsystemets nøkkelfunksjoner som fungerer sammen: dynamiske inndata, flere scener med overganger, lagdelte komposisjoner, animasjoner 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": "Slagord",
      "required": true,
      "default": "Fremtiden er her."
    },
    {
      "key": "heroImage",
      "type": "url",
      "label": "Hovedbilde",
      "required": true
    },
    {
      "key": "primaryColor",
      "type": "color",
      "label": "Primærfarge",
      "default": "#6C63FF"
    },
    {
      "key": "ctaText",
      "type": "string",
      "label": "Handlingsoppfordring",
      "default": "Lær Mer"
    }
  ],
  "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": "Introduserer",
            "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 malen lager en 20-sekunders produktlanseringsvideo med tre scener: en typografisk intro med forskjøvede tekstanimasjoner, en produktvisning med et flytende bilde og skrivemaskineffekt, og en avsluttende handlingsoppfordringsscene med en pulserende knapp. All tekst, farger og bilder drives av malvariabler, noe som gjør den fullstendig gjenbrukbar.


Neste Steg

  • Layer Components Reference – Dypdykk i hver av de 8 lagtypene med full egenskapsdokumentasjon og eksempler
  • AI Integration – Lær hvordan du genererer og manipulerer Rendervid-maler ved hjelp av AI, inkludert LLM-drevet malgenerering og innholdsbevisst rendering
  • Deployment Guide – Sett opp Rendervid for produksjon: serverside-rendering, skyutrulling, batchbehandling og API-integrasjon

Vanlige spørsmål

Hva er Rendervid-malformatet?

Rendervid-maler er JSON-filer som definerer strukturen, innholdet, animasjonene og utdatainnstillingene for en video eller et bilde. Hver mal inkluderer en utdatakonfigurasjon (dimensjoner, fps, varighet), inndatadefinisjoner for dynamiske variabler, en komposisjon med scener og lag, og valgfri skrifttype- og tilpassede komponentkonfigurasjoner.

Hvordan fungerer malvariabler i Rendervid?

Malvariabler bruker {{variableName}} syntaksen. Du definerer inndata i malens inputs-array med en nøkkel, type (string, number, boolean, color, url, array), etikett, beskrivelse og standardverdi. Ved renderingstidspunktet erstattes disse variablene med faktiske verdier, noe som gjør maler gjenbrukbare og dynamiske.

Hvor mange animasjonsforhåndsinnstillinger har Rendervid?

Rendervid inkluderer 40+ innebygde animasjonsforhåndsinnstillinger organisert i fire kategorier: inngangsanimasjoner (fadeIn, slideIn, scaleIn, bounceIn, etc.), utgangsanimasjoner (fadeOut, slideOut, zoomOut, etc.), vektleggingsanimasjoner (pulse, shake, bounce, swing, heartbeat, etc.), og fullstendig tilpassbare keyframe-animasjoner med 30+ easing-funksjoner.

Hvilke sceneoverganger er tilgjengelige?

Rendervid tilbyr 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 varighet og retningsparametere.

Hvilke utdataformater støtter Rendervid?

Rendervid støtter flere utdataformater inkludert MP4 (H.264), WebM (VP8/VP9), MOV (ProRes), GIF for video, og PNG, JPEG, WebP for bilder. Avanserte kodeker som H.265/HEVC og AV1 støttes også. Oppløsning går opp til 8K (7680x4320) med bildefrekvenser fra 1 til 120 fps.

Kan jeg bruke tilpassede skrifttyper i Rendervid-maler?

Ja, Rendervid støtter 100+ innebygde Google Fonts og tilpasset skrifttypeinnlasting fra URL-er i WOFF2, WOFF, TTF og OTF-formater. Du kan spesifisere skriftvekter fra 100-900 og konfigurere plattformspesifikke fallbacks for kompatibilitet på tvers av miljøer.

La oss bygge ditt eget AI-team

Vi hjelper bedrifter som din med å utvikle smarte chatboter, MCP-servere, AI-verktøy eller andre typer AI-automatisering for å erstatte mennesker i repeterende oppgaver i organisasjonen din.

Lær mer

Rendervid Komponenter - Lagtyper, React-komponenter og Visuell Editor
Rendervid Komponenter - Lagtyper, React-komponenter og Visuell Editor

Rendervid Komponenter - Lagtyper, React-komponenter og Visuell Editor

Utforsk alle Rendervid-komponenter: 8 innebygde lagtyper (tekst, bilde, video, form, lyd, gruppe, lottie, tilpasset), ferdigbygde React-komponenter, den visuell...

13 min lesing
Rendervid Components +3
Rendervid Distribusjon - Nettleser, Node.js, Sky og Docker Rendering
Rendervid Distribusjon - Nettleser, Node.js, Sky og Docker Rendering

Rendervid Distribusjon - Nettleser, Node.js, Sky og Docker Rendering

Distribuer Rendervid hvor som helst: nettleserbasert rendering for forhåndsvisninger, Node.js for server-side batch-prosessering, eller sky-rendering på AWS Lam...

17 min lesing
Rendervid Deployment +3
Rendervid: Det gratis Remotion-alternativet for AI-drevet videogenerering
Rendervid: Det gratis Remotion-alternativet for AI-drevet videogenerering

Rendervid: Det gratis Remotion-alternativet for AI-drevet videogenerering

Oppdag Rendervid, det gratis åpen kildekode-alternativet til Remotion for programmatisk videogenerering. AI-først design med MCP-integrasjon, JSON-maler, skygje...

13 min lesing
Rendervid Video Rendering +3