SDK Modules
Reference
21 C++ classes. One pattern: LObject sources produce frames — connect them to any number of LSink targets. LPreview handles the screen. No boilerplate.
Dynamic filter graph wrapper derived from LObject. Manages real-time audio or video filter configurations, enabling developers to build and modify standard FFmpeg filter chain strings dynamically at runtime. When bound to LFile or LLive, enables real-time adjustments such as color corrections, audio delay alignments, and volume manipulation without restarting the playout pipeline.
Full-featured media file player built on FFmpeg. Supports any container and codec FFmpeg can decode. Provides millisecond-precise seeking, In/Out points, variable playback rate, timecode overlay, audio gain and FFmpeg filter chains. Loop mode and EOF-hold keep the last frame frozen on end.
Hardware live input source. Captures from Blackmagic DeckLink SDI/HDMI cards and NewTek NDI® streams on the local network. Supports GPU decode, embedded timecode extraction, software normalization and FFmpeg filter graphs. Enumerate available devices and formats at runtime.
Network stream receiver and playback decoding engine derived from LObject. Captures, demuxes, decodes, scales, and plays out network streams such as RTSP, RTMP, SRT, UDP, and HTTP live feeds in real time. Routes decoded video and audio frames to downstream sinks like LPreview, switcher buses, or recording blocks.
Professional character generator powered by Cairo 2D vector graphics. Create lower-thirds, full-screen graphics, auto-scrolling news tickers, crawls, live clock overlays and countdown timers. Supports image and video overlays with alpha compositing. All elements update in real-time without frame drops.
Static signal source. Generate a solid color frame or display a standby image. Commonly used as a black/slate source, fallback when no signal is present, or as a background layer in LMixer. Produces frames at the configured resolution and frame rate continuously.
High-performance media analysis and metadata probing engine using FFmpeg's libavformat and libavcodec interfaces. Inspects media files, parses demuxer headers, and resolves stream parameters without decoding raw video or audio payload — making it near-instantaneous. Designed to safely run in worker threads to populate media playlists, validate resolution standards, and extract start/end timecodes.
Lottie JSON animation renderer powered by ThorVG. Load any Lottie file and inject dynamic data — text, colors, images — at runtime without re-exporting. Perfect for branded lower-thirds, animated bugs, score overlays, and data-driven broadcast graphics. Renders as a compositable LObject source.
Hardware-accelerated GPU compositor. Stack multiple LObject sources as layers with per-layer position, size, alpha, crop, border-radius, border color and Z-order. The compositor output is an LObject itself and can be routed to any sink. Used for picture-in-picture, lower-third burn-in and full broadcast scene composition.
High-performance multi-channel audio mixer. Connect multiple audio-capable sources (LFile, LLive, etc.), resample and mix them dynamically to 48kHz Stereo 16-bit PCM. Includes per-channel gain, channel mute controls, master output volume, master mute, and real-time left/right VU peak meters.
Broadcast-grade A/B video switcher with dedicated PREVIEW and PROGRAM buses. Supports Cut, Fade, Wipe and Stinger transitions. Built-in CG overlay burn-in so character generator graphics are composited directly into the program output. Accepts any LObject source on both buses and outputs to multiple LSink targets simultaneously.
Multi-channel video grid compositor for professional monitoring. Setup custom grid layouts with Program, Preview, and up to 12 camera sources on one screen. Built-in tally indicators (Red for PGM, Green for PVW), channel title labels, and real-time dual-channel audio peak VU meters per grid cell. Computes layout on offscreen OpenGL context for high-performance rendering.
Non-blocking file recorder sink. Connect any LObject source and record to MP4, MKV, MOV or MXF with full codec control. Supports software (libx264, libx265) and hardware-accelerated (NVENC, VAAPI) encoding. Provides live stats: file size, elapsed time, current FPS. Pause and resume recording without dropping frames.
Live broadcast streamer sink. Push encoded video to RTMP ingest (YouTube, Twitch, custom), SRT receivers, or NDI output on the local network. Clone-to-disk support lets you record and stream simultaneously from the same source. Full codec and bitrate control with live stats.
Hardware output sink for Blackmagic DeckLink cards. Route any LObject source directly to a physical SDI or HDMI output. Enumerate cards, channels and video formats at runtime. Toggle live transmission with setEnabled(). Live stats expose frame rate, resolution, displayed and dropped frame counts.
Raw frame grabber sink. Pulls YUV-to-RGBA converted video frames and S16 PCM audio frames directly into memory for custom application processing (e.g. computer vision, custom effects, NDI/WebRTC forwarding). Non-blocking queue ensures rendering pipeline is never stalled.
High-performance offline media transcode and file conversion engine based on FFmpeg. Reads one or multiple input media files (MP4, MKV, MOV, etc.), decodes them, applies scaling/resampling format conversions, and encodes them into a single merged output file with precise codec, bitrate, and container parameters. Ideal for exporting/merging playlist files, offline proxy generation, and rendering finished video packages.
Animated stinger transition engine for LSwitcher. Load a PNG image sequence and trigger smooth animated transitions between program sources. Stingers are synchronized with the switcher cut point so the transition covers the cut frame-accurately. Requires a valid license file.
Professional instant replay engine for sports broadcast and live production. Continuously buffers incoming frames and plays them back at variable speed on demand. A license key is required to unlock clean output. Without a license, operates in demo/watermark mode.
This is the class you use in your application. LPreview manages a GPU-accelerated preview window that renders any LObject source. It internally creates and manages either an LVideoWidget (Qt6 QOpenGLWidget) or LVideoWidgetGTK (GTK4) — you never instantiate these directly. Supports audio VU meters, real-time timecode overlay, SDL2 audio playback and audio_meter visualization.
LVideoWidget — Qt6 QOpenGLWidget with YUV shader (packaged in libnow2sdk_qt.so)LVideoWidgetGTK — GTK4 equivalent using GdkTexture + GtkOverlay (packaged in libnow2sdk_gtk.so)Both are loaded automatically at runtime by
LPreview based on the ui_framework property.Format normalization core of the SDK (LFormat.h). Establishes a uniform, hardware-agnostic standard for video dimensions, frame rates, pixel configurations, and audio channels. Every processing module — including LFile, LLive, LMixer, LSwitcher, LConvert and LRecorder — uses these format structures to align and process audio/video data.
Central license verification engine of the SDK. Provides a modular licensing strategy where individual premium components (LReplay, LAnimation, LSwitcher, LStinger) are validated independently. If a module is not licensed or its support contract has expired, enforces licensing policies by rendering a visual watermark directly onto video frames in memory.