remotion-render

bởi qu-skills

Kết xuất video từ mã thành phần React/Remotion thông qua inference.sh. Nhập mã TSX, nhận MP4. Hỗ trợ tất cả API Remotion: useCurrentFrame, useVideoConfig, spring, interpolate, AbsoluteFill, Sequence. Có thể cấu hình độ phân giải, FPS, thời lượng, codec. Sử dụng cho: tạo video theo chương trình, đồ họa hoạt hình, thiết kế chuyển động, video dựa trên dữ liệu, chuyển đổi hoạt hình React thành video. Kích hoạt: remotion, kết xuất video từ mã, tsx thành video, react video, video theo chương trình, kết xuất remotion, mã thành video, hoạt hình...

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

Thêm skills từ qu-skills

ai-video-generation
qu-skills
Tạo video AI với Google Veo, Seedance 2.0, HappyHorse, Wan, Grok và hơn 40 mô hình qua CLI inference.sh. Các mô hình: Veo 3.1, Veo 3, Seedance 2.0, HappyHorse 1.0, Wan 2.5, Grok Imagine Video, OmniHuman, Fabric, HunyuanVideo. Khả năng: văn bản thành video, hình ảnh thành video, tham chiếu thành video, chỉnh sửa video, đồng bộ môi, hoạt ảnh đại diện, nâng cấp video, âm thanh foley. Sử dụng cho: video mạng xã hội, nội dung tiếp thị, video giải thích, demo sản phẩm, đại diện AI. Kích hoạt: tạo video, video AI,...
videocreativemedia
ai-image-generation
qu-skills
Tạo hình ảnh AI với GPT-Image-2, FLUX, Gemini, Grok, Seedream, Reve và hơn 50 mô hình qua CLI inference.sh. Mô hình: GPT-Image-2, FLUX Dev LoRA, FLUX.2 Klein LoRA, Gemini 3 Pro Image, Grok Imagine, Seedream 4.5, Reve, ImagineArt. Khả năng: văn bản thành hình ảnh, hình ảnh thành hình ảnh, inpainting, LoRA, chỉnh sửa hình ảnh, nâng cao độ phân giải, hiển thị văn bản. Sử dụng cho: nghệ thuật AI, mô phỏng sản phẩm, nghệ thuật ý tưởng, đồ họa mạng xã hội, hình ảnh tiếp thị, minh họa. Kích hoạt: flux, tạo hình ảnh, hình ả
creativemediaimage
ai-avatar-video
qu-skills
Tạo video AI avatar và video người nói qua CLI inference.sh. Đề xuất: P-Video-Avatar (nhanh nhất, rẻ nhất, TTS tích hợp). Ngoài ra: OmniHuman, Fabric, PixVerse. Âm thanh: Inworld TTS-2 (hơn 100 ngôn ngữ, điều chỉnh cảm xúc cho nhân vật), ElevenLabs, Kokoro. Khả năng: avatar điều khiển bằng âm thanh, văn bản thành avatar, video đồng bộ môi, tạo người nói, người thuyết trình ảo, nội dung UGC. Sử dụng cho: người thuyết trình AI, video giải thích, người ảnh hưởng ảo, lồng tiếng, video tiếp thị, quảng cáo UGC, avatar trò chơi,...
videocreativemedia
twitter-automation
qu-skills
Tự động hóa Twitter/X với tính năng đăng bài, tương tác và quản lý người dùng qua CLI inference.sh. Ứng dụng: x/post-tweet, x/post-create (có media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Khả năng: đăng tweet, lên lịch nội dung, thích bài, retweet, gửi DM, theo dõi người dùng, lấy hồ sơ. Sử dụng cho: tự động hóa mạng xã hội, lên lịch nội dung, bot tương tác, tăng trưởng khán giả, X API. Kích hoạt: twitter api, x api, tự động hóa tweet, đăng lên twitter, twitter bot, tự động hóa mạng xã hội, x...
api
agent-browser
qu-skills
Tự động hóa trình duyệt cho các tác nhân AI thông qua inference.sh. Điều hướng trang web, tương tác với các phần tử bằng @e refs, chụp ảnh màn hình, ghi video. Khả năng: quét web, điền biểu mẫu, nhấp chuột, gõ chữ, kéo-thả, tải tệp lên, thực thi JavaScript. Sử dụng cho: tự động hóa web, trích xuất dữ liệu, kiểm thử, duyệt web của tác nhân, nghiên cứu. Kích hoạt: trình duyệt, tự động hóa web, quét, điều hướng, nhấp chuột, điền biểu mẫu, chụp ảnh màn hình, duyệt web, playwright, trình duyệt không đầu, tác nhân web, lướt internet,
browser-automationweb-scrapingtesting
web-search
qu-skills
Tìm kiếm web và trích xuất nội dung với Tavily và Exa thông qua CLI inference.sh. Ứng dụng: Tavily Search, Tavily Extract, Exa Search, Exa Answer, Exa Extract. Khả năng: tìm kiếm hỗ trợ AI, trích xuất nội dung, trả lời trực tiếp, nghiên cứu. Sử dụng cho: nghiên cứu, pipeline RAG, kiểm tra thông tin, tổng hợp nội dung, tác nhân. Kích hoạt: tìm kiếm web, tavily, exa, api tìm kiếm, trích xuất nội dung, nghiên cứu, tìm kiếm internet, tìm kiếm AI, trợ lý tìm kiếm, thu thập dữ liệu web, rag, thay thế perplexity
researchweb-scrapingapi
agent-tools
qu-skills
Chạy hơn 250 ứng dụng AI qua CLI inference.sh - tạo hình ảnh, tạo video, LLM, tìm kiếm, 3D, tự động hóa Twitter. Các mô hình: FLUX, Veo, Gemini, Grok, Claude, Seedance, OmniHuman, Tavily, Exa, OpenRouter và nhiều hơn nữa. Sử dụng khi chạy ứng dụng AI, tạo hình ảnh/video, gọi LLM, tìm kiếm web hoặc tự động hóa Twitter. Kích hoạt: inference.sh, infsh, ai model, run ai, serverless ai, ai api, flux, veo, claude api, image generation, video generation, openrouter, tavily, exa search, twitter api, 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