overview.md

July 14, 2026 · View on GitHub

Overview

The component library hides FFmpeg C API complexity and provides a familiar Delphi style: TComponent, properties, methods, events, and design-time editors.

Status: alpha — see Components README.

Platforms

AreaDelphi Win32/Win64FPC Win64Linux64 (FPC / Delphi)
Bindings source/
Non-visual components
TFFVideoPlayer (VCL)
TFFFMXVideoPlayer (FMX)✓ (PAServer)
Audio outputWaveOutALSA → SDL2 fallback

FFmpeg 8.1.x shared libraries must be next to the executable (bin/win64/, bin/linux64/).

Installation

  1. Build rtpFFMPEG (bindings).
  2. Build rtpFFMPEGComponents (runtime components).
  3. Install dclFFMPEGComponents in the IDE (FFmpeg palette).

Copy FFmpeg DLL/SO into the .exe directory or use TFFLoader / tools/setup_dev_environment.ps1.

IDE palette components

ComponentPurpose
TFFLoaderLoad FFmpeg DLLs
TFFLoggerCapture av_log
TFFReaderDemux, AutoPump, custom I/O
TFFDecoderDecode, preview, graph sink/source
TFFEncoderEncode, transcode pipeline
TFFWriterMux / remux
TFFMemoryAccessAdapterAVIOContext over TStream
TFFBitmapEncoderBGRA / TBitmap → video file
TFFMediaInfoMetadata probe
TFFThumbnailExtractorFrame preview
TFFTranscodeJobPreset-based transcode
TFFRemuxJobStream-copy remux
TFFFrameFilterlibavfilter node (scale, fps, …)
TFFVideoPlayerVCL player
TFFPlayerControlPlayer + transport bar
TFFFMXVideoPlayerFMX player
TFFSubtitleDecoderSubtitle decode for overlay

Helper modules (not on palette): uFFPlaybackEngine, uFFLinkedPlayback, uFFSubtitleOverlay, uFFSubtitleBitmap, uFFSubtitleAss, uFFHardwareDecode.

Player modes

ModeConditionCore
EngineFileName set, VideoDecoder = nilTFFPlaybackEngine
LinkedVideoDecoder assignedTFFLinkedPlayback + graph

See Playback.