Skip to content

WebP and Performance

alsi-lawr edited this page Jul 21, 2026 · 2 revisions

WebP and performance

WebP recording is composable across capture source, encoder, and processing pipeline. The conservative default remains:

frames_per_second = 30

[webp]
source = "png_screencast"
encoder = "libwebp_full"
pipeline = "spooled"
mode = "lossy"
quality = 75
method = 0

Sources

  • png_screencast is the default.
  • jpeg_screencast accepts source_quality from 0 through 100 and defaults to 95.

Still capture remains PNG.

Encoders

  • libwebp_full is the default and coalesces exact consecutive source frames while preserving duration.
  • libwebp_anim uses libwebp's animation encoder.
  • ffmpeg requires an unbundled ffmpeg with libwebp_anim on PATH. Viset validates it before browser startup.

Pipelines

  • spooled records compressed source frames before production.
  • live processes concurrently, keeps at most eight pending compressed frames in memory, and spills overflow to temporary disk in order.

mode is lossy or lossless. quality ranges from 0 through 100 and defaults to 75 for lossy or 50 effort for lossless. method ranges from 0 through 6.

Measurements

Viset prints acquisition and WebP production timing for recordings. The source repository retains component reports, end-to-end measurements, sample WebPs, and rejected-candidate evidence in benchmarks/.

Alternative defaults require representative end-to-end evidence and human visual approval. Strict 1600x900 capture at a P95 below the 16.67 ms 60 FPS interval is a future optimisation target, not a current guarantee.

Clone this wiki locally