remotion-render

Renderiza videos desde código de componentes React/Remotion a través de inference.sh. Envía código TSX, obtén MP4. Soporta todas las APIs de Remotion: useCurrentFrame, useVideoConfig, spring, interpolate, AbsoluteFill, Sequence. Resolución, FPS, duración y códec configurables. Útil para: generación programática de videos, gráficos animados, diseño en movimiento, videos basados en datos, animaciones de React a video. Disparadores: remotion, renderizar video desde código, tsx a video, react video, video programático, remotion render, código a video, animado...

npx skills add https://github.com/qu-skills/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

Más skills de qu-skills

ai-video-generation
qu-skills
Genera videos de IA con Google Veo, Seedance 2.0, HappyHorse, Wan, Grok y más de 40 modelos a través de la CLI de inference.sh. Modelos: Veo 3.1, Veo 3, Seedance 2.0, HappyHorse 1.0, Wan 2.5, Grok Imagine Video, OmniHuman, Fabric, HunyuanVideo. Capacidades: texto a video, imagen a video, referencia a video, edición de video, sincronización de labios, animación de avatares, mejora de resolución de video, sonido foley. Uso para: videos para redes sociales, contenido de marketing, videos explicativos, demostraciones de productos, avatares de IA. Disparadores: generación de video, video de IA,...
videocreativemedia
ai-image-generation
qu-skills
Genera imágenes de IA con GPT-Image-2, FLUX, Gemini, Grok, Seedream, Reve y más de 50 modelos a través de la CLI de inference.sh. Modelos: GPT-Image-2, FLUX Dev LoRA, FLUX.2 Klein LoRA, Gemini 3 Pro Image, Grok Imagine, Seedream 4.5, Reve, ImagineArt. Capacidades: texto a imagen, imagen a imagen, inpainting, LoRA, edición de imágenes, escalado, renderizado de texto. Usos: arte de IA, maquetas de productos, arte conceptual, gráficos para redes sociales, imágenes de marketing, ilustraciones. Disparadores: flux, generación de imágenes, imagen de IA, texto a...
creativemediaimage
ai-avatar-video
qu-skills
Crea videos de avatar AI y videos de cabeza parlante a través de la CLI de inference.sh. Recomendado: P-Video-Avatar (el más rápido, más barato, TTS integrado). También: OmniHuman, Fabric, PixVerse. Audio: Inworld TTS-2 (más de 100 idiomas, control de emociones para personajes), ElevenLabs, Kokoro. Capacidades: avatares impulsados por audio, texto a avatar, videos de sincronización de labios, generación de cabeza parlante, presentadores virtuales, contenido UGC. Usar para: presentadores AI, videos explicativos, influencers virtuales, doblaje, videos de marketing, anuncios UGC, avatares de juegos,...
videocreativemedia
twitter-automation
qu-skills
Automatiza Twitter/X con publicación, interacción y gestión de usuarios mediante la CLI de inference.sh. Aplicaciones: x/post-tweet, x/post-create (con medios), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capacidades: publicar tweets, programar contenido, dar like a publicaciones, retweetear, enviar DMs, seguir usuarios, obtener perfiles. Uso para: automatización de redes sociales, programación de contenido, bots de interacción, crecimiento de audiencia, API de X. Disparadores: twitter api, x api, automatización de tweets, publicar en twitter, bot de twitter, automatización de redes sociales, x...
api
agent-browser
qu-skills
Automatización del navegador para agentes de IA a través de inference.sh. Navega por páginas web, interactúa con elementos usando referencias @e, toma capturas de pantalla, graba video. Capacidades: raspado web, llenado de formularios, clics, escritura, arrastrar y soltar, carga de archivos, ejecución de JavaScript. Usos: automatización web, extracción de datos, pruebas, navegación de agentes, investigación. Disparadores: navegador, automatización web, raspar, navegar, hacer clic, llenar formulario, captura de pantalla, navegar por la web, playwright, navegador sin cabeza, agente web, navegar por internet, grabar video
browser-automationweb-scrapingtesting
web-search
qu-skills
Búsqueda web y extracción de contenido con Tavily y Exa a través de la CLI de inference.sh. Aplicaciones: Tavily Search, Tavily Extract, Exa Search, Exa Answer, Exa Extract. Capacidades: búsqueda impulsada por IA, extracción de contenido, respuestas directas, investigación. Uso para: investigación, pipelines RAG, verificación de datos, agregación de contenido, agentes. Disparadores: búsqueda web, tavily, exa, api de búsqueda, extracción de contenido, investigación, búsqueda en internet, búsqueda IA, asistente de búsqueda, web scraping, rag, alternativa a Perplexity
researchweb-scrapingapi
agent-tools
qu-skills
Ejecuta más de 250 aplicaciones de IA mediante la CLI de inference.sh: generación de imágenes, creación de videos, LLMs, búsqueda, 3D, automatización de Twitter. Modelos: FLUX, Veo, Gemini, Grok, Claude, Seedance, OmniHuman, Tavily, Exa, OpenRouter y muchos más. Úsalo al ejecutar aplicaciones de IA, generar imágenes/videos, llamar a LLMs, buscar en la web o automatizar Twitter. Disparadores: inference.sh, infsh, modelo de IA, ejecutar IA, IA sin servidor, API de IA, flux, veo, API de Claude, generación de imágenes, generación de videos, openrouter, tavily, búsqueda en Exa, API de Twitter, grok
developmentapicreative
python-executor
qu-skills
Execute Python code in a safe sandboxed environment via [inference.sh](https://inference.sh). Pre-installed: NumPy, Pandas, Matplotlib, requests, BeautifulSoup, Selenium, Playwright, MoviePy, Pillow, OpenCV, trimesh, and 100+ more libraries. Use for: data processing, web scraping, image manipulation, video creation, 3D model processing, PDF generation, API calls, automation scripts. Triggers: python, execute code, run script, web scraping, data analysis, image processing, video editing, 3D...
developmentdata-analysisweb-scraping