VisioForge

Last updated: Januar 2026

Video Capture SDK .NET vs LibVLCSharp

Umfassender .NET Video-Capture-Vergleich

Die Wahl des richtigen Video-Capture-Frameworks für Ihre .NET-Anwendung ist eine kritische Architekturentscheidung. Dieser Leitfaden bietet einen detaillierten, unvoreingenommenen Vergleich zwischen VisioForge Video Capture SDK .NET — einer speziell entwickelten Capture-Engine — und LibVLCSharp, der .NET-Bindung für die VLC-Media-Engine. Während LibVLCSharp bei der Medienwiedergabe hervorragend ist und Aufnahmegeräte öffnen kann, wurde das Video Capture SDK speziell für professionelle Videoaufnahme-Workflows entwickelt. Wir untersuchen Architektur, Funktionen, Leistung, Lizenzierung und praxisnahen Code, damit Sie eine fundierte Entscheidung treffen können.

Zusammenfassung

AspektVideo Capture SDK .NETLibVLCSharp
ArchitekturDual-Engine: natives DirectShow/Media Foundation + eingebettete GStreamer-PipelinesMonolithische VLC-Media-Engine über libvlc C-Interop
HauptzweckProfessionelle Videoaufnahme, Aufzeichnung, Streaming und VerarbeitungMedienwiedergabe-Bibliothek mit grundlegendem Zugriff auf Aufnahmegeräte
AufnahmequellenWebcams, Bildschirme, IP-Kameras, Capture-Karten, TV-Tuner, NDI, IndustriekamerasWebcams über dshow://, Bildschirme über screen://, IP-Kameras über URL
Live-VorschauIntegrierte GPU-beschleunigte Vorschau mit Overlays und EffektenIntegriertes Video-Surface-Rendering (wiedergabeorientiert)
AufnahmeformateMP4, MKV, WebM, AVI, WMV, MOV, TS, GIF + 30 weitere mit typisierten AusgabeklassenÜber sout-Transcode-Kette — stringbasierte Konfiguration
Multi-AusgabeNative Outputs_Add API für gleichzeitige Aufnahme + Stream + VorschauÜber sout-Duplicate-Direktive — fragile String-Syntax
Videoeffekte40+ CPU- und GPU-beschleunigte Effekte während der AufnahmeKeine Echtzeiteffekte während der Aufnahme
ErkennungBewegungs-, Gesichts-, Barcode/QR-Erkennung integriertKeine Erkennungsfunktionen
LizenzierungKommerzielle Pro-Entwickler-Lizenz (Abonnement oder unbefristet)LGPL 2.1 — kostenlos bei dynamischer Verlinkung
PreiseAb EUR 250 (Abonnement) bis EUR 1.500 (Team-Lebenslang)Kostenlos (LGPL 2.1)

Architektur im Detail

Video Capture SDK .NET Architektur

Das Video Capture SDK verwendet ein Dual-Engine-Design. Die primäre Engine umschließt DirectShow und Media Foundation unter Windows und bietet nativen Zugriff auf jedes vom Betriebssystem bereitgestellte Aufnahmegerät. Eine sekundäre eingebettete GStreamer-Pipeline übernimmt plattformübergreifende Aufnahme, erweiterte Codec-Operationen und IP-Kamera-Einbindung. Beide Engines teilen eine einheitliche .NET-API-Oberfläche, sodass der Wechsel zwischen ihnen keine Codeänderungen erfordert.

  • Native Windows-Aufnahme über DirectShow und Media Foundation Filtergraphen
  • Plattformübergreifende GStreamer-Engine für macOS, Linux, iOS und Android
  • GPU-beschleunigte Vorschau über Direct3D / OpenGL Renderer
  • Ereignisgesteuerte Architektur mit .NET async/await-Unterstützung
  • Einzelprozess-Modell — kein Kindprozess-Management erforderlich
  • Typisierte Ausgabeklassen für Aufnahme- und Streaming-Konfiguration

LibVLCSharp Architektur

LibVLCSharp ist die offizielle .NET-Bindung für libvlc, die Kern-Engine hinter dem VLC Media Player. Es bietet einen verwalteten Wrapper um VLCs C-API und ermöglicht Zugriff auf VLCs umfangreiche Medienwiedergabefähigkeiten. Obwohl primär für die Wiedergabe konzipiert, kann es Aufnahmegeräte über VLCs Media-Resource-Locator-Syntax öffnen (dshow://, screen://, v4l2://).

  • Verwalteter .NET-Wrapper um libvlc C API über P/Invoke
  • Monolithische VLC-Engine übernimmt alle Medienoperationen
  • Aufnahmegeräte werden über URL-artige Media-Resource-Locatoren angesprochen
  • Aufnahme wird über sout (Stream-Output) String-Ketten konfiguriert
  • Wiedergabe-orientiertes Design — Aufnahme ist ein sekundärer Anwendungsfall
  • Plattformübergreifend über plattformspezifische native VLC-Bibliotheken

Wesentliche Architekturunterschiede

AspektVideo Capture SDKLibVLCSharp
Design-FokusSpeziell für Videoaufnahme-Workflows entwickeltMedienwiedergabe-Bibliothek mit Aufnahme als Sekundärfunktion
GeräteerkennungNative OS-Enumerierungs-APIs mit vollständigen GerätemetadatenManuelle dshow:// oder v4l2:// URL-Konstruktion
AufnahmekonfigurationTypisierte .NET-Ausgabeklassen (MP4Output, H264EncoderSettings)Stringbasierte sout-Transcode-Ketten
Fehlerbehandlung.NET-Ausnahmen und ereignisbasierte FehlerVLC-Log-Callbacks und Event-Abonnements
Multi-AusgabeNative Outputs_Add API — verwaltet und typsichersout-Duplicate-Direktive — fragiles String-Parsing
Effekt-PipelineIntegrierte CPU + GPU Effektkette während der AufnahmeKeine Echtzeit-Effekt-Pipeline für Aufnahme

Funktionsvergleich im Detail

Aufnahmequellen

FunktionVideo Capture SDKLibVLCSharp
USB-Webcams⚠️(Über dshow:// mit eingeschränkter Steuerung)
Integrierte Laptop-Kameras⚠️(Über dshow:// URL)
Bildschirm- / Desktop-Aufnahme⚠️(Einfach über screen:// — keine Bereichsauswahl)
Anwendungsfenster-Aufnahme
IP-Kameras (RTSP/ONVIF)⚠️(URL-basiert, keine automatische Wiederverbindung)
Capture-Karten (Blackmagic DeckLink)
TV-Tuner (BDA/DVB)
NDI-Quellen
Industriekameras (GigE Vision, USB3 Vision)
Virtuelle Kameras (OBS Virtual Cam)⚠️(Über dshow:// nur unter Windows)

Live-Vorschau

FunktionVideo Capture SDKLibVLCSharp
Integrierte Videovorschau(Wiedergabeorientierte Oberfläche)
GPU-beschleunigtes Rendering
Text- / Bild-Overlays in der Vorschau(Keine Overlay-API während der Aufnahme)
Vorschau ohne Aufnahme
Mehrere Vorschaufenster⚠️(Erfordert mehrere MediaPlayer-Instanzen)
WinForms / WPF / MAUI Steuerelemente(VideoView-Steuerelement verfügbar)

Aufnahme

FunktionVideo Capture SDKLibVLCSharp
MP4 (H.264 / H.265)⚠️(Über sout-Transcode-String)
MKV-Container⚠️(Über sout-Transcode-String)
WebM (VP8 / VP9)⚠️(Über sout-Transcode-String)
AVI⚠️(Über sout-Transcode-String)
WMV / ASF⚠️(Über sout-Transcode-String)
Typisierte Ausgabekonfiguration(Alle Konfiguration ist stringbasiert)
Nur-Audio-Aufnahme⚠️(Über sout-Transcode-String)
Segmentierte Aufnahme (Aufteilung nach Zeit/Größe)
Pre-Event-Aufnahme (Ringpuffer)

Multi-Ausgabe

FunktionVideo Capture SDKLibVLCSharp
Gleichzeitige Aufnahme + Streaming⚠️(Über sout duplicate — fragil)
Mehrere Aufnahmeausgaben⚠️(Über sout duplicate — fragil)
Native Outputs_Add API
Unabhängige Ausgabesteuerung
Schnappschuss während der Aufnahme⚠️(TakeSnapshot verfügbar, aber eingeschränkt)

Streaming

FunktionVideo Capture SDKLibVLCSharp
RTMP Push⚠️(Über sout — eingeschränkte Steuerung)
RTSP-Servermodus
SRT (Caller / Listener)
HLS-Segment-Generierung⚠️(Über sout — eingeschränkt)
UDP / TCP Unicast / Multicast⚠️(Über sout rtp/udp)
Typisierte Streaming-Konfiguration(Alle Konfiguration basiert auf stringbasierten sout-Ketten)

Videoverarbeitung

FunktionVideo Capture SDKLibVLCSharp
Echtzeit-Größenänderung / Zuschnitt(Keine Verarbeitung während der Aufnahme)
Deinterlacing(VLC hat eingebautes Deinterlacing)
Farbanpassung (Helligkeit, Kontrast)(Keine Effekte während der Aufnahme)
Text-Overlay / Wasserzeichen(Kein Overlay während der Aufnahme)
Bild-Overlay / Logo(Kein Overlay während der Aufnahme)
Bild-in-Bild
Chroma Key (Greenscreen)
GPU-beschleunigte Filter

Audio

FunktionVideo Capture SDKLibVLCSharp
Audiogerät-Aufnahme⚠️(Über dshow:// Audio)
Systemaudio (Loopback) Aufnahme
Audio-Mischung (mehrere Eingänge)
Echtzeit-Lautstärke / Verstärkungsregelung⚠️(Einfache Lautstärkeregelung)
Audio-Effekte (40+ integriert)
VU-Meter / Pegelüberwachung

Erkennung & Analyse

FunktionVideo Capture SDKLibVLCSharp
Bewegungserkennung
Gesichtserkennung
Barcode / QR-Code Lesen
Objektverfolgung
Audio-Pegelerkennung

Frame-Zugriff & Integration

FunktionVideo Capture SDKLibVLCSharp
Raw Frame Callback (RGB / YUV)⚠️(Über SetVideoCallbacks — komplexe Einrichtung)
Bitmap / SKBitmap / WriteableBitmap(Manuelle Konvertierung erforderlich)
Integration mit ML.NET / ONNX⚠️(Erfordert manuelle Frame-Extraktion)
OpenCV Interop⚠️(Über Video-Callbacks)
Direkter GPU-Textur-Zugriff
Virtuelle Kamera-Ausgabe

Plattformunterstützung

Betriebssystem-Kompatibilität

PlattformVideo Capture SDKLibVLCSharp
Windows x64
Windows ARM64
macOS (Apple Silicon + Intel)
Linux x64 (Ubuntu, Debian, Fedora)
Linux ARM64 (Raspberry Pi)
Android (über .NET MAUI)
iOS (über .NET MAUI)

UI-Framework-Kompatibilität

FrameworkVideo Capture SDKLibVLCSharp
WinForms(VideoView-Steuerelement)
WPF(VideoView-Steuerelement)
.NET MAUI(VideoView-Steuerelement)
Avalonia UI(VideoView-Steuerelement)
Konsole / Dienst
ASP.NET Core (Hintergrunddienst)⚠️(Wiedergabeorientiertes Design)
Blazor (Serverseitige Verarbeitung)⚠️(Eingeschränkte serverseitige Aufnahme)

Preisvergleich

Video Capture SDK .NET Preise

JahresabonnementEUR 250 - 500

1 Entwickler, kommerzielle Nutzung, 1 Jahr Updates

Team-LebenslangEUR 750 - 1.500

Bis zu 8 Entwickler, unbefristete Lizenz mit lebenslangen Updates

All licenses include:

  • Lizenzgebührenfreie Verteilung
  • Alle Quellcode-Beispiele
  • Prioritäts-Ticket-Support
  • Alle Plattformziele inklusive

LibVLCSharp Kosten

LibVLCSharpKostenlos

LGPL 2.1 Lizenz — dynamische Verlinkung erforderlich

LibVLC Kommerzielle LizenzVideoLAN kontaktieren

Für proprietäres statisches Linken oder LGPL-inkompatible Nutzung

LGPL-Compliance-Überlegungen

LibVLCSharp und libvlc sind unter LGPL 2.1 lizenziert. Das bedeutet, Sie können sie in kommerzieller proprietärer Software verwenden, solange Sie die LGPL-Bedingungen einhalten. Zu den wichtigsten Anforderungen gehören:

  • Sie müssen dynamisch gegen libvlc linken (nicht statisch linken)
  • Sie müssen Benutzern die Möglichkeit bieten, die LGPL-lizenzierte Bibliothek durch eine modifizierte Version zu ersetzen
  • Sie müssen eine Kopie der LGPL-Lizenz beifügen und die Verwendung von libvlc deutlich erwähnen
  • Wenn Sie libvlc selbst modifizieren, müssen Sie diese Änderungen unter LGPL veröffentlichen
  • Statisches Linken oder bestimmte eingebettete Szenarien erfordern möglicherweise eine kommerzielle Lizenz von VideoLAN

Obwohl LGPL permissiver als GPL ist, erfordert die Einhaltung dennoch sorgfältige Beachtung der Link- und Verteilungsanforderungen. Einige Rechtsabteilungen von Unternehmen verlangen eine kommerzielle Lizenzierung, um jedes Open-Source-Compliance-Risiko zu vermeiden.

Codebeispiele

Beispiel 1: Webcam-Aufnahme als MP4

Video Capture SDK .NET

C#
using VisioForge.Core.VideoCapture;
using VisioForge.Core.Types.Output;

// Create the capture engine
var capture = new VideoCaptureCore();

// Set video source (first available webcam)
var devices = await capture.Video_CaptureDevice_ListAsync();
capture.Video_CaptureDevice = devices[0];

// Set audio source
var audioDevices = await capture.Audio_CaptureDevice_ListAsync();
capture.Audio_CaptureDevice = audioDevices[0];

// Configure MP4 output with H.264
capture.Output_Format = new MP4Output
{
    Video = new H264EncoderSettings
    {
        Bitrate = 4000,
        Profile = H264Profile.Main
    },
    Audio = new AACEncoderSettings
    {
        Bitrate = 192
    }
};
capture.Output_Filename = "recording.mp4";

// Enable preview
capture.Video_Preview_Enabled = true;

// Start recording with preview
await capture.StartAsync();

LibVLCSharp

C#
using LibVLCSharp.Shared;

// Initialize VLC engine
Core.Initialize();
using var libVLC = new LibVLC();
using var mediaPlayer = new MediaPlayer(libVLC);

// Open webcam via dshow:// URL
// Note: device name must be known in advance
using var media = new Media(libVLC,
    "dshow://",
    FromType.FromLocation);

// Add recording via sout transcode chain
media.AddOption(
    ":sout=#transcode{" +
    "vcodec=h264,vb=4000," +
    "acodec=aac,ab=192" +
    "}:duplicate{" +
    "dst=std{access=file," +
    "mux=mp4," +
    "dst=recording.mp4}," +
    "dst=display" +
    "}");

// Set dshow device (string-based)
media.AddOption(
    ":dshow-vdev=Integrated Camera");
media.AddOption(
    ":dshow-adev=Microphone (Realtek Audio)");

// Start — no typed API, errors in VLC log
mediaPlayer.Play(media);

// To stop: mediaPlayer.Stop();
// No progress events, no state machine

Beispiel 2: Bildschirmaufnahme mit Overlay + Streaming

Video Capture SDK .NET

C#
using VisioForge.Core.VideoCapture;
using VisioForge.Core.Types;
using VisioForge.Core.Types.Output;

var capture = new VideoCaptureCore();

// Screen capture source
capture.Video_CaptureDevice = new ScreenCaptureSourceSettings
{
    FullScreen = true,
    FrameRate = 30,
    CaptureCursor = true
};

// Add timestamp overlay
capture.Video_Overlays.Add(new VideoOverlayText
{
    Text = "{timestamp}",
    Position = new System.Drawing.Point(10, 10),
    Font = new System.Drawing.Font("Arial", 14),
    Color = System.Drawing.Color.White
});

// Add watermark image
capture.Video_Overlays.Add(new VideoOverlayImage
{
    Filename = "logo.png",
    Position = new System.Drawing.Point(10, 50),
    Opacity = 0.7
});

// Record to file
capture.Output_Format = new MP4Output
{
    Video = new H264EncoderSettings { Bitrate = 8000 }
};
capture.Output_Filename = "screen.mp4";

// Also stream via RTMP
capture.Outputs_Add(new RTMPOutput
{
    URL = "rtmp://streaming-server/live/key"
});

await capture.StartAsync();

LibVLCSharp

C#
using LibVLCSharp.Shared;

Core.Initialize();
using var libVLC = new LibVLC();
using var mediaPlayer = new MediaPlayer(libVLC);

// Screen capture via screen:// URL
using var media = new Media(libVLC,
    "screen://",
    FromType.FromLocation);

// Configure screen capture
media.AddOption(":screen-fps=30");
media.AddOption(":screen-follow-mouse");

// Record to file via sout
// Note: No overlay support during capture
// Note: No text/image overlay API
media.AddOption(
    ":sout=#transcode{" +
    "vcodec=h264,vb=8000" +
    "}:std{" +
    "access=file," +
    "mux=mp4," +
    "dst=screen.mp4" +
    "}");

// Cannot simultaneously stream via RTMP
// sout duplicate is fragile and often fails
// for screen capture + streaming combos

// No overlay API — cannot add timestamps
// No watermark support during capture
// No region selection for capture area

mediaPlayer.Play(media);

Beispiel 3: Multi-Ausgabe: Aufnahme + Stream + Vorschau

Video Capture SDK .NET

C#
using VisioForge.Core.VideoCapture;
using VisioForge.Core.Types.Output;

var capture = new VideoCaptureCore();

// Set webcam source
var devices = await capture.Video_CaptureDevice_ListAsync();
capture.Video_CaptureDevice = devices[0];

// Primary output: MP4 recording
capture.Output_Format = new MP4Output
{
    Video = new H264EncoderSettings { Bitrate = 4000 },
    Audio = new AACEncoderSettings { Bitrate = 192 }
};
capture.Output_Filename = "recording.mp4";

// Second output: RTMP stream
capture.Outputs_Add(new RTMPOutput
{
    URL = "rtmp://live.server/app/stream_key",
    Video = new H264EncoderSettings { Bitrate = 2500 },
    Audio = new AACEncoderSettings { Bitrate = 128 }
});

// Third output: Low-res backup
capture.Outputs_Add(new MP4Output
{
    Video = new H264EncoderSettings
    {
        Bitrate = 1000,
        Width = 640,
        Height = 360
    }
}, "backup.mp4");

// Preview is always available
capture.Video_Preview_Enabled = true;

// All outputs start simultaneously
await capture.StartAsync();

LibVLCSharp

C#
using LibVLCSharp.Shared;

Core.Initialize();
using var libVLC = new LibVLC();
using var mediaPlayer = new MediaPlayer(libVLC);

// Open webcam
using var media = new Media(libVLC,
    "dshow://",
    FromType.FromLocation);

media.AddOption(
    ":dshow-vdev=Integrated Camera");

// Attempt multi-output via sout duplicate
// WARNING: This is fragile and often fails
media.AddOption(
    ":sout=#transcode{" +
    "vcodec=h264,vb=4000," +
    "acodec=aac,ab=192" +
    "}:duplicate{" +
    "dst=std{access=file," +
    "mux=mp4," +
    "dst=recording.mp4}," +
    "dst=std{access=rtmp," +
    "mux=flv," +
    "dst=rtmp://live.server/app/key}," +
    "dst=display" +
    "}");

// No independent bitrate per output
// No low-res backup option
// Single transcode shared across all outputs
// If one output fails, all may fail
// No typed API — string errors at runtime

mediaPlayer.Play(media);

Beispiel 4: RTSP IP-Kamera-Überwachung mit Erkennung

Video Capture SDK .NET

C#
using VisioForge.Core.VideoCapture;
using VisioForge.Core.Types;
using VisioForge.Core.Types.Output;

var cameras = new List<VideoCaptureCore>();
var cameraUrls = new[]
{
    "rtsp://192.168.1.101/stream",
    "rtsp://192.168.1.102/stream",
    "rtsp://192.168.1.103/stream",
    "rtsp://192.168.1.104/stream"
};

foreach (var url in cameraUrls)
{
    var cam = new VideoCaptureCore();
    cam.IP_Camera_Source = new IPCameraSourceSettings
    {
        URL = url,
        Type = IPCameraType.RTSP,
        ReconnectOnFailure = true,
        ReconnectDelay = TimeSpan.FromSeconds(5)
    };

    // Motion detection
    cam.Motion_Detection.Enabled = true;
    cam.Motion_Detection.Sensitivity = 70;
    cam.OnMotionDetected += (s, e) =>
    {
        Console.WriteLine($"Motion on {url}");
    };

    // Barcode detection
    cam.Barcode_Reader.Enabled = true;
    cam.OnBarcodeDetected += (s, e) =>
    {
        Console.WriteLine($"Barcode: {e.Value}");
    };

    // Segmented recording
    cam.Output_Format = new MP4Output();
    cam.Output_Filename = $"cam_{cameras.Count}.mp4";
    cam.SegmentedRecording.Enabled = true;
    cam.SegmentedRecording.Duration = TimeSpan.FromHours(1);

    cameras.Add(cam);
}

foreach (var cam in cameras)
    await cam.StartAsync();

LibVLCSharp

C#
using LibVLCSharp.Shared;

Core.Initialize();
using var libVLC = new LibVLC();

var cameraUrls = new[]
{
    "rtsp://192.168.1.101/stream",
    "rtsp://192.168.1.102/stream",
    "rtsp://192.168.1.103/stream",
    "rtsp://192.168.1.104/stream"
};

var players = new List<MediaPlayer>();

foreach (var url in cameraUrls)
{
    var player = new MediaPlayer(libVLC);
    var media = new Media(libVLC, url,
        FromType.FromLocation);

    // Record via sout
    media.AddOption(
        ":sout=#transcode{vcodec=h264,vb=2000}" +
        ":std{access=file,mux=mp4," +
        $"dst=cam_{players.Count}.mp4}}");

    // No motion detection — not available
    // No barcode detection — not available
    // No face detection — not available
    // No auto-reconnection on stream failure
    // No segmented recording support
    // Must implement reconnection manually:
    player.EndReached += (s, e) =>
    {
        // Manual reconnect attempt
        // ThreadPool.QueueUserWorkItem(_ =>
        //     player.Play(media));
    };

    player.Play(media);
    players.Add(player);
}

// No event-driven detection
// No managed surveillance features
// Manual process monitoring required

Wann welche Lösung wählen

Wählen Sie Video Capture SDK, wenn Sie brauchen

  • Professionelle Aufnahme mit Echtzeit-Videoeffekten und Overlays
  • Multi-Ausgabe-Aufnahme + Streaming aus einer einzigen Pipeline
  • Überwachungssysteme mit Bewegungs-, Gesichts- und Barcode-Erkennung
  • Echtzeit-Audioeffekte (40+) während der Aufnahme
  • Virtuelle Kamera-Ausgabe für Broadcasting-Anwendungen
  • Industrie- und professionelle Hardware-Unterstützung (DeckLink, GigE Vision)
  • Bild-in-Bild und Chroma-Key-Compositing während der Aufnahme
  • Bildschirmaufnahme mit Bereichsauswahl und Overlays
  • Eine vollständig typisierte .NET-API ohne stringbasierte Konfiguration

Wählen Sie LibVLCSharp, wenn Sie brauchen

  • Medienwiedergabe mit grundlegendem Zugriff auf Aufnahmegeräte
  • Budget-freie Projekte, bei denen LGPL-Compliance akzeptabel ist
  • Einfache Webcam-Aufnahme ohne Effekte oder Erkennung
  • Plattformübergreifende Medienwiedergabe in .NET MAUI-Anwendungen
  • Projekte, die bereits VLC-Infrastruktur und -Workflows verwenden
  • Open-Source-Projekte, die mit LGPL-Lizenzierung kompatibel sind
  • Schnelle Prototypen für grundlegende Videoaufnahme-Funktionalität
  • Anwendungen, bei denen Wiedergabe primär und Aufnahme sekundär ist

Bereitstellung & Verteilung

Video Capture SDK Bereitstellung

  • NuGet-Paket enthält alle nativen Abhängigkeiten
  • Einzelne NuGet-Referenz — keine externen Tools zu installieren
  • Lizenzgebührenfreie Weiterverteilung mit kommerzieller Lizenz
  • xcopy / MSIX / ClickOnce Bereitstellung unterstützt
  • Docker-Container unterstützt (Linux und Windows)
  • Keine LGPL-Verpflichtungen — sicher für proprietäre Software

LibVLCSharp Bereitstellung

  • NuGet-Pakete verfügbar (LibVLCSharp + VideoLAN.LibVLC Plattformpakete)
  • Muss plattformspezifische native VLC-Bibliotheken mitliefern (~80-150 MB)
  • LGPL-Compliance erfordert dynamisches Linken und Lizenzhinweis
  • Muss Mechanismus bereitstellen, damit Benutzer die libvlc-Bibliothek ersetzen können
  • Plattformpakete übernehmen die Verteilung nativer Bibliotheken
  • Statisches Linken erfordert kommerzielle VideoLAN-Lizenz

Entscheidungsmatrix

AnforderungVideo Capture SDKLibVLCSharpGewinner
Professionelle AufnahmeanwendungVideo Capture SDK
Multi-Ausgabe (Aufnahme + Stream)Video Capture SDK
Überwachung mit ErkennungVideo Capture SDK
Echtzeiteffekte während der AufnahmeVideo Capture SDK
Virtuelle Kamera-AusgabeVideo Capture SDK
Industrie- / professionelle HardwareVideo Capture SDK
PiP / Chroma-Key-CompositingVideo Capture SDK
40+ Audioeffekte während der AufnahmeVideo Capture SDK
Bildschirmaufnahme mit OverlaysVideo Capture SDK
Budget ist 0 $ (Open Source)LibVLCSharp
Einfache Webcam-AufnahmeLibVLCSharp
LGPL-kompatibles ProjektLibVLCSharp

Fazit

Video Capture SDK .NET

Das Video Capture SDK ist eine speziell entwickelte Capture-Engine, die bei professionellen Videoaufnahme-Workflows glänzt. Seine typisierte .NET-API, integrierte Effekt-Pipeline, Multi-Ausgabe-Architektur, Erkennungsfähigkeiten und professionelle Hardware-Unterstützung machen es zur klaren Wahl für Anwendungen, bei denen Aufnahmequalität und Funktionen entscheidend sind. Die kommerzielle Lizenz gewährleistet sauberes geistiges Eigentum für die Unternehmensverteilung.

LibVLCSharp

LibVLCSharp ist eine ausgezeichnete Medienwiedergabe-Bibliothek, die auch Aufnahmegeräte öffnen kann. Wenn Ihre Anwendung hauptsächlich auf Wiedergabe mit gelegentlicher einfacher Aufnahme ausgerichtet ist, ist LibVLCSharp eine leistungsfähige und kostenlose Option. Allerdings bedeuten die stringbasierte sout-Konfiguration, das Fehlen von Echtzeiteffekten und fehlende Erkennungsfunktionen, dass professionelle Aufnahmeanwendungen deutlich mehr individuelle Entwicklung erfordern — oder mit LibVLCSharp allein schlicht nicht realisiert werden können.

The Reality

Für die meisten .NET-Entwickler, die aufnahmezentrierte Anwendungen erstellen, bietet das Video Capture SDK professionelle Funktionen, die LibVLCSharp nie zu bieten konzipiert war. LibVLCSharp glänzt als Wiedergabe-Bibliothek und ist eine vernünftige Wahl für einfache Aufnahme, wenn das Budget die Hauptbeschränkung ist. Wenn Ihre Anwendung Effekte, Erkennung, Multi-Ausgabe oder professionelle Hardware-Unterstützung benötigt, ist das Video Capture SDK die praktische Wahl.

Frequently Asked Questions

Was ist das beste .NET Video Capture SDK?
Für professionelle Videoaufnahme in .NET bietet VisioForge Video Capture SDK .NET den umfassendsten Funktionsumfang mit Echtzeiteffekten, Multi-Ausgabe-Aufnahme, Bewegungs-/Gesichts-/Barcode-Erkennung und Unterstützung für professionelle Hardware wie Blackmagic DeckLink und Industriekameras. LibVLCSharp ist eine gute kostenlose Alternative für grundlegende Aufnahmeanforderungen, verfügt jedoch nicht über die spezialisierten Aufnahmefunktionen, die professionelle Anwendungen erfordern.
Wie nehme ich Webcam-Video in C# auf?
Mit dem Video Capture SDK erstellen Sie eine VideoCaptureCore-Instanz, enumerieren Geräte mit Video_CaptureDevice_ListAsync(), legen das Gerät fest, konfigurieren das Ausgabeformat mit typisierten Klassen wie MP4Output und rufen StartAsync() auf. Mit LibVLCSharp öffnen Sie eine dshow:// URL und konfigurieren die Aufnahme über sout-Transcode-String-Optionen. Der SDK-Ansatz bietet Typsicherheit, IntelliSense und Compile-Zeit-Fehlerprüfung, während LibVLCSharp Laufzeit-String-Parsing verwendet.
Kann LibVLCSharp Webcam mit Effekten in C# aufnehmen?
Nein. LibVLCSharp unterstützt keine Echtzeit-Video- oder Audioeffekte während der Aufnahme. Es ist hauptsächlich eine Medienwiedergabe-Bibliothek. Um Effekte wie Overlays, Farbanpassung, Chroma Key oder Bild-in-Bild während der Aufnahme hinzuzufügen, benötigen Sie ein speziell entwickeltes Capture SDK wie VisioForge Video Capture SDK, das 40+ Video- und Audioeffekte mit GPU-Beschleunigung enthält.
Wie nimmt man den Bildschirm in C# .NET auf?
Das Video Capture SDK bietet eine ScreenCaptureSourceSettings-Klasse mit Optionen für Vollbild, Bereichsauswahl, Cursor-Aufnahme und Bildratenkontrolle. Sie können Overlays und Effekte hinzufügen und gleichzeitig streamen. LibVLCSharp kann den Bildschirm über screen:// URL aufnehmen, bietet aber keine Bereichsauswahl, keine Overlays und keine Effekte während der Aufnahme. Für professionelle Bildschirmaufnahme mit Annotationen und Streaming wird das Video Capture SDK empfohlen.
Unterstützt Video Capture SDK RTSP IP-Kameras?
Ja. Das Video Capture SDK bietet verwaltete RTSP/ONVIF IP-Kamera-Unterstützung mit automatischer Wiederverbindung bei Streamausfall, konfigurierbaren Wiederholungsverzögerungen und Authentifizierung. Es kann IP-Kamera-Feeds gleichzeitig aufnehmen, streamen und mit Effekten versehen. LibVLCSharp kann RTSP-URLs für Wiedergabe und einfache Aufnahme öffnen, verfügt aber nicht über automatische Wiederverbindung, Erkennungsfunktionen und Multi-Ausgabe-Fähigkeiten.
Was ist der Unterschied zwischen Video Capture SDK und LibVLCSharp?
Video Capture SDK ist eine speziell entwickelte .NET-Videoaufnahme-Engine mit typisierten APIs, Echtzeiteffekten, Multi-Ausgabe-Aufnahme, Erkennung (Bewegung, Gesicht, Barcode) und professioneller Hardware-Unterstützung. LibVLCSharp ist die .NET-Bindung für VLCs Media-Engine, die hauptsächlich für die Wiedergabe mit grundlegenden Aufnahmefähigkeiten über stringbasierte sout-Konfiguration entwickelt wurde. Das SDK ist kommerziell (ab EUR 250/Jahr), während LibVLCSharp unter LGPL 2.1 kostenlos ist.

Erste Schritte

Related Comparisons