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