Skip to content

[DIF-V2-WO-006] Composição FFmpeg: cortes, transições e VHS em 9:16 #23

Closed

Description

@KayzenRoot

PLANNED, NÃO EXECUTAR até dependências APPROVED e Context Lock revalidado. Isto NÃO aprova novo serviço, gasto, deploy ou merge.

WORK ORDER: DIF-V2-WO-006 | EPIC: #17 | Classificação: NECESSARY | Risco: STANDARD | Depende: WO-004 timeline e WO-005 worker APPROVED

OBJECTIVE

Implementar composição de clipes Flow em MP4 sem áudio final ainda, com transições e presets de terror analógico reproduzíveis, estabilidade de FPS e fidelidade ao plano de edição.

CONTEXT / FILES & SOURCES TO READ

  • Fonte de verdade existente: docs/CHECKPOINT_DELTA.md → ADRs aprovados em docs/SOURCE_PACK.md → Scope → DoD → Architecture → Requirements → docs/EVIDENCE_BUNDLE.md / docs/CONTEXT_LOCK.md / docs/OPERATIONS.md.
  • Código relevante após verificar SHA atual da main: src/lib/domain, src/lib/server, src/lib/schemas, src/routes/app, src/routes/api, supabase/migrations, package.json, CI e testes. Não pressupor nomes de arquivos não existentes; registrar inspeção real.
  • Invariantes: V1 owner-only Supabase Auth/RLS + Postgres canônico, Cloudinary imagens privadas, SvelteKit + Vercel, Flow manual e Gemini opcional.

SCOPE

  • Pipeline FFmpeg com concat/trim/scale/pad/crop safe-area, tempo base e fps estável, transições opcionais dissolve/corte seco/dip-to-black, glitch/VHS/noise com limites de intensidade.
  • Sanitização de entradas e perfil H.264 baseline/main/high + pix_fmt yuv420p, faststart, 1080x1920 alvo e fallback 720x1280 sob contrato.
  • Renditions de preview reduzida e render final determinísticos; suporte ao último clipe incompleto e restauração de áudio original apenas se selecionado.
  • Manter logs de comando sem argumentos de segredo e validação por ffprobe.

OUT OF SCOPE

Sem publicação automática TikTok/Instagram, scraping ou integração não oficial do Flow, compra de GPU/API paga, reconstrução completa do CapCut ou multiusuário.

REQUIREMENTS / ARCHITECTURE RULES

  • Nunca concatenar vídeos sem normalizar codecs, PTS, dimensões, SAR/rotation e áudio; evitar duração distorcida quando usar crossfade.
  • Default de transição discreta e rara em terror analógico; evitar flashes fotossensíveis de alta frequência, oferecer redução de movimento.
  • Uso de filtros declarativos allowlisted, sem interpolar strings de prompts em comando de shell.
  • Falha atômica não substitui último vídeo bom.

CONSTRAINTS / PREFLIGHT / CONTEXT LOCK

  • Registrar base/head SHA e fingerprints de Checkpoint, ADR, Scope, DoD, Architecture, contratos e migrações relevantes. Em mudança dessas fontes: STALE → recompilar/realinhar antes de continuar.
  • Branch e PR Draft próprias feat/dif-v2-dif-v2-wo-006 (ou convenção aprovada); sem commits na main, force-push, serviço externo pago ou segredos em cliente/CI logs.
  • Processamento de vídeo pesado fora da função Vercel; recursos devem respeitar o benchmark e plano de recuperação aprovado. Usuário sempre pode operar V1 intacta.

ACCEPTANCE CRITERIA

  • Episódio amostra de 15 cenas 8s = 120s ± 1s, 9:16, sem quadro preto indesejado nem A/V drift.
  • Exporta corte seco, fade, transição de sinal VHS e ajuste de safe zone nos momentos selecionados.
  • Preview reproduz timing previsto pelo manifesto, sem diferença relevante em cortes.
  • Código lida com clipes VFR, rotacionados, codecs diferentes e fontes inválidas sem crash global.
  • Retentativa com mesmo plano produz resultado equivalente, sem sobreescrever mídia aprovada.

TESTS / EVIDENCE

  • Fixtures 4/6/8s, VFR, portrait/landscape, 24/30/60fps, audio/no-audio e clipe truncado.
  • ffprobe automated duration, geometry, audio stream expectations, PTS monotônico, pixel checks de transições e golden samples.
  • Benchmark CPU/memória pós-implementação vs WO-002; CI, smoke no worker de teste e review visual humano em cenas sintéticas.

DELIVERABLES

Implementação estritamente deste escopo, testes e documentação canônica afetada; Evidence Bundle com SHA base/head, decisões, diffs, métricas e logs sanitizados, checks e incidentes corrigidos; Checkpoint Delta PROPOSED; PR Draft para auditoria independente.

REVIEW FORMAT

Em português brasileiro: matriz por requisito/critério PASS/FAIL/BLOCKED, comandos com exit codes, evidências e diff, riscos LOW/HIGH/CRITICAL, veredito independente APPROVED / CORRECTION REQUIRED / BLOCKED; correções somente nesta WO/PR quando seguras.

STOP CONDITION

Se composições excederem benchmark/limite operacional, retornar CORRECTION REQUIRED e reduzir presets sem sacrificar segurança; não habilitar produção.

Activity

  1. KayzenRoot commented on Nov 13, 2026

    @KayzenRoot
    OwnerAuthor

    WO-006 concluído: auditoria independente final APPROVED em 6aee143, PR #53 squash-merged em 239f3ba, CI final PASS (unit 103+1, PgTAP 83/83, E2E 11/11, crossfade real). Checkpoint promovido pelo owner em 2026-11-13.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions