MÓDULO 2.1

🎬 O que é o HyperFrames

Entenda do zero o framework open-source que converte HTML animado em MP4 usando Chrome headless e FFmpeg — tudo na sua máquina, sem nuvem e sem custo por render.

6
Tópicos
~25
Minutos
Básico
Nível
Teoria
Tipo
<HTML> + GSAP animado Chrome headless captura frame a frame FFmpeg encoda .mp4 ① DESIGN ② RENDER ③ ENCODE 🔊 Kokoro TTS pf_dora · PT-BR · --speed 0.98 · sem chave · sem espeak-ng HyperFrames HTML → MP4 · LOCAL · OPEN SOURCE
1

🎯 O que é o HyperFrames

HyperFrames é um framework open-source que transforma páginas HTML animadas em arquivos MP4, frame a frame, com precisão total. Repositório oficial: heygen-com/hyperframes no GitHub.

Conceito Principal

HyperFrames trata o navegador como uma câmera de cinema. Cada frame do vídeo é uma captura exata do DOM no instante t — sem codec de tela, sem perda de antialiasing, sem flickering.

O resultado é um MP4 com qualidade de renderização de browser: fontes perfeitas, SVG vetorial, sombras e gradientes sem degradação.

✓ O que o HyperFrames É
  • Framework open-source (MIT), grátis para sempre
  • Roda 100% local: sem conta, sem chave de API
  • Saída determinística: mesmo HTML → mesmo MP4
  • Integra com qualquer lib JS: GSAP, Three.js, D3
✗ O que o HyperFrames NÃO É
  • Não é gravador de tela (não captura apps externos)
  • Não é editor de vídeo não-linear (sem timeline GUI)
  • Não depende de serviço em nuvem
  • Não usa IA generativa para imagens ou vozes
📦 Stack técnico exato
Chrome headless
Renderiza o HTML e captura screenshots em sequência, frame a frame.
FFmpeg
Encoda os frames capturados em H.264 MP4 com áudio embutido.
Node.js / npx
Orquestra o pipeline: init → lint → render — tudo via npx hyperframes.
Conceitos-chave
🌐
Open-source
MIT license
💻
Local-first
Sem cloud
🎞️
Frame-by-frame
Qualidade máxima
npx CLI
Zero config
2

🔄 HTML → MP4

Como uma página HTML animada com GSAP se torna um vídeo MP4 renderizado quadro a quadro — o coração do HyperFrames.

Fluxo de transformação
1
Você escreve HTML + GSAP

Um arquivo index.html define cada cena com HTML/CSS. As animações são codificadas em GSAP dentro de uma função anim() que recebe t (tempo em segundos).

2
Chrome headless "avança o tempo"

Para cada frame, o HyperFrames chama anim(t) no browser, aguarda o DOM estabilizar, e dispara uma screenshot PNG de alta resolução. A 30 fps, são 30 screenshots por segundo de vídeo.

3
FFmpeg encoda os frames

Os PNGs são passados ao FFmpeg, que os encoda em H.264 com o áudio WAV gerado pelo Kokoro TTS — produzindo o MP4 final com narração sincronizada.

4
MP4 pronto para publicar

O vídeo resultante fica em renders/nome-16x9.mp4 ou renders/nome-9x16.mp4, pronto para upload no YouTube ou Shorts.

💡
Por que frame a frame e não gravação de tela?

Gravação de tela captura em tempo real — se o CPU estiver lento, o vídeo fica quebrado. O HyperFrames controla o tempo virtualmente: nenhum frame é perdido independentemente da velocidade da máquina.

Estrutura da função anim()
// build-index.mjs (trecho da cena 1)
function scene1() {
return `<div class="scene">...</div>`;
}

function anim(t) {
// t = tempo em segundos dentro da cena
if (t === 0) gsap.set(...);
gsap.to('.title', { opacity: 1, duration: 0.5 });
}
Conceitos-chave
🖼️
Frame capturado
30 fps padrão
⏱️
Tempo virtual
Sem lag de CPU
🎨
GSAP
Animações suaves
🎞️
H.264 MP4
Saída final
3

🔊 TTS local com Kokoro

Narração PT-BR gerada 100% na sua máquina, com a voz pf_dora, sem chave de API e sem depender de espeak-ng. Kokoro cuida da fonética do português.

Por que Kokoro e não outra engine?

A maioria dos motores TTS open-source usa espeak-ng para fonemizar — e espeak-ng é notoriamente ruim em português. Kokoro tem seu próprio fonemizador PT-BR, produzindo voz mais natural sem deps externas.

Comando exato (narration-template.sh)
# Gera narração da cena 1
npx hyperframes tts "assets/txt/s1.txt" \
--voice pf_dora \
--speed 0.98 \
--output assets/audio/s1.wav

# Medir duração do áudio gerado
ffprobe -v error -show_entries format=duration \
-of default=noprint_wrappers=1:nokey=1 \
assets/audio/s1.wav
✓ Boas práticas de narração
  • Escreva o texto como se fosse fala (expanda siglas)
  • Use --speed 0.98 para voz mais natural
  • Meça cada WAV com ffprobe antes de montar
  • Arquivos de texto em assets/txt/sN.txt
✗ Erros comuns
  • Não instale espeak-ng — Kokoro não usa e conflita
  • Não use velocidade acima de 1.05 (voz metálica)
  • Não esqueça de baixar o modelo na 1ª execução (~340 MB)
  • Não coloque siglas em maiúsculas sem expandir (ex: "GSAP" → "ji-sap")
💡
Vozes PT-BR disponíveis

Além de pf_dora (feminina, padrão recomendado), há pm_alex e pm_santa. A primeira execução baixa ~340 MB do modelo Kokoro automaticamente.

Conceitos-chave
🎙️
pf_dora
Voz PT-BR
🚫
Sem espeak-ng
Fonética nativa
🔑
Sem chave
Zero config
📁
WAV output
assets/audio/
4

💻 Tudo local, sem API

O HyperFrames roda inteiramente na máquina do usuário — sem nuvem, sem custo por render, sem enviar conteúdo para servidores externos.

⚠️
Atenção: privacidade e custo

Ferramentas SaaS de vídeo (Synthesia, HeyGen, Pictory) cobram por minuto renderizado e seus slides/roteiros são processados em servidores de terceiros. Com HyperFrames: custo zero por render e nenhum conteúdo sai da sua máquina.

HyperFrames vs SaaS de vídeo
Aspecto HyperFrames SaaS (Synthesia etc.)
Custo por vídeo R$ 0,00 Plano mensal obrigatório
Privacidade do conteúdo 100% local Sobe para servidores
Personalização visual HTML/CSS ilimitado Templates fixos
Chave de API Não precisa Obrigatória
💡
Ideal para cursos e conteúdo proprietário

Se você produz cursos com conteúdo sensível, código interno ou metodologias próprias, manter tudo local é essencial. Cada render acontece sem conexão obrigatória com a internet.

Conceitos-chave
🔒
Privacidade total
Zero dados externos
💸
Custo zero/render
Ilimitado
🌐
Offline-capable
Sem internet
5

📐 Dois formatos: 16:9 e 9:16

Do mesmo projeto HTML, o HyperFrames gera YouTube (1920×1080) e Shorts/Reels (1080×1920) com um único flag de linha de comando.

Um projeto, duas saídas

O gerador build-index.mjs aceita o flag --vertical. Quando passado, reescreve o index.html em 1080×1920 e o HyperFrames renderiza o MP4 vertical — sem duplicar código de cena.

Comandos de render (os dois formatos)
# 16:9 — YouTube (1920×1080)
node build-index.mjs &&
npx hyperframes render --quality high \
--output renders/meu-video-16x9.mp4

# 9:16 — Shorts / Reels (1080×1920)
node build-index.mjs --vertical &&
npx hyperframes render --quality high \
--output renders/meu-video-9x16.mp4
📊 Dimensões e destinos
16:9 — Horizontal
Resolução: 1920 × 1080 px
Destino: YouTube, Vimeo, LinkedIn
Flag: node build-index.mjs (sem flag)
9:16 — Vertical
Resolução: 1080 × 1920 px
Destino: YouTube Shorts, Instagram Reels, TikTok
Flag: node build-index.mjs --vertical
💡
Dica de workflow

Use --quality draft primeiro para conferir frames individuais rapidamente. Só depois rode --quality high para o MP4 final — economiza tempo nas iterações.

Conceitos-chave
📺
1920×1080
YouTube
📱
1080×1920
Shorts/Reels
🚩
--vertical
Flag único
🔁
Reaproveitamento
Mesmo projeto
6

🧭 Quando usar o HyperFrames

Vídeos explicativos, tutoriais técnicos, onboarding de produto — qualquer situação onde você quer controle total sobre o visual e custo zero por render.

✓ Use HyperFrames quando...
  • Criar vídeos explicativos de código ou conceitos técnicos
  • Produzir tutoriais step-by-step com animações precisas
  • Montar onboarding de produto com design de marca própria
  • Precisar de 16:9 E 9:16 do mesmo conteúdo
  • Querer custo zero mesmo em produção de alto volume
✗ Prefira outro tool quando...
  • Precisar capturar interações reais de aplicativos
  • O vídeo exige câmera de talking head (avatar realista)
  • Edição não-linear complexa (Adobe Premiere / DaVinci)
  • Sem Node.js disponível no ambiente
Casos de uso típicos no INEMA.CLUB
🎓
Vídeos de curso

Slides animados com código, diagramas e narração local. Mesma qualidade toda vez, sem variação de plataforma.

🚀
Onboarding de produto

Vídeos de boas-vindas e feature tours com design dark premium da marca — sem depender de designers ou SaaS.

📢
Lançamentos

Teaser de produto em 9:16 para Reels e 16:9 para YouTube — gerados do mesmo HTML em minutos.

💡
Regra de ouro

Se você consegue descrever o vídeo como "slides com animações + narração", o HyperFrames é a ferramenta certa. Se precisa de câmera ao vivo ou captura de app, use screencast.

Conceitos-chave
🎬
Explicativo
Vídeo técnico
🎓
Tutorial
Passo a passo
🚀
Onboarding
Produto/SaaS
🎯
Controle total
HTML/CSS livre

📋 Resumo do Módulo 2.1

O que você aprendeu
  • HyperFrames é open-source, local, MIT — sem custo por render
  • Stack: Chrome headless captura frames + FFmpeg encoda MP4
  • HTML + GSAP → função anim(t) → frames → MP4
  • TTS Kokoro: pf_dora --speed 0.98, sem espeak-ng, sem chave
  • 16:9 (1920×1080) e 9:16 (1080×1920) do mesmo projeto
  • Ideal para explicativos, tutoriais e onboarding com design próprio
Próximo módulo
2.2
🛠️ Setup & pré-requisitos
Instale Node.js, Chrome, FFmpeg e o HyperFrames CLI. Configure o ambiente do zero até o primeiro npx hyperframes init.
Ir para o módulo 2.2 →