Free now2sdk Core is completely free — no license key required   See what's included →
SDK Modules Docs Release Notes Pricing GitHub
Get the SDK →
Free Core Object-based C++ broadcast framework Linux & Windows SDK · FFmpeg · Win32 · Qt6 · GTK4

Source → Route → Sink → Preview.
That's the whole API.

No FFmpeg code. No DeckLink SDK. No OpenGL shaders. Just clean, object-oriented C++ for broadcast engineering.

C++17 · now2sdk
// LFile — from Example/Playout
#include "now2sdk.h"

LFile*    m_lFile    = new LFile();
LPreview* m_lPreview = new LPreview();

// Set props before play
m_lFile->setProps("loop", "true");
m_lFile->setProps("audio_gain", "85");
m_lFile->setProps("eof_hold", "true");

// Attach preview to Qt widget
m_lPreview->previewEnable(ui->playerPreview, true, true);
m_lPreview->previewObject(m_lFile);
m_lPreview->setProps("audio_meter", "true");

m_lFile->fileNameSet("/media/news_package.mp4");
m_lFile->play();

// Seek to 10 seconds
m_lFile->PosSet(10000.0);
// LLive — from Example/LiveDevice
#include "now2sdk.h"

LLive*    m_lLive    = new LLive();
LPreview* m_lPreview = new LPreview();

// Enable GPU decode & timecode
m_lLive->setProps("gpu", "true");
m_lLive->setProps("timecode", "true");

// Enumerate DeckLink cards
int count = 0;
m_lLive->DeviceGetCount(count);
m_lLive->DeviceSet(0);           // select first card
m_lLive->DeviceChannelSet(0);    // SDI input
m_lLive->DeviceFormatVideoSet(0); // 1080p50

// Attach preview
m_lPreview->previewEnable(ui->livePreview, true, true);
m_lPreview->previewObject(m_lLive);
m_lPreview->setProps("timecode.preview", "true");

m_lLive->Start();
// LRecorder — from Example/Recorder
#include "now2sdk.h"

LLive*     m_lLive     = new LLive();
LRecorder* m_lRecorder = new LRecorder();

// Configure output format
m_lRecorder->setContainer("mp4");
m_lRecorder->setVideoCodec("libx264");
m_lRecorder->setAudioCodec("aac");
m_lRecorder->setVideoBitrate(10000);  // 10 Mbps
m_lRecorder->setAudioBitrate(192);
m_lRecorder->setFilePath("/out/recording.mp4");

// Connect live source
m_lRecorder->recordObject(m_lLive);
m_lLive->Start();
m_lRecorder->Record();   // non-blocking

// Live stats
LRecorder::Stats stats;
m_lRecorder->getStats(stats);  // fileSizeBytes, fps...
// LMixer + LSwitcher — from Example/Switcher
#include "now2sdk.h"

LFile*     m_lFile1   = new LFile();
LFile*     m_lFile2   = new LFile();
LMixer*    m_lMixer   = new LMixer();

// Layer 0: full-screen base
m_lMixer->addLayer("base", m_lFile1, 0, 0, 0, 255, 1920, 1080);

// Layer 1: picture-in-picture
auto pip = m_lMixer->addLayer("pip", m_lFile2, 1, 1200, 100, 255, 640, 360);
pip->borderColor = "#FFFFFF";
pip->borderSize  = 5;

m_lFile1->play();
m_lFile2->play();
Debian / Ubuntu 🎩 Fedora / RHEL 🐧 Arch Linux 🪟 Windows (Win32/C#) 🖥 Qt6, GTK4 & .NET ⚡ C++17 / C++20 🎬 FFmpeg
$0 Core SDK Cost
21 SDK Classes
C++17 Modern C++
All Linux Distros
FFmpeg Media Engine
Why now2sdk?

Engineered for Broadcast, Built for Developers

How now2sdk compares to traditional media frameworks and heavy broadcast engines.

Feature FFmpeg OBS SDK GStreamer now2sdk
Clean Object-Oriented C++ API
Instant Sports Replay Engine
Multi-Channel Live Switcher Plugin
Built-in DeckLink / NDI / Live Capture Plugin Plugin
Zero-Copy Memory Pipeline
Qt6 & GTK4 Native Preview Widgets
Architecture

Source → Route → Sink → Preview.
That's the whole API.

Every class follows the same pattern: LObject sources produce frames, you connect them to LSink targets. LPreview wraps the Qt6/GTK4 widgets so you never touch them directly.

Sources
LObjectLFile File player
LObjectLLive DeckLink / NDI
LObjectLCharacter CG / Ticker
LObjectLAnimation Lottie
LObjectLSignal Test signal
Routing
LObjectLMixer GPU compositor
LObjectLSwitcher A/B switcher
Outputs (Sinks)
LSinkLRecorder MP4/MKV/MXF
LSinkLStream RTMP/SRT/NDI
LSinkLOutput DeckLink SDI/HDMI
LSinkLFrame Raw frame grab
Preview
LPreview LPreview User-facing preview class
Wraps internally:
Qt6 LVideoWidget
GTK4 LVideoWidgetGTK
You only use LPreview in your app.
Standard Playout Pattern

Load, Preview, and Play.

Set up media playout streams with absolute simplicity. Load your source media files, attach them to your user-facing UI preview widget (Qt6 or GTK4 native wrappers), and start the playback pipeline instantly.

Whether you are handling high-bitrate MXF wrappers, NDI feeds, or standard MP4 loops — the basic setup code remains exactly the same.

C++17 / now2sdk
l_File->fileNameSet(path.toStdString());
l_Preview->previewEnable(ui->playerPreview, false, true);
l_Preview->previewObject(l_File);
l_File->play();
SDK Core Free Core

One SDK.
Every platform.

now2sdk ships as a single .so library. Drop it into any Linux project — Qt6 or GTK4 — and get playout, capture, recording, mixing and SDI output without writing a single FFmpeg call.

Example/Output — LFile → LPreview + LOutput (DeckLink)
#include "now2sdk.h"

LFile*    m_lFile    = new LFile();
LPreview* m_lPreview = new LPreview();
LOutput*  m_lOutput  = new LOutput();

// Props
m_lFile->setProps("eof_hold", "true");

// Preview (Qt6 widget)
m_lPreview->previewEnable(ui->previewWidget, true, true);
m_lPreview->previewObject(m_lFile);
m_lPreview->setProps("audio_meter", "true");
m_lPreview->setProps("timecode.preview", "true");

// SDI output
m_lOutput->setSource(m_lFile);
m_lOutput->setDevice(0);
m_lOutput->DeviceFormatVideoSet(0); // 1080p50

m_lFile->play();
m_lOutput->setEnabled(true); // → ON AIR
100%
Free Core
Open Core

No license key.
No watermark.

Core playout, capture, recording, streaming, CG is free. Advanced broadcast features require a license.

Free Core
LFile Playout
LLive Capture
LRecorder Record
LStream Stream
LMixer Compositor
LAudioMixer Audio Mix
LCharacter CG
LStreamPlay Net Play
LFilter A/V Filter
LSignal Test Gen
LReader Meta Probe
LOutput Dev Output
LFrame Raw Grab
LConvert Transcoder
LPreview Preview UI
LFormat Config
LLicenseManager Sec
Licensed
LSwitcher Switcher
LAnimation Lottie
LStinger Stingers
LReplay Replay
LMultiview Multiview
LFile · LLive

Playout &
Live Capture

Play any media file with millisecond-precise seeking, timecode support, and variable rate. Capture from Blackmagic DeckLink (SDI/HDMI) or NewTek NDI® sources on the same network.

RTMP / SRT / NDI ingress SDI / HDMI (DeckLink) Jitter-free DeckLink Sync Hardware drop checks ms-level seek In/Out points Variable rate Timecode TC Audio gain Filter chains
LSwitcher · LMixer

Switch &
Composite

Professional A/B program switcher with auto-transitions, Stinger overlays, and built-in CG burn-in. Compose unlimited GPU-accelerated layers with the OpenGL-powered LMixer.

Chain Pull-Rendering Dynamic timing fallback Cut / Fade / Wipe Stinger transitions PRV / PGM bus GPU layer blend Alpha / crop / mask CG burn-in
LRecorder · LStream

Record &
Stream Live

Record to MP4, MKV, MOV or MXF with any FFmpeg codec (libx264, h264_nvenc). Simultaneously stream to RTMP, SRT or NDI — both from the same switcher output.

rec.setVideoCodec("h264_nvenc");
stream.setStreamUrl("srt://...");
// record + stream simultaneously
switcher.addSink(&rec);
switcher.addSink(&stream);
LCharacter · LAnimation

Live CG &
Lottie Graphics

Cairo-powered vector character generator with lower-thirds, auto-scrolling tickers, crawls, clocks and dynamic countdown timers. LAnimation renders Lottie JSON templates with runtime data injection.

Lower thirds Live clock overlay Ticker / crawl Lottie JSON Runtime data inject ThorVG engine
Built On C# .NET Wrapper support — WinForms & WPF integration

Powered by the best
open-source stack.

now2sdk integrates battle-tested libraries directly — no abstraction layers, no hidden wrappers. You get the full power of each technology with a clean C++ API on top.

FFmpeg
Core decode/encode engine. Every codec, every container.
Media Engine
Qt6
OpenGL preview widgets, GPU YUV→RGB shaders.
GUI
GTK4
GdkTexture + GtkOverlay GPU preview for GTK apps.
GUI
SDL2
Low-latency S16 PCM audio playback and monitoring.
Audio
Cairo
Vector CG engine for tickers, lower-thirds, overlays.
CG
ThorVG
Lottie JSON renderer for animated broadcast graphics.
Animation
NDI® SDK
NewTek NDI capture and output over IP network.
Network
OpenGL
GPU-accelerated compositor for multi-layer mixing.
GPU
C# & VB.NET
P/Invoke boundary mappings, safe handles, and GC lifetime sync.
Languages
.NET & .NET Framework
Fully compatible with .NET 6/8 Core and .NET Framework 4.x.
Runtime
WinForms & WPF
Native GPU-backed picture boxes and window handles controls.
Windows GUI
DeckLink SDK
Blackmagic SDI/HDMI capture & hardware playout.
Hardware
Reference

Every module, explained

21 classes. One pattern. Infinite combinations.

Class Type Description License
LFile Source FFmpeg media file player. Millisecond seek, In/Out points, variable rate, timecode, audio gain & filter chains. Free
LLive Source Hardware capture from Blackmagic DeckLink (SDI/HDMI) and NewTek NDI® streams. Software normalization & FFmpeg filter graphs. Free
LStreamPlay Source Network stream receiver. Capture, demux, decode, scale, and play RTMP, RTSP, SRT, UDP, and HTTP live streams. Free
LCharacter Source Cairo vector CG engine. Lower-thirds, live clock, countdowns, auto-scroll crawls, tickers, image/video overlays. Free
LSignal Source Test signal and color generator. Set solid hex background or standby image as a fallback/black source. Free
LReader Source Asynchronous media probe. Scan video/audio stream properties, metadata, codecs, and durations without UI blocking. Free
LAnimation ThorVG-powered Lottie engine. Load JSON templates, inject text/color/image at runtime for dynamic branding.
LFilter Filter Dynamic FFmpeg filter graph. Apply real-time video filters (eq, saturation, flip) and audio filters (volume, delay) on the fly. Free
LMixer Router OpenGL GPU compositor. Layers multiple sources with alpha blending, crop, border-radius, masks. Outputs YUV frames. Free
LAudioMixer Router Multi-channel audio mixer. Connect multiple audio-capable sources, resample to 48kHz Stereo S16 PCM, control volume and mute, and monitor levels. Free
LSwitcher A/B video switcher with PRV/PGM buses. Cut, Fade, Wipe transitions. CG overlay burn-in. Requires license key.
LRecorder Sink Async FFmpeg encoder sink. MP4/MKV/MOV/MXF output, x264/NVENC/VAAPI codecs, live stats, pause/resume. Free
LStream Sink Broadcast streamer sink. RTMP, SRT, NDI output with clone-to-disk support, stats, and codec control. Free
LOutput Sink Hardware playout sink. Output to Blackmagic DeckLink cards over SDI/HDMI with format auto-mapping. Free
LFrame Sink Raw CPU frame grabber. Pull YUV→RGBA converted video frames and S16 PCM audio into memory for custom processing. Free
LConvert Sink Offline transcode and render engine. Concatenate multiple clips, resample audio, adjust bitrates, and export to MP4/MKV. Free
LStinger Stinger transition engine. PNG image-sequence based animated transitions for LSwitcher. Requires license.
LReplay Instant replay engine. License key activation, clean feed unlock, demo watermark mode available.
LMultiview Multi-view grid layout compositor. Composites program, preview, and up to 12 camera sources on one screen with VU meters and tally. Requires license.
LPreview Sink Qt6 QOpenGLWidget and GTK4 widget preview with GPU shader, VU meters, real-time timecode overlay, SDL2 audio. Free
LFormat Config Media standard configuration helper. Define, query, and enforce broadcast resolutions (1080p50, etc.) and audio layouts. Free
LLicenseManager Config Central licensing core. Verify license validity, check expiration dates, and enforce demo watermark overlay logic. Free
Pricing

Free core.
Licensed add-ons.

Core SDK is free: playout, capture, record, stream, CG, GPU mix. LSwitcher, LAnimation, LStinger, LReplay and LMultiview are licensed add-ons.

Licensed Add-ons
Contact

Professional broadcast modules licensed per deployment. Simple license activation files.

Request License
  • +LSwitcher — A/B program switcher
  • +LAnimation — Lottie / ThorVG engine
  • +LStinger — PNG-seq stinger transitions
  • +LReplay — instant replay engine
  • +LMultiview — camera monitoring grid
  • ·License key activation
  • ·Demo/watermark mode without key
  • ·Requires Core SDK (free)

Start building broadcast apps
today. For free.

now2sdk runs on Linux and Windows. Drop in the library, include the header, ship your app.

Quick start
cmake -DCMAKE_PREFIX_PATH=./now2sdk .. && make