Communitygithub.com

Pixerate/pixerate-video-editor

Como editar projetos de vídeo no editor de vídeo não linear Pixerate através de suas ferramentas de agente - adicionando ativos de vídeo, áudio e imagem, construindo um corte bruto em trilhas de vídeo e áudio, inserindo, sobrescrevendo, movendo, cortando, dividindo e excluindo com ripple, edições slip, slide e roll, lift e extract de um intervalo de tempo, cortes razor através das trilhas, trilhas sync-locked, opacidade, volume e transform com keyframes, fechamento de lacunas, clipes de título e cor, fades, volume e velocidade, crossfade, transições dip e wipe com handles, cortes J e L, marcadores, verificação do projeto, clipes de ajuste sobre trilhas, máscaras de clipe, LUTs protegidos para tons de pele, planos de edição propostos para revisão antes de serem aplicados, efeitos de provedor (efeitos de clipe, clipes de efeito, transições de efeito), renderização de quadros e folhas de contato, e exportação de um comando ffmpeg ou um EDL CMX 3600. Use quando ferramentas de vídeo como get_video_project, add_video_clip ou edit_video estiverem disponíveis, ou quando solicitado a cortar, aparar, montar, sequenciar ou exportar material em uma linha do tempo.

O que é pixerate-video-editor?

O Pixerate é um editor de vídeo não linear (NLE) baseado em JSON, acessível através de ferramentas de agente de IA. Ele permite que agentes construam e refinem projetos de vídeo programaticamente, desde a ingestão de mídia até a exportação final. O projeto é representado como um objeto JSON contendo configurações (tamanho do quadro, fps), ativos (arquivos de vídeo, áudio e imagem), trilhas e marcadores. As trilhas são ordenadas de cima para baixo, com trilhas de vídeo desenhando sobre as posteriores. Cada clipe possui propriedades como start e duration na linha do tempo, além de parâmetros como speed, volume, fadeIn, fadeOut, opacidade e transformações. O sistema suporta sequências aninhadas, clipes compostos, keyframes para animação, efeitos de provedor (filtros, sobreposições, geradores e títulos) e uma ampla gama de operações de edição como cut, trim, slip, slide, roll, lift, extract e ripple delete. O fluxo de trabalho recomendado envolve ler o projeto atual, adicionar ativos de mídia, marcar a estrutura, montar um corte bruto em lote via edit_video, refinar com ferramentas individuais, cortar por texto usando transcrições, verificar o projeto, visualizar quadros e exportar. Antes de aplicar alterações significativas, o agente deve propor um plano usando plan_video_edits para revisão do usuário. O sistema também oferece suporte a recursos avançados como clipes de ajuste para looks sobre vários clipes, máscaras para alterações localizadas e LUTs protegidos para tons de pele. As práticas recomendadas incluem cortar na ação, evitar jump cuts, usar cortes J e L, usar transições com moderação, escolher a ferramenta de trim correta (roll, slip, slide), usar keyframes com moderação, apertar o diálogo por texto primeiro, fechar lacunas não intencionais e normalizar o volume de entrega. A ferramenta é útil para qualquer desenvolvedor ou usuário que precise automatizar a edição de vídeo, como cortar, aparar, montar, sequenciar ou exportar material em uma linha do tempo. Ela se integra perfeitamente com agentes de IA como Claude Code, Cursor e Codex, permitindo que eles realizem tarefas complexas de edição de vídeo sem intervenção manual.

Funciona com~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/Pixerate/editor/tree/HEAD/packages/core/skills/pixerate-video-editor

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Editor de vídeo Pixerate

Um projeto é JSON simples: tamanho do quadro, fps, um fundo, ativos (arquivos de vídeo, áudio ou imagem com um src e, para vídeo e áudio, uma duration), trilhas listadas de cima para baixo (trilhas de vídeo contêm mídia, títulos e clipes de cor; trilhas de áudio contêm som; uma trilha de vídeo anterior desenha sobre uma posterior) e marcadores. Um clipe tem um start e duration na linha do tempo; um clipe de mídia também tem um ponto in em seu ativo, speed, volume, muted; todo clipe pode ter fadeIn, fadeOut, opacity, fit e transform, e uma transition do clipe que termina onde ele começa na mesma trilha.

Um projeto também pode conter sequências aninhadas ({ id, name, tracks }, sua própria linha do tempo começando em 0). Um clipe composto (type: "sequence", sequence, in) reproduz um trecho de uma como uma única imagem e um único som: sua opacidade, transformação, mesclagem, gradação, LUT, fades, transições e animações se aplicam ao composto da sequência, e seu volume, muted e fades se aplicam à mixagem da sequência. Clipes compostos reproduzem em velocidade normal (sem speed ou rampa), e os clipes dentro de uma sequência podem ser lidos (list_video_sequences) mas ainda não editados.

Todos os tempos estão em milissegundos na linha do tempo (ou na fonte para in). IDs: trilhas parecem v1 / a1, clipes como c1, marcadores m1; você pode definir seus próprios IDs ao adicionar. Leia-os de get_video_project; nunca os invente.

Para erros, nomes de ferramentas com namespace e convenções de desfazer, veja pixerate-agent-tools.

Habilidades de fluxo de trabalho

Para esses trabalhos, carregue também a habilidade de fluxo de trabalho: ela tem o método, as verificações entre as etapas e as armadilhas, e usa as ferramentas abaixo.

  • pixerate-talking-head-edit: limpeza de diálogo por transcrição: preenchimentos, pausas, gaguejos.
  • pixerate-bgm-alignment: cortar na batida, abaixar música sob a fala, volume.
  • pixerate-video-social-cut: reenquadramentos verticais, o gancho primeiro, durações de plataforma, títulos na área segura.
  • pixerate-video-colour-grade: corrigir e combinar planos, um look em um clipe de ajuste, LUTs e pele.
  • pixerate-video-montage: seleções na batida, ritmo, transições, música e o final.

Método de trabalho

  1. Leia. get_video_project para configurações, ativos, trilhas, clipes (com fim e intervalo de origem), um resumo de cada sequência aninhada, marcadores e problemas. Quando houver clipes compostos, list_video_sequences mostra o que eles contêm. Defina o tamanho do quadro e fps primeiro com set_video_settings se o projeto for novo; alterá-los depois desloca os limites baseados em quadro.
  2. Traga a mídia. add_video_asset para cada arquivo com kind, src e a duration da fonte (sem ela, os cortes não podem ser verificados e check_video_project avisa unknown-duration). Dê poster para vídeo para que os quadros renderizados mostrem uma imagem.
  3. Marque a estrutura. add_video_marker em batidas, seções ou notas de revisão; as bordas do clipe se encaixam nos marcadores na interface do usuário e os marcadores tornam seek_video alvos.
  4. Monte em um lote. Use edit_video para um corte bruto: operações add_asset, add_track, depois add_clip em ordem, com IDs de clipe explícitos para que operações posteriores (trim, transition) possam nomeá-los. Execute com dry_run: true primeiro; o erro nomeia a operação com falha.
  5. Refine com as ferramentas individuais: trim_video_clip, split_video_clip, move_video_clip, update_video_clip, set_video_transition, delete_video_clips / close_video_gaps; para o tempo entre os planos, use os modos de corte que um editor usaria: roll_video_edit (mover um corte), slip_video_clip (mudar o que um plano mostra), slide_video_clip (mover um plano entre seus vizinhos); para um trecho inteiro, split_video_at, lift_video_range ou extract_video_range. Anime opacidade, volume ou posição com set_video_keyframes.
  6. Corte por texto quando a mídia tiver fala: set_video_transcript para cada ativo falado (ou verifique transcriptWords em get_video_project), get_video_transcript para ler a edição, então find_video_fillers, find_video_pauses ou find_video_transcript_text e passe os intervalos que você quer remover para remove_video_ranges em uma chamada. Releia a transcrição depois: cada vez após um corte ter se movido.
  7. Verifique. check_video_project e corrija todos os erros e avisos; find_video_gaps para preto ou silêncio não intencionais.
  8. Olhe e ouça. get_video_frame nos cortes e transições para camadas e ganhos de áudio como números; render_video_frame com times para uma folha de contato da sequência. Renderize após um lote, não após cada edição.
  9. Exporte quando solicitado: export_video_ffmpeg (um comando para executar, não uma renderização) ou export_video_edl (uma trilha) para finalização em outro lugar. Leia as notas retornadas. Para uma sonoridade de entrega, peça ao anfitrião para executar export_video_loudness_measure primeiro e passe o que ele imprime como loudness.measured; uma passagem (loudness sem measured) é suficiente para um rascunho.
  10. Planeje primeiro quando o usuário deve ver. Para qualquer coisa grande ou pesada em julgamento (um corte bruto, uma limpeza, cortar na música), proponha com plan_video_edits (ou uma ferramenta plan_* das habilidades de diálogo e música) em vez de aplicar: o projeto não muda, o editor mostra o plano com sua mudança de duração e os trechos que corta, e você aplica com apply_video_edit_plan quando o usuário concordar (ou discard_video_edit_plan). list_video_edit_plans mostra o que está esperando e se o projeto mudou desde então.
  11. Efeitos (apenas quando o anfitrião registrou um provedor de efeitos; search_effects diz available: false caso contrário): search_effects com um use, depois describe_effect para seus controles, depois apply_effect (filtros e sobreposições em um clipe), set_video_effect_transition ou add_video_effect_clip (geradores e títulos). Ajuste com update_effect e set_video_effect_keyframes; verifique com get_video_frame (a lista de camadas effects) e list_applied_effects. Um efeito ao longo de um caminho (um feixe ao longo de uma borda, um rastro, palavras escritas): search_effects com accepts: ["path"], adicione como um clipe ou efeito de clipe, depois set_video_effect_path com points do quadro, dados de caminho d, contorno de mask de um clipe ou text.
  12. Movimentos de câmera (um provedor com movimentos de câmera, como Flair): um clipe é o plano. list_video_camera_moves com um role, depois set_clip_camera_move: transition move de from para framing desde o início do clipe (um deslize, whip pan, punch zoom); hold reproduz no resto do clipe em framing (um drift Ken Burns em uma imagem estática). Os movimentos são incorporados nas chaves x, y, scale e rotation do clipe no fps do projeto, duas chaves em um corte, então a pré-visualização e as exportações os reproduzem sem o provedor. Verifique com get_video_frame.
  13. Modelos de sequência (um provedor com modelos): para uma abertura pronta, revelação ou contagem regressiva, list_templates, depois describe_template para seus slots, depois fill_template com values (comece de seus exampleValues) e at. Ele é colocado em novas trilhas acima das outras como uma etapa de desfazer: a camada inferior de cada plano em uma trilha base carregando a transição do plano, outras camadas como clipes de efeito, imagem e texto por função. Slots abertos retornam como clipes de espaço reservado cinza (placeholders); coloque a imagem real sobre um com add_video_asset e add_video_clip no modo overwrite. Movimentos de câmera não são transportados: adicione-os com set_clip_camera_move.

Melhores práticas

  • Corte na ação. Coloque um corte durante um movimento (uma virada, uma porta abrindo) para que a continuidade do movimento o esconda; split_video_clip na ação, depois apare os lados de saída e entrada.
  • Evite jump cuts. Dois planos consecutivos do mesmo assunto de enquadramento quase idêntico parecem uma falha. Mude o ângulo ou o tamanho, cubra o corte com B-roll em uma trilha de vídeo superior, ou torne-o deliberado.
  • Cortes J e L. Deixe o som liderar ou seguir a imagem: coloque o som da mídia em uma trilha de áudio (um clipe do mesmo ativo de vídeo), silencie o clipe de vídeo (muted: true), e então roll_video_edit o corte de áudio mais cedo (J) ou mais tarde (L) do que o corte de imagem. Isso suaviza o diálogo e as mudanças de cena.
  • Transições com moderação. Um corte reto é o padrão. Use crossfade para passagem de tempo ou uma mudança de cena suave, dip (para preto, ou uma color) para uma quebra de seção, wipe raramente. Mantenha-as curtas (300-1000 ms). push e slide se adequam a gráficos, montagens e edições sociais mais do que drama; iris é um efeito estilizado de época ou cômico. Todo tipo, exceto dip, precisa de handles: metade da duração da mídia não utilizada além do corte em ambos os clipes; dip não precisa de nenhum.
  • Inserir vs sobrescrever. add_video_clip e move_video_clip aceitam mode: refuse (padrão; o erro nomeia o próximo lugar livre), overwrite (substituir o que está embaixo, como uma edição de sobrescrita) ou insert (empurrar o material posterior para frente). Use ripple: true em trim e delete, e extract_video_range em vez de lift_video_range, para manter tudo após a edição em sincronia sem lacuna. Ripple e insert movem cada trilha sync-locked desbloqueada, então o diálogo e sua imagem permanecem juntos; desligue syncLocked com update_video_track para uma base musical que deve ficar no lugar.
  • Corte com a ferramenta certa. Para mudar quando um corte acontece sem mover mais nada, roll_video_edit; para mudar qual momento um plano mostra, slip_video_clip; para mover um plano mais cedo ou mais tarde entre dois outros, slide_video_clip. Todos os três mantêm a linha do tempo sem lacunas e relatam o delta que realmente aplicaram (limitado à mídia disponível).
  • Keyframes com moderação. Use set_video_keyframes para um push-in (scale 1 para 1.1 ao longo do plano), um duck sob diálogo (volume), ou um fade que não está em uma borda; ease (ease-in-out) em vez de linear para movimento. Fades simples nas bordas do clipe são fadeIn / fadeOut.
  • Aperte o diálogo por texto primeiro. Com uma transcrição, remova preenchimentos e pausas com as ferramentas de busca e um remove_video_ranges; revise a lista de preenchimentos primeiro (um "você sabe" pode ser intencional). Mantenha 150-300 ms ao redor das palavras (keep) para que a fala respire. Sem uma transcrição, use o próprio som, abaixo.
  • Aperte o diálogo pelo ouvido, em números. find_video_silences em um clipe de entrevista ou narração lista as pausas no tempo da linha do tempo; extraia as longas (mantenha 150-300 ms de cada lado para que a fala não pareça cortada: encolha cada intervalo antes de extract_video_range, e extraia da última pausa de volta para a primeira, ou releia, porque cada extração move o que segue). Use get_video_audio_levels para encontrar onde uma linha começa antes de cortar ou dividir nela.
  • Rampas de velocidade para ênfase. Rampa para câmera lenta pouco antes do momento que importa (um salto, uma revelação) e de volta depois: set_video_speed_ramp com um deslize de 300-600 ms (toSpeed) em vez de uma mudança brusca, e câmera lenta em torno de 0.25-0.5. Um quadro congelado (1-2 s) se adequa a um título ou um momento "sou eu"; adicione com add_video_freeze_frame. O som rampado é escalonado e silencioso em congelamentos, então coloque música ou efeitos sob planos rampados em vez de seu próprio som.
  • Feche lacunas. Lacunas não intencionais tocam como cor de fundo e silêncio. find_video_gaps, depois close_video_gaps ou ripple deletes. Deixe lacunas apenas onde você quer preto.
  • Corte em quadros. Coloque inícios, cortes e divisões em limites de quadro (múltiplos de 1000 / fps ms; 41.667 a 24 fps, 33.333 a 30). As edições não arredondam para você.
  • Níveis de áudio. O diálogo é a referência; mantenha a música abaixo dele (volume em torno de 0.2-0.4 sob a fala, mais entre as linhas) e evite ganhos acima de 1 que distorcem. O volume por clipe e o volume da trilha se multiplicam. Dê a cada clipe de áudio que começa ou termina no meio do som um curto fadeIn / fadeOut (10-50 ms) para evitar cliques; fade de bases musicais ao longo de 1-3 s. Modele fades de som com fadeInCurve / fadeOutCurve: equal-power onde dois sons se sobrepõem (mantém a sonoridade constante, onde linear cai no meio; audioCurve de transições já usa isso por padrão para crossfades e wipes), exponential para esmaecer a música para o silêncio naturalmente, s-curve para um início e fim suaves. Linear é o padrão.
  • Sonoridade de entrega. Normalize a mixagem final em vez de empurrar volumes de clipe: -14 LUFS para web e streaming, -16 para podcasts, -23 (EBU R128) ou -24 (ATSC) para transmissão, com picos verdadeiros em ou abaixo de -1 dBTP. Duas passagens mantêm a dinâmica; uma passagem ajusta o nível.
  • Grade em duas passagens: corrija, depois look. Primeiro, equilibre cada plano para que uma cena corresponda (update_video_clip grade: corrija exposição e balanço de branco contra o melhor plano, depois copy_video_grade dele para o resto da cena), depois adicione um look com apply_video_grade_preset em um amount modesto (0.3-0.6), ou um look .cube que o usuário tem com set_video_lut (frequentemente em strength 0.5-0.8: emulação de filme e LUTs criativos são fortes em força total). Uma LUT roda após as configurações do grade, então corrija exposição e balanço de branco primeiro; LUTs construídas para metragem log esperam uma imagem plana e parecem esmagadas em vídeo normal. Verifique com render_video_frame em alguns momentos lado a lado. Os tons de pele são a referência: evite hue ou tint fortes em pessoas.
  • Clipes de ajuste para looks entre planos. Em vez de graduar cada clipe de uma cena da mesma forma, add_video_adjustment_clip em uma trilha acima deles com o look (grade, um preset em um amount, ou efeitos com apply_effect no clipe de ajuste): ele muda tudo embaixo enquanto toca, então cortes e novos planos pegam o look. Escopo all inclui títulos e trilhas acima dele; escopo track limita a uma trilha. Faça fade in e out (fadeIn / fadeOut) para suavizar um look, e dê a ele uma máscara para limitá-lo a parte do quadro.
  • Máscaras para alterações localizadas. set_video_clip_mask corta um clipe em uma forma (ellipse para um rosto ou vinheta, rectangle com corner_radius para picture-in-picture, linear para uma tela dividida ou um céu graduado, polygon para uma forma personalizada). A máscara em si é animável com set_video_keyframes na propriedade mask. Para uma máscara que segue um objeto em movimento, defina keyframes nos pontos do polígono.
  • Proteção de tons de pele com LUTs. Ao aplicar uma LUT, ative skinProtection: true em set_video_lut para preservar os tons de pele da metragem original. O algoritmo detecta tons de pele no quadro e reduz o efeito da LUT nessas áreas. Útil para close-ups e cabeças falantes onde a precisão da pele é crítica. Combine com set_video_skin_tone_range para ajustar a detecção se necessário.
  • Folhas de contato para revisão. Use render_video_frame com uma matriz times para gerar miniaturas de momentos-chave na sequência: uma imagem lado a lado dos cortes principais. Defina type: "contact-sheet" para um layout de grade que cabe no chat, com tempos e nomes de clipe legendados. Folhas de contato são mais rápidas do que um vídeo de pré-visualização e dão uma visão geral precisa para aprovação do cliente ou verificação de cor.
  • Renderização de estrutura ao lado da mídia. Ao usar render_video_frame para uma verificação visual, inclua layers: true para mostrar os limites e rótulos da estrutura no quadro renderizado: bordas de trilha, divisões de clipe, nomes de clipe e indicadores de transição. Útil para diagnosticar problemas de camadas, largura de transição e onde um efeito realmente se aplica.
  • Exporte para entrega final. Quando o host pedir uma exportação de vídeo final, use export_video_ffmpeg para uma renderização de qualidade total. Preencha output.w e output.h para o tamanho do quadro de entrega, output.codec (h264 ou h265 para web, prores ou dnxhd para pós-produção), output.bitrate para a taxa de bits alvo. Inclua output.videoFilters para quaisquer filtros ffmpeg que o usuário possa precisar, como dimensionamento ou desentrelaçamento. O comando é retornado para o host executar; ele não renderiza dentro da ferramenta. Para entrega de áudio apenas, use export_video_edl com type: "audio".
  • Verificação final e balanço. Antes de exportar o projeto final, execute check_video_project e garanta que ele retorne sem erros. Execute find_video_gaps e feche quaisquer lacunas não intencionais. Verifique o balanço geral de áudio com get_video_audio_levels nos momentos mais altos da sequência. Se a sonoridade geral estiver muito alta ou baixa, ajuste o volume da trilha mestra com update_video_track na trilha de áudio final, em vez de retocar clipes individuais. Uma mixagem limpa torna a exportação mais rápida e produz melhores resultados.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Pixerate/pixerate-animation-editor

How to author and edit vector animations (motion graphics, logo reveals, animated icons, explainer scenes, UI micro-interactions) in the Pixerate animation editor through its agent tools - artwork SVG with ids, shots of commands (enter, exit, draw, move, rotate, scale, fade, morph, Smart Animate match, follow a path, pulse, shake, wiggle), easing and springs, stagger, camera, beat and voiceover cues, drivers, reusable clips, checking, rendering frames and contact sheets, and exporting to Flair or Lottie. Use when animation tools such as get_animation, insert_shots or edit_animation are available, or when asked to animate, time, ease, stagger or export vector motion, and provider motion and vector effects (for example Flair) applied to nodes.

Pixerate/pixerate-brushes

How to find, describe, create, change, check and share brushes in the Pixerate brush library through list_brush_presets, describe_brush, create_brush, update_brush, duplicate_brush, remove_brush, check_brush, export_brushes, import_brushes, import_brush_pack, preview_brush, add_brush_source and list_brush_sources - brushes made of facets (kind, medium and variety or tool, tip, marks, dynamics, behaviour, light, motion, colour), image tips and tip grain made from image sources, the built-in presets, and the host profiles that say what the paint editor, image editor, canvas and vector strokes can render. Use when asked to make, design, tweak, save, copy, delete, export, import or check a brush, make a brush from an image (a scanned mark, a leaf, a texture), give a brush grain, bring in a Photoshop .abr or Procreate .brush / .brushset pack, find a brush for a medium (pencil, ink, watercolour, oil, airbrush, highlighter), or make a brush work in another editor.

Pixerate/pixerate-canvas

How to build and edit a Pixerate design canvas or node graph through its agent tools - drawing freehand pen, highlighter and dry-brush strokes (canvas.drawFreehand), annotating with hand-drawn circles, underlines, arrows, brackets, strikes, crosses and ticks (canvas.circle, canvas.arrow), adding, connecting, updating and laying out nodes (canvas_add_node, canvas_layout), reading state with get_editor_state and looking at it with view_editor, reusable components with variants, instances and overrides (create_component, add_variant, set_instance_properties), align, distribute, lock and layer order, shape boolean operations (unite, subtract, offset path, outline stroke), auto layout frames, and keyframe animation with easing and CSS export. Use when working on a canvas, whiteboard, flow chart, node graph, frame, design system, component library, button variants, layout, alignment, z-order or a canvas animation in a Pixerate editor.

Pixerate/pixerate-vector

How to draw and edit vector artwork in the Pixerate vector editor through its vector.* commands - adding shapes and SVG paths, text (point, area, on a path, styles, Create Outlines), symbols and instances, CAD constraints, artboards and frames with resizing constraints, connectors, stacked fills and strokes with blend modes, brushstrokes with brush character and paper grain, drop shadows, glows and blurs, clipping and opacity masks, gradients (linear, radial, conic, mesh, freeform), stroke alignment, arrowheads, variable-width and tapered strokes, live corner radii, boolean operations and Pathfinder (unite, subtract, divide, trim), Shape Builder, paint bucket, path effects (trim, repeater, zig zag, offset), envelope warps and free distort, blends and morphing, anchor editing (join, smooth, simplify, knife, eraser), align, distribute, group, and SVG import and export. Use when creating an icon, logo, illustration, glyph, badge or Bezier path artwork, or editing an SVG in a Pixerate vector editor.

Habilidades Relacionadas