VideoControl

Plays video in the terminal — local files or network streams — decoded with FFmpeg and rendered through Kitty graphics or a cell-based fallback.

The full reference for this control lives in Video Playback. This page is a short orientation and a set of links into it.

Overview

VideoControl decodes with FFmpeg and picks a render path to match the terminal. On Kitty-capable terminals it draws real pixels; elsewhere it falls back to half-block, ASCII, or braille cells. The default Auto mode resolves this for you, and the user can cycle concrete modes at runtime.

Sources are anything FFmpeg understands — a file path, or an HTTP/RTSP/HLS/RTMP/FTP URL. An optional overlay bar shows transport state and keyboard hints, and the control handles resize, looping, and playback events.

FFmpeg must be installed — see Requirements.

Quick Start

var video = Controls.Video("movie.mp4")
    .WithOverlay()
    .Fill()
    .Build();

window.AddControl(video);
video.Play();

Streaming works the same way:

var stream = Controls.Video()
    .WithSource("https://example.com/live.m3u8")
    .Fill()
    .Build();

Where to read more

Topic Section
Installing FFmpeg per platform Requirements
All properties (Source, RenderMode, PlaybackState, TargetFps, Looping, …) VideoControl → Properties
Play, Pause, Stop, TogglePlayPause, PlayFile, Stream, CycleRenderMode VideoControl → Methods
All builder methods Builder API
Sizing and alignment Sizing and alignment
Auto / Kitty / HalfBlock / ASCII / Braille Render Modes
Network sources and their caveats Streaming
Keyboard and mouse controls Playback Controls
The status bar and its hints Overlay Status Bar
PlaybackStateChanged, PlaybackEnded Events
Missing FFmpeg, missing file, decode failure Error Handling
Frame pipeline and threading model Architecture
A full working player Complete Example — Video Player App

See Also


Back to Controls | Back to Main Documentation