remotion-render

Videos aus React/Remotion-Komponentencode über inference.sh rendern. TSX-Code übergeben, MP4 erhalten. Unterstützt alle Remotion-APIs: useCurrentFrame, useVideoConfig, spring, interpolate, AbsoluteFill, Sequence. Konfigurierbare Auflösung, FPS, Dauer, Codec. Verwendung für: programmatische Videogenerierung, animierte Grafiken, Bewegungsdesign, datengesteuerte Videos, React-Animationen zu Video. Auslöser: remotion, Video aus Code rendern, tsx zu Video, React-Video, programmatisches Video, Remotion-Render, Code zu Video, animiert...

npx skills add https://github.com/halt-catch-fire/skills --skill remotion-render

Install the belt CLI skill: npx skills add belt-sh/cli

Remotion Render

Render videos from React/Remotion component code via inference.sh CLI.

Remotion Render

Quick Start

Requires inference.sh CLI (belt). Install instructions

belt login

# Render a simple animation
belt app run infsh/remotion-render --input '{
  "code": "import { useCurrentFrame, AbsoluteFill } from \"remotion\"; export default function Main() { const frame = useCurrentFrame(); return <AbsoluteFill style={{backgroundColor: \"#000\", display: \"flex\", justifyContent: \"center\", alignItems: \"center\"}}><h1 style={{color: \"white\", fontSize: 100, opacity: frame / 30}}>Hello World</h1></AbsoluteFill>; }",
  "duration_seconds": 3,
  "fps": 30,
  "width": 1920,
  "height": 1080
}'

Input Schema

ParameterTypeRequiredDescription
codestringYesReact component TSX code. Must export default a component.
composition_idstringNoComposition ID to render
propsobjectNoProps passed to the component
widthnumberNoVideo width in pixels
heightnumberNoVideo height in pixels
fpsnumberNoFrames per second
duration_secondsnumberNoVideo duration in seconds
codecstringNoOutput codec

Available Imports

Your TSX code can import from remotion and react:

// Remotion APIs
import {
  useCurrentFrame,
  useVideoConfig,
  spring,
  interpolate,
  AbsoluteFill,
  Sequence,
  Audio,
  Video,
  Img
} from "remotion";

// React
import React, { useState, useEffect } from "react";

Examples

Fade-In Text

belt app run infsh/remotion-render --input '{
  "code": "import { useCurrentFrame, AbsoluteFill, interpolate } from \"remotion\"; export default function Main() { const frame = useCurrentFrame(); const opacity = interpolate(frame, [0, 30], [0, 1]); return <AbsoluteFill style={{backgroundColor: \"#1a1a2e\", display: \"flex\", justifyContent: \"center\", alignItems: \"center\"}}><h1 style={{color: \"#eee\", fontSize: 80, opacity}}>Welcome</h1></AbsoluteFill>; }",
  "duration_seconds": 2,
  "fps": 30,
  "width": 1920,
  "height": 1080
}'

Animated Counter

belt app run infsh/remotion-render --input '{
  "code": "import { useCurrentFrame, useVideoConfig, AbsoluteFill } from \"remotion\"; export default function Main() { const frame = useCurrentFrame(); const { fps, durationInFrames } = useVideoConfig(); const progress = Math.floor((frame / durationInFrames) * 100); return <AbsoluteFill style={{backgroundColor: \"#000\", display: \"flex\", justifyContent: \"center\", alignItems: \"center\", flexDirection: \"column\"}}><h1 style={{color: \"#fff\", fontSize: 200}}>{progress}%</h1><p style={{color: \"#666\", fontSize: 30}}>Loading...</p></AbsoluteFill>; }",
  "duration_seconds": 5,
  "fps": 60,
  "width": 1080,
  "height": 1080
}'

Spring Animation

belt app run infsh/remotion-render --input '{
  "code": "import { useCurrentFrame, useVideoConfig, spring, AbsoluteFill } from \"remotion\"; export default function Main() { const frame = useCurrentFrame(); const { fps } = useVideoConfig(); const scale = spring({ frame, fps, config: { damping: 10, stiffness: 100 } }); return <AbsoluteFill style={{backgroundColor: \"#6366f1\", display: \"flex\", justifyContent: \"center\", alignItems: \"center\"}}><div style={{width: 200, height: 200, backgroundColor: \"white\", borderRadius: 20, transform: `scale(${scale})`}} /></AbsoluteFill>; }",
  "duration_seconds": 2,
  "fps": 60,
  "width": 1080,
  "height": 1080
}'

With Props

belt app run infsh/remotion-render --input '{
  "code": "import { AbsoluteFill } from \"remotion\"; export default function Main({ title, subtitle }) { return <AbsoluteFill style={{backgroundColor: \"#000\", display: \"flex\", justifyContent: \"center\", alignItems: \"center\", flexDirection: \"column\"}}><h1 style={{color: \"#fff\", fontSize: 80}}>{title}</h1><p style={{color: \"#888\", fontSize: 40}}>{subtitle}</p></AbsoluteFill>; }",
  "props": {"title": "My Video", "subtitle": "Created with Remotion"},
  "duration_seconds": 3,
  "fps": 30,
  "width": 1920,
  "height": 1080
}'

Sequence Animation

belt app run infsh/remotion-render --input '{
  "code": "import { useCurrentFrame, AbsoluteFill, Sequence, interpolate } from \"remotion\"; function FadeIn({ children }) { const frame = useCurrentFrame(); const opacity = interpolate(frame, [0, 20], [0, 1]); return <div style={{ opacity }}>{children}</div>; } export default function Main() { return <AbsoluteFill style={{backgroundColor: \"#000\", display: \"flex\", justifyContent: \"center\", alignItems: \"center\", flexDirection: \"column\", gap: 20}}><Sequence from={0}><FadeIn><h1 style={{color: \"#fff\", fontSize: 60}}>First</h1></FadeIn></Sequence><Sequence from={30}><FadeIn><h1 style={{color: \"#fff\", fontSize: 60}}>Second</h1></FadeIn></Sequence><Sequence from={60}><FadeIn><h1 style={{color: \"#fff\", fontSize: 60}}>Third</h1></FadeIn></Sequence></AbsoluteFill>; }",
  "duration_seconds": 4,
  "fps": 30,
  "width": 1920,
  "height": 1080
}'

Python SDK

from inferencesh import inference

client = inference()

result = client.run({
    "app": "infsh/remotion-render",
    "input": {
        "code": """
import { useCurrentFrame, AbsoluteFill, interpolate } from "remotion";

export default function Main() {
  const frame = useCurrentFrame();
  const opacity = interpolate(frame, [0, 30], [0, 1]);

  return (
    <AbsoluteFill style={{
      backgroundColor: "#1a1a2e",
      display: "flex",
      justifyContent: "center",
      alignItems: "center"
    }}>
      <h1 style={{ color: "#eee", fontSize: 80, opacity }}>
        Hello from Python
      </h1>
    </AbsoluteFill>
  );
}
""",
        "duration_seconds": 3,
        "fps": 30,
        "width": 1920,
        "height": 1080
    }
})

print(result["output"]["video"])

Streaming Progress

for update in client.run({
    "app": "infsh/remotion-render",
    "input": {
        "code": "...",
        "duration_seconds": 10
    }
}, stream=True):
    if update.get("progress"):
        print(f"Rendering: {update['progress']}%")
    if update.get("output"):
        print(f"Video: {update['output']['video']}")

Related Skills

# Remotion best practices (component patterns)
npx skills add remotion-dev/skills@remotion-best-practices

# AI video generation (for AI-generated clips)
npx skills add inference-sh/skills@ai-video-generation

# Image generation (for video assets)
npx skills add inference-sh/skills@ai-image-generation

# Python SDK reference
npx skills add inference-sh/skills@python-sdk

# Full platform skill
npx skills add inference-sh/skills@infsh-cli

Documentation

Mehr Skills von halt-catch-fire

ai-image-generation
halt-catch-fire
Generieren Sie KI-Bilder mit GPT-Image-2, FLUX, Gemini, Grok, Seedream, Reve und über 50 Modellen über die inference.sh CLI. Modelle: GPT-Image-2, FLUX Dev LoRA, FLUX.2 Klein LoRA, Gemini 3 Pro Image, Grok Imagine, Seedream 4.5, Reve, ImagineArt. Fähigkeiten: Text-zu-Bild, Bild-zu-Bild, Inpainting, LoRA, Bildbearbeitung, Hochskalierung, Textrendering. Verwendung für: KI-Kunst, Produkt-Mockups, Konzeptkunst, Social-Media-Grafiken, Marketing-Visuals, Illustrationen. Auslöser: flux, Bildgenerierung, KI-Bild, Text zu...
creativemediaimage
ai-video-generation
halt-catch-fire
Erstelle KI-Videos mit Google Veo, Seedance 2.0, HappyHorse, Wan, Grok und 40+ Modellen über die inference.sh CLI. Modelle: Veo 3.1, Veo 3, Seedance 2.0, HappyHorse 1.0, Wan 2.5, Grok Imagine Video, OmniHuman, Fabric, HunyuanVideo. Fähigkeiten: Text-zu-Video, Bild-zu-Video, Referenz-zu-Video, Videobearbeitung, Lippen-Sync, Avatar-Animation, Video-Upscaling, Foley-Sound. Verwendung für: Social-Media-Videos, Marketinginhalte, Erklärvideos, Produktdemos, KI-Avatare. Auslöser: Videoerstellung, KI-Video,...
creativevideomedia
twitter-automation
halt-catch-fire
Automatisiere Twitter/X mit Posting, Engagement und Benutzerverwaltung über die inference.sh CLI. Apps: x/post-tweet, x/post-create (mit Medien), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Fähigkeiten: Tweets posten, Inhalte planen, Beiträge liken, retweeten, DMs senden, Benutzern folgen, Profile abrufen. Verwendung für: Social-Media-Automatisierung, Inhaltsplanung, Engagement-Bots, Zielgruppenwachstum, X API. Auslöser: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x...
marketingapicommunication
ai-avatar-video
halt-catch-fire
Erstelle KI-Avatar- und Talking-Head-Videos über die inference.sh CLI. Empfohlen: P-Video-Avatar (schnellste, günstigste, integrierte TTS). Auch: OmniHuman, Fabric, PixVerse. Audio: Inworld TTS-2 (100+ Sprachen, Emotionssteuerung für Charaktere), ElevenLabs, Kokoro. Fähigkeiten: audiogesteuerte Avatare, Text-zu-Avatar, Lipsync-Videos, Talking-Head-Generierung, virtuelle Präsentatoren, UGC-Inhalte. Verwenden für: KI-Präsentatoren, Erklärvideos, virtuelle Influencer, Synchronisation, Marketingvideos, UGC-Anzeigen, Gaming-Avatare,...
videocreativemedia
agent-browser
halt-catch-fire
Browser-Automatisierung für KI-Agenten über inference.sh. Navigieren Sie auf Webseiten, interagieren Sie mit Elementen über @e-Referenzen, machen Sie Screenshots, nehmen Sie Video auf. Fähigkeiten: Web Scraping, Formularausfüllen, Klicken, Tippen, Drag & Drop, Datei-Upload, JavaScript-Ausführung. Verwendung für: Web-Automatisierung, Datenextraktion, Testen, Agenten-Browsing, Recherche. Auslöser: Browser, Web-Automatisierung, Scrapen, Navigieren, Klicken, Formular ausfüllen, Screenshot, Web durchsuchen, Playwright, Headless-Browser, Web-Agent, Internet surfen, Video aufnehmen
browser-automationweb-scrapingtesting
web-search
halt-catch-fire
We need to translate the given English text into German, preserving the specified name "web-search" and other technical terms. The text describes a web search and content extraction skill using Tavily and Exa via inference.sh CLI. It lists apps, capabilities, uses, and triggers. We must not add any extra commentary or labels. The translation should be accurate and natural in German. Let's break down the text: "Web search and content extraction with Tavily and Exa via inference.sh CLI." -> "Websuche und Inhaltsextraktion mit Tavily und Exa über die inference.sh CLI." "Apps: Tavily Search, Tavily Extract, Exa Search, Exa Answer, Exa Extract." -> "Apps: Tavily Search, Tavily Extract, Exa Search, Exa Answer, Exa Extract." (preserve names) "Capabilities: AI-powered search, content extraction, direct answers, research." -> "Fähigkeiten: KI-gestützte Suche, Inhaltsextraktion, direkte Antworten, Recherche
researchweb-scrapingapi
infsh-cli
halt-catch-fire
Führe über 250 KI-Apps via inference.sh CLI aus – Bildgenerierung, Videocrstellung, LLMs, Suche, 3D, Twitter-Automatisierung. Modelle: FLUX, Veo, Gemini, Grok, Claude, Seedance, OmniHuman, Tavily, Exa, OpenRouter und viele mehr. Verwenden beim Ausführen von KI-Apps, Generieren von Bildern/Videos, Aufrufen von LLMs, Websuche oder Automatisieren von Twitter. Auslöser: inference.sh, infsh, KI-Modell, run ai, serverless ai, ai api, flux, veo, claude api, Bildgenerierung, Videogenerierung, openrouter, tavily, exa search, twitter api, grok
developmentapicreative
landing-page-design
halt-catch-fire
Optimierung der Landingpage-Konversion mit Layoutregeln, Hero-Bereich-Design und CTA-Psychologie. Behandelt die Above-the-Fold-Formel, Platzierung sozialer Beweise, mobiles Design und F-Pattern-Leseverhalten. Verwendung für: Startup-Landingpages, Produktseiten, SaaS-Marketing, Konversionsoptimierung. Auslöser: Landingpage, Hero-Bereich, Above the Fold, Konversionsoptimierung, Landingpage-Design, CTA-Button, Hero-Bild, Landingpage-Layout, SaaS-Landingpage, Produktseitendesign, Konversionsrate, Landingpage...