Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

DOVE — Online Video Editor

DOVE DOVE is an API driven Video/Audio Editor for live mixing with an intuitive web based Interface.

Developed by and for DORFTV. Inspired by bbc/brave.

License: AGPL v3 Python 3.12 | 3.13 GStreamer 1.26+ Nuxt 4 FastAPI

Main mixing interface — scene grid, program output, and multi-input panel NodeCG broadcast graphics overlay with live lower third controls

Concept

Inputs → Scenes → Program → Outputs

Inputs — media sources: local files, network streams, web pages, yt-dlp URLs, cameras, test patterns.

Scenes — compositor layouts combining multiple inputs. Each scene has slots with per-slot position, size, z-order, alpha, and volume controls.

Program — the currently live scene, sent to all active outputs simultaneously. Cut or crossfade between scenes.

Outputs — streaming destinations (SRT, RTMP, HLS, WebRTC, Decklink, etc.). Multiple outputs can share an encoder; dedicated encoders per output are also possible.

Features

Inputs

Type Description
uridecodebin3 Local files and streams (HTTP, SRT, RTMP, RTSP)
playlist Sequence of video clips and HTML pages
wpesrc Web page rendered as video (HTML/CSS/JS overlays)
ytdlp YouTube, Twitch, and hundreds of other sites via yt-dlp
nodecg NodeCG broadcast graphics
v4l2src Webcams and capture cards (V4L2)
imagesrc Still images (PNG, JPEG, WebP, SVG)
testsrc SMPTE color bars and test patterns
whip Browser screen share or webcam via WebRTC (experimental)

Input Pickers (Proxies) — Configurable dropdowns in the "Add Input" dialog for fast discovery of local files, webcams, NodeCG sources, MediaMTX/OvenMedia streams, SRT relays, and playlists. Define in config.toml with [proxy.<name>] sections. See dove/docs/proxies.md.

Outputs

Type Description
srtsink SRT push to a remote listener
srtserversink SRT server mode (remotes connect to DOVE)
rtmpsink RTMP push
rtspclientsink RTSP push
hlssink2 HLS segments (also used for previews)
splitmuxsink Segmented file recording
decklink SDI/HDMI via Blackmagic Design card
shout2send Icecast/Shoutcast audio stream

Encoders

Hardware-accelerated encoding via VAAPI (AMD/Intel) or Vulkan Video. Software fallback via x264 / x265. Set video_encoder.name = "auto" to pick the best available encoder at startup. Multiple outputs can share a single encoder, or each output can have its own dedicated encoder. See dove/docs/encoders.md.

Encoder Type
x264 Software
openh264 Software alternative
vah264enc / vaapih264enc VAAPI (AMD/Intel)
vulkanh264enc Vulkan (Mesa 26+, GStreamer 1.28+)
mpph264enc Rockchip hardware

Audio & Video Filters

Per-input dynamic filter chains, applied at runtime without pipeline restart.

Audio: highpass, lowpass, 3-band/10-band EQ, compressor (LSP), expander (LSP), gate (LSP), limiter, amplify, pan, invert, echo, denoise, loudnorm. See dove/docs/audio-filters.md.

Video: color balance, flip/mirror, crop, color effects, blur, chroma key. Experimental (requires frei0r-plugins): pixelate, cartoon, glow, vignette, film grain, glitch, scanlines, sobel edge, color halftone. See dove/docs/video-filters.md.

Previews

  • WebRTC — sub-second latency preview in the browser.
  • HLS — works in restricted networks, through any reverse proxy over HTTPS.

Keyboard Shortcuts

Full keyboard control for live production: scene selection (1–9), cut/crossfade (Enter), transition toggle (T), and more. Press ? in the UI for the full list. See dove/docs/keyboard-shortcuts.md.

Quick Start

Want a ready-to-run setup with example inputs and scenes? See dove-demo for a pre-configured docker-compose stack you can spin up in one command.

To install DOVE from scratch:

Docker Compose

git clone https://github.com/dorftv/dove.git && cd dove
cp config-example.toml config.toml

Software rendering (no GPU):

docker compose up

AMD GPU (VAAPI + Vulkan):

docker compose -f docker-compose.yml -f docker-compose.amd.yml up

Intel GPU (VAAPI + Vulkan):

docker compose -f docker-compose.yml -f docker-compose.intel.yml up

Open http://localhost:5000

Configuration

Copy config-example.toml to config.toml and edit as needed. See dove/docs/config.md for all options.

[main]
default_resolution = "HD720"    # QHD, FullHD, HD720, nHD, …
default_framerate = "30/1"
volume = 0.7

[preview.scenes]
type = ["webrtcbin", "hlssink2"]
video_encoder.name = "auto"

Authentication

Optional OIDC authentication (Keycloak, Authentik, Authelia, etc.). Disabled by default — enable with:

[auth]
enabled = true
issuer = "https://auth.example.com/realms/dove"
client_id = "dove-app"
client_secret = "your-secret"

Four roles: User, Supervisor, Outputs, Admin. See dove/docs/auth.md for setup, role details, API tokens, and nginx integration.

Documentation

In-app help is available at /help after starting DOVE. All docs are in the dove/docs/ directory:

Setup — Interface overview · Configuration · Authentication

Pipeline — Inputs (uridecodebin3 · playlist · wpesrc · ytdlp · nodecg · testsrc · screencast) · Input Pickers · Scenes · Outputs · Encoders

Effects & Output — Audio filters · Video filters · Previews

Operations — Debugging · Connection Status

Tech Stack

  • GStreamer 1.26+
  • FastAPI + uvicorn — REST API and WebSocket
  • Nuxt 4 — web frontend
  • Python 3.12 or 3.13

Note: Python 3.14 is not supported for native installs due to PyGObject/GStreamer thread interaction bugs. Use Python 3.12 or 3.13. Docker images are pinned to 3.12 and unaffected.

Development

Running DOVE natively from a Python venv: see dove/docs/install.md.

Contributing

Contributions are welcome! Please open an issue first to discuss larger changes. For bug reports, include the GStreamer version, config, and relevant logs.

Notes

  • Decklink requires a supported Blackmagic Design card and the decklink GStreamer plugin
  • WebRTC previews use announced_ip for the server's public IP — set in config.toml or via ANNOUNCED_IP env var

License

GNU Affero General Public License v3.0

Release files for dove-video-editor 1.0.0rc6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dove-video-editor 1.0.0rc6
File Size Uploaded
dove_video_editor-1.0.0rc6.tar.gz 1.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for dove-video-editor 1.0.0rc6
File Interpreter ABI Platform
dove_video_editor-1.0.0rc6-py3-none-any.whl Python 3 none any Details

Total release size: 2.5 MB

Release files / dove_video_editor-1.0.0rc6.tar.gz

Download URL dove_video_editor-1.0.0rc6.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
c7daa77e9e7e12d2d6e77bbdff63388263eb06f80021e618661a19420792599e
BLAKE2b-256 checksum
How to use checksums
1758426178b89f79bb5284e81ae42c12126f86d073a6cb51c1c54726deec2819
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / dove_video_editor-1.0.0rc6-py3-none-any.whl

Download URL dove_video_editor-1.0.0rc6-py3-none-any.whl
Size 1.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
afb950e58cc224d16cbbf2d13f984ba95b1b5a8d0b00adb759a3fd8a3ae5bd3f
BLAKE2b-256 checksum
How to use checksums
129be32bda38a52f541ea9895e278a450bfaaefa27f3016daa18457b77899043
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page