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
- Leia.
get_video_projectpara 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_sequencesmostra o que eles contêm. Defina o tamanho do quadro efpsprimeiro comset_video_settingsse o projeto for novo; alterá-los depois desloca os limites baseados em quadro. - Traga a mídia.
add_video_assetpara cada arquivo comkind,srce adurationda fonte (sem ela, os cortes não podem ser verificados echeck_video_projectavisaunknown-duration). Dêposterpara vídeo para que os quadros renderizados mostrem uma imagem. - Marque a estrutura.
add_video_markerem batidas, seções ou notas de revisão; as bordas do clipe se encaixam nos marcadores na interface do usuário e os marcadores tornamseek_videoalvos. - Monte em um lote. Use
edit_videopara um corte bruto: operaçõesadd_asset,add_track, depoisadd_clipem ordem, com IDs de clipe explícitos para que operações posteriores (trim, transition) possam nomeá-los. Execute comdry_run: trueprimeiro; o erro nomeia a operação com falha. - 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_rangeouextract_video_range. Anime opacidade, volume ou posição comset_video_keyframes. - Corte por texto quando a mídia tiver fala:
set_video_transcriptpara cada ativo falado (ou verifiquetranscriptWordsemget_video_project),get_video_transcriptpara ler a edição, entãofind_video_fillers,find_video_pausesoufind_video_transcript_texte passe os intervalos que você quer remover pararemove_video_rangesem uma chamada. Releia a transcrição depois: cada vez após um corte ter se movido. - Verifique.
check_video_projecte corrija todos os erros e avisos;find_video_gapspara preto ou silêncio não intencionais. - Olhe e ouça.
get_video_framenos cortes e transições para camadas e ganhos de áudio como números;render_video_framecomtimespara uma folha de contato da sequência. Renderize após um lote, não após cada edição. - Exporte quando solicitado:
export_video_ffmpeg(um comando para executar, não uma renderização) ouexport_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 executarexport_video_loudness_measureprimeiro e passe o que ele imprime comoloudness.measured; uma passagem (loudnesssemmeasured) é suficiente para um rascunho. - 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 ferramentaplan_*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 comapply_video_edit_planquando o usuário concordar (oudiscard_video_edit_plan).list_video_edit_plansmostra o que está esperando e se o projeto mudou desde então. - Efeitos (apenas quando o anfitrião registrou um provedor de efeitos;
search_effectsdizavailable: falsecaso contrário):search_effectscom umuse, depoisdescribe_effectpara seus controles, depoisapply_effect(filtros e sobreposições em um clipe),set_video_effect_transitionouadd_video_effect_clip(geradores e títulos). Ajuste comupdate_effecteset_video_effect_keyframes; verifique comget_video_frame(a lista de camadaseffects) elist_applied_effects. Um efeito ao longo de um caminho (um feixe ao longo de uma borda, um rastro, palavras escritas):search_effectscomaccepts: ["path"], adicione como um clipe ou efeito de clipe, depoisset_video_effect_pathcompointsdo quadro, dados de caminhod, contorno demaskde um clipe outext. - Movimentos de câmera (um provedor com movimentos de câmera, como Flair): um clipe é o plano.
list_video_camera_movescom umrole, depoisset_clip_camera_move:transitionmove defromparaframingdesde o início do clipe (um deslize, whip pan, punch zoom);holdreproduz no resto do clipe emframing(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 comget_video_frame. - Modelos de sequência (um provedor com modelos): para uma abertura pronta, revelação ou contagem regressiva,
list_templates, depoisdescribe_templatepara seus slots, depoisfill_templatecomvalues(comece de seusexampleValues) eat. 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 comadd_video_asseteadd_video_clipno modooverwrite. Movimentos de câmera não são transportados: adicione-os comset_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_clipna 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ãoroll_video_edito 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
crossfadepara passagem de tempo ou uma mudança de cena suave,dip(para preto, ou umacolor) para uma quebra de seção,wiperaramente. Mantenha-as curtas (300-1000 ms).pusheslidese adequam a gráficos, montagens e edições sociais mais do que drama;irisé um efeito estilizado de época ou cômico. Todo tipo, excetodip, precisa de handles: metade da duração da mídia não utilizada além do corte em ambos os clipes;dipnão precisa de nenhum. - Inserir vs sobrescrever.
add_video_clipemove_video_clipaceitammode:refuse(padrão; o erro nomeia o próximo lugar livre),overwrite(substituir o que está embaixo, como uma edição de sobrescrita) ouinsert(empurrar o material posterior para frente). Useripple: trueem trim e delete, eextract_video_rangeem vez delift_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; desliguesyncLockedcomupdate_video_trackpara 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_keyframespara um push-in (scale1 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ãofadeIn/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_silencesem 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 deextract_video_range, e extraia da última pausa de volta para a primeira, ou releia, porque cada extração move o que segue). Useget_video_audio_levelspara 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_rampcom 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 comadd_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, depoisclose_video_gapsou 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
volumepor clipe e ovolumeda trilha se multiplicam. Dê a cada clipe de áudio que começa ou termina no meio do som um curtofadeIn/fadeOut(10-50 ms) para evitar cliques; fade de bases musicais ao longo de 1-3 s. Modele fades de som comfadeInCurve/fadeOutCurve:equal-poweronde dois sons se sobrepõem (mantém a sonoridade constante, onde linear cai no meio;audioCurvede transições já usa isso por padrão para crossfades e wipes),exponentialpara esmaecer a música para o silêncio naturalmente,s-curvepara 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_clipgrade: corrija exposição e balanço de branco contra o melhor plano, depoiscopy_video_gradedele para o resto da cena), depois adicione um look comapply_video_grade_presetem umamountmodesto (0.3-0.6), ou um look.cubeque o usuário tem comset_video_lut(frequentemente emstrength0.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 comrender_video_frameem alguns momentos lado a lado. Os tons de pele são a referência: evitehueoutintfortes em pessoas. - Clipes de ajuste para looks entre planos. Em vez de graduar cada clipe de uma cena da mesma forma,
add_video_adjustment_clipem uma trilha acima deles com o look (grade, umpresetem umamount, ou efeitos comapply_effectno clipe de ajuste): ele muda tudo embaixo enquanto toca, então cortes e novos planos pegam o look. Escopoallinclui títulos e trilhas acima dele; escopotracklimita 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_maskcorta um clipe em uma forma (ellipsepara um rosto ou vinheta,rectanglecomcorner_radiuspara picture-in-picture,linearpara uma tela dividida ou um céu graduado,polygonpara uma forma personalizada). A máscara em si é animável comset_video_keyframesna propriedademask. 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: trueemset_video_lutpara 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 comset_video_skin_tone_rangepara ajustar a detecção se necessário. - Folhas de contato para revisão. Use
render_video_framecom uma matriztimespara gerar miniaturas de momentos-chave na sequência: uma imagem lado a lado dos cortes principais. Definatype: "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_framepara uma verificação visual, inclualayers: truepara 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_ffmpegpara uma renderização de qualidade total. Preenchaoutput.weoutput.hpara o tamanho do quadro de entrega,output.codec(h264 ou h265 para web, prores ou dnxhd para pós-produção),output.bitratepara a taxa de bits alvo. Incluaoutput.videoFilterspara 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, useexport_video_edlcomtype: "audio". - Verificação final e balanço. Antes de exportar o projeto final, execute
check_video_projecte garanta que ele retorne sem erros. Executefind_video_gapse feche quaisquer lacunas não intencionais. Verifique o balanço geral de áudio comget_video_audio_levelsnos momentos mais altos da sequência. Se a sonoridade geral estiver muito alta ou baixa, ajuste o volume da trilha mestra comupdate_video_trackna trilha de áudio final, em vez de retocar clipes individuais. Uma mixagem limpa torna a exportação mais rápida e produz melhores resultados.