- Building and running Pivid
- Architecture overview
- REST API protocol
- Play script format
- Development notes and links
Pivid is a nonlinear, gapless, direct-rendering, multi-head video playback and compositing engine based on libav, optimized for the Raspberry Pi and controlled with a JSON/REST API. Pivid is intended for escape rooms, immersive experiences, video performances and similar applications.
Pivid can splice, overlay, scale, transition, seek and loop videos with no gaps and frame-perfect rendering. The play script (playback instructions) may be updated at any time; preload hints may be provided to ensure gapless changes.
Playback position, media layout onscreen, and layer opacity are specified as (1-D) cubic Bezier functions of time, enabling flexible animation and transition effects. Still images are considered one-frame videos and may be layered with moving video content, including alpha-channel transparency support.
Pivid uses Linux Direct Rendering (with Atomic Display) for fast full screen playback. When playing H.264/AVC or H.265/HEVC video content on the Raspberry Pi 4B, Pivid uses the GPU and DMA buffers for zero-copy decoding, buffering, compositing and display.
Pivid is open source, available under the MIT license.
Unlike apps like VLC or Kodi, Pivid has no user interface and is only useful driven by other software.
Pivid requires exclusive use of display hardware and does not run in a window (the desktop must be shut down).
Pivid currently has no audio support (a likely area of upcoming work).
Pivid is "early alpha" status. The author is excited to hear from you if you're planning to use it seriously!