MS
Marcos Silva
Responsável: Ana · FiscalResponsável: Edmilson · Pessoal
Transferir
Finalizar
Bom dia! Preciso da segunda via da guia do DAS.10:24
Ana | Fiscal:
Bom dia, Marcos! Já te envio a segunda via.
10:25✓✓
Aproveitando: preciso falar com o DP sobre férias.10:26
Atendimento transferido para Edmilson · Pessoal
Edmilson | Pessoal:
Oi, Marcos! Me passa o nome do colaborador que vai sair de férias?
10:27✓✓
Atendimento encerrado
Protocolo nº 20261019-0482
Registro concluído com segurança
+
Digite sua mensagem...
Assinar
0,00 s

Gravação quadro a quadro (Playwright + ffmpeg)

Este HTML é autocontido. A função window.render(t) aceita milissegundos e desenha o quadro exato, sem depender da execução dos quadros anteriores. O parâmetro ?rec desativa a reprodução automática e os controles.

1. Instale Playwright e Chromium:
   python -m pip install playwright
   python -m playwright install chromium

2. Salve este exemplo como gravar.py, na mesma pasta do HTML:

from pathlib import Path
from playwright.sync_api import sync_playwright
folder = Path(__file__).resolve().parent
frames = folder / 'frames'
frames.mkdir(exist_ok=True)
url = (folder / 'whatscontabil_atendimento_profissional.html').as_uri() + '?rec'

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)
    page = browser.new_page(viewport={'width':960,'height':720}, device_scale_factor=1)
    page.goto(url)
    page.evaluate('document.fonts.ready')
    for i in range(150):
        page.evaluate('(t) => window.render(t)', i * 40)
        page.locator('#stage').screenshot(path=str(frames / f'frame_{i:04d}.png'))
    browser.close()

3. Gere o vídeo:
   ffmpeg -framerate 25 -i frames/frame_%04d.png -c:v libx264 -pix_fmt yuv420p -crf 23 -movflags +faststart whatscontabil_atendimento_profissional.mp4