Last updated: Januar 2026
AForge.NET Alternative: Migrationsanleitung zu VisioForge .Net SDK
Ersetzen Sie das eingestellte AForge.NET durch ein modernes, plattformübergreifendes .NET SDK
C#-Entwickler, die von AForge.NET (AForge.Video, AForge.Vision, AForge.Imaging) auf moderne .NET 6-10 Alternativen migrieren
Warum AForge.NET ersetzen?
AForge.NET wurde seit Juli 2013 aufgegeben — über 12 Jahre ohne Updates, Sicherheitspatches oder Fehlerbehebungen. Es zielt auf .NET Framework 2.0 ab und kann ohne Community-Forks unterschiedlicher Qualität nicht auf modernem .NET 6-10 ausgeführt werden.
| Risiko | Auswirkung |
|---|---|
| Keine Sicherheitspatches | Schwachstellen in der Video-/Bildverarbeitung bleiben ungepatcht |
| Keine .NET 6+ Unterstützung | Moderne .NET-Funktionen, AOT oder plattformübergreifende Bereitstellung nicht nutzbar |
| Keine neuen Codec-Unterstützung | Kein H.265, AV1, VP9 oder moderne Containerformate |
| Keine Community | Forum seit April 2012 geschlossen, keine aktiven Maintainer |
| DirectShow-Abhängigkeit | Von Microsoft zugunsten von Media Foundation als veraltet erklärt |
| Nur Windows | Kann nicht auf macOS, Linux, iOS, Android abzielen |
AForge.Video → VisioForge Video Capture SDK .Net
Klassenzuordnung
| AForge.Video Komponente | VisioForge Ersatz |
|---|---|
| VideoCaptureDevice | VideoCaptureCoreX + VideoCaptureDeviceSourceSettings |
| MJPEGStream | VideoCaptureCoreX + RTSPSourceSettings or UniversalSourceBlock |
| JPEGStream | VideoCaptureCoreX + IPCameraSourceSettings |
| ScreenCaptureStream | VideoCaptureCoreX + ScreenCaptureSourceSettings |
| FileVideoSource | MediaPlayerCoreX (Wiedergabe) oder VideoEditCoreX (Verarbeitung) |
| AsyncVideoSource | Integriert — alle VisioForge-Quellen sind standardmäßig asynchron |
| NewFrameEventArgs | OnVideoFrameBuffer Event |
C# Webcam-Aufnahme
AForge.NET — Webcam-Aufnahme (vorher)
C#// AForge: Manual device enumeration, callback-based, no recording
var videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
var videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);
videoSource.NewFrame += (sender, eventArgs) =>
{
Bitmap frame = (Bitmap)eventArgs.Frame.Clone();
pictureBox.Image = frame;
// Manual recording requires separate code
};
videoSource.Start();
// Cleanup
videoSource.SignalToStop();
videoSource.WaitForStop();VisioForge — C# Webcam-Aufnahme (nachher)
C#// VisioForge: Typed API, async, preview + recording built-in
var capture = new VideoCaptureCoreX(videoView); // Preview automatic
var devices = await DeviceEnumerator.Shared.VideoSourcesAsync();
capture.Video_Source = new VideoCaptureDeviceSourceSettings(devices[0]);
capture.Outputs_Add(new MP4Output("recording.mp4"), true);
await capture.StartAsync();
// Stop
await capture.StopAsync();C# IP-Kamera RTSP / MJPEG Streaming
AForge.NET — MJPEG-Stream (vorher)
C#// AForge: MJPEG only, no RTSP, no reconnection
var stream = new MJPEGStream("http://camera-ip/mjpg/video.mjpg");
stream.NewFrame += (sender, eventArgs) =>
{
pictureBox.Image = (Bitmap)eventArgs.Frame.Clone();
};
stream.Start();VisioForge — C# RTSP IP-Kamera-Aufnahme (nachher)
C#// VisioForge: RTSP, RTMP, HLS, MJPEG — with auto-reconnection
var capture = new VideoCaptureCoreX(videoView);
capture.Video_Source = new RTSPSourceSettings(
new Uri("rtsp://admin:pass@camera-ip/stream"));
capture.Outputs_Add(new MP4Output("recording.mp4"), true);
await capture.StartAsync();C# Bildschirmaufnahme und Aufzeichnung
AForge.NET — Bildschirmaufnahme (vorher)
C#// AForge: Basic, CPU-intensive, no recording
var screenStream = new ScreenCaptureStream(Screen.PrimaryScreen.Bounds);
screenStream.NewFrame += (sender, eventArgs) =>
{
pictureBox.Image = (Bitmap)eventArgs.Frame.Clone();
// Must manually encode and write frames to create a recording
};
screenStream.Start();VisioForge — C# Bildschirmrekorder (nachher)
C#// VisioForge: Region selection, cursor capture, hardware encoding
var capture = new VideoCaptureCoreX(videoView);
capture.Video_Source = new ScreenCaptureSourceSettings();
capture.Outputs_Add(new MP4Output("screen.mp4", new H264EncoderSettings()), true);
await capture.StartAsync();AForge.Vision → VisioForge Computer Vision Blöcke
Klassenzuordnung
| AForge.Vision Komponente | VisioForge Ersatz |
|---|---|
| MotionDetector | CVMotionCellsBlock — MOG2-Hintergrundsubtraktion mit Objektverfolgung und ID-Zuweisung |
| TwoFramesDifferenceDetector | CVMotionCellsBlock — MOG2 (history: 500 frames, variance threshold: 40) |
| SimpleBackgroundModelingDetector | CVMotionCellsBlock — automatisches Hintergrundmodell mit konturbasierter Erkennung |
| CustomFrameDifferenceDetector | Konfigurierbare CVMotionCellsSettings |
| MotionAreaHighlighting | CVMotionCellsBlock mit DrawEnabled = true — zeichnet Begrenzungsrahmen mit Objekt-IDs |
| GridMotionAreaProcessing | Zonenbasierte Bewegungserkennung über Video Capture SDK Events |
| BlobCounter | CVMotionCellsBlock — Blob-Tracking, Konturerkennung, Fahrzeugzählung über eine Tracking-Linie |
C# Bewegungs- und Objekterkennung
AForge.NET — Bewegungserkennung (vorher)
C#// AForge: Manual frame processing, no recording integration
var detector = new MotionDetector(
new TwoFramesDifferenceDetector(),
new MotionAreaHighlighting());
videoSource.NewFrame += (sender, eventArgs) =>
{
float motionLevel = detector.ProcessFrame((Bitmap)eventArgs.Frame.Clone());
if (motionLevel > 0.02f)
Console.WriteLine($"Motion: {motionLevel * 100:F1}%");
};VisioForge — ereignisbasierte Bewegungserkennung (Video Capture SDK)
C#// Integrated detection during capture + recording
var capture = new VideoCaptureCoreX(videoView);
capture.Video_Source = new VideoCaptureDeviceSourceSettings(devices[0]);
capture.Outputs_Add(new MP4Output("recording.mp4"), true);
capture.OnMotionDetection += (s, e) =>
{
if (e.Level > 30)
Console.WriteLine($"Motion: {e.Level}%");
};
await capture.StartAsync();VisioForge — CVMotionCellsBlock (MediaBlocks Pipeline)
C#// MOG2 background subtraction with automatic object tracking and IDs
var settings = new CVMotionCellsSettings
{
DrawEnabled = true
};
var detector = new CVMotionCellsBlock(settings);
// Tracks objects with unique IDs using Euclidean distance matchingC# Gesichtserkennung und Fußgängererkennung (nicht verfügbar in AForge)
Klassenzuordnung
| Funktion | VisioForge Block |
|---|---|
| Haar-Kaskaden-Gesichtserkennung | CVFaceDetectBlock — frontale/Profil-Gesichts-, Augen-, Nasen-, Munderkennung |
| DNN-Gesichtserkennung | CVFaceDetectBlock — Caffe SSD Modell, Konfidenzfilterung, GPU-Beschleunigung |
| DLib-Gesichtserkennung | CVFaceDetectBlock (CVD) — DLib HOG+SVM frontaler Gesichtsdetektor |
| Fußgängererkennung | CVFaceDetectBlock — integrierter HOG+SVM Personendetektor |
| Objektivverdeckungserkennung | CameraCoveredDetectorBlock — Canny-Kantenerkennung |
C# Gesichtserkennung
AForge.NET (vorher)
C#// AForge had no built-in face detection — required manual Haar cascade code
// or using Accord.NET's HaarObjectDetector on top of AForge framesVisioForge — Haar-Kaskaden-Gesichtserkennung
C#var settings = new CVFaceDetectSettings
{
DetectFrontalFace = true,
DetectProfileFace = true,
DetectEyes = true,
DetectNose = true,
DetectMouth = true,
MinFaceSize = new Size(30, 30),
ScaleFactor = 1.1,
DrawEnabled = true,
BlurFaces = false, // set true for privacy blur
PixelateFaces = false // set true for privacy pixelation
};
var detector = new CVFaceDetectBlock(settings);VisioForge — DNN-Gesichtsdetektor (höhere Genauigkeit, GPU-Unterstützung)
C#var settings = new CVFaceDetectSettings
{
Confidence = 0.25,
DrawEnabled = true,
BlurFaces = true // built-in privacy blur
};
var detector = new CVFaceDetectBlock(settings);VisioForge — DLib-Gesichtsdetektor
C#var settings = new CVFaceDetectSettings
{
DrawEnabled = true,
MinFaceSize = new Size(30, 30)
};
var detector = new CVFaceDetectBlock(settings);C# Fußgängererkennung
AForge.NET (vorher)
C#// AForge had no pedestrian detection — required manual HOG+SVM implementationVisioForge — Fußgängererkennung (nachher)
C#var settings = new CVFaceDetectSettings
{
DrawEnabled = true,
VideoScale = 1.0,
FramesToSkip = 2
};
var detector = new CVFaceDetectBlock(settings);
// Built-in HOG descriptors + SVM classifier, multi-scale detectionAForge.Imaging → VisioForge CV + OpenCvSharp
Klassenzuordnung
| AForge.Imaging Funktion | VisioForge integriert | Eigenständiges OpenCvSharp |
|---|---|---|
| GaussianBlur | CVProcess.BlurRegion() (kernel 23x23) | Cv2.GaussianBlur() |
| Pixellate | CVProcess.PixelateRegion() | Benutzerdefinierte Verkleinerung/Vergrößerung |
| CannyEdgeDetector | CameraCoveredDetector (thresholds 100/200) | Cv2.Canny() |
| Erosion / Dilation | Wird intern von CVMotionCellsBlock verwendet (5x5 Strukturelement) | Cv2.Erode() / Cv2.Dilate() |
| BlobCounter | CVMotionCellsBlock — Konturerkennung, Flächen-/Seitenverhältnisfilterung, konvexe Hülle | Cv2.FindContours() |
| Grayscale | Integrierte BGR→Gray-Konvertierung in allen Detektoren | Cv2.CvtColor() |
| Threshold | Integrierte binäre Schwellenwertbildung in der Bewegungspipeline | Cv2.Threshold() |
| ResizeBilinear | Integrierte Videoskalierung in allen Detektoreinstellungen | Cv2.Resize() |
| HistogramEqualization | Wird in CVFaceDetect für verbesserte Erkennung verwendet | Cv2.EqualizeHist() |
| HSLFiltering / Farbfilter | — | Cv2.InRange() / Cv2.CvtColor() |
| HoughLineTransformation | — | Cv2.HoughLinesP() |
| SobelEdgeDetector | — | Cv2.Sobel() |
| Template Matching | — | Cv2.MatchTemplate() |
Migrations-Checkliste
- AForge-Referenzen inventarisieren — Alle `using AForge.*` in Ihrem Projekt finden
- VisioForge NuGet-Pakete installieren
- Videoquellenklassen ersetzen
- Bewegungserkennung ersetzen
- Gesichtserkennung ersetzen
- Blob-/Objekterkennung ersetzen
- Manuelle Frame-Schleifen entfernen
- Aufnahme/Streaming hinzufügen
- Auf modernes .NET umstellen — .NET 6-10
- Plattformübergreifend testen
- Für Bildverarbeitung — VisioForge CV deckt Weichzeichnen, Verpixelung, Canny, Morphologie ab; OpenCvSharp für zusätzliche Filter verwenden
Was Sie nach der Migration gewinnen
| Fähigkeit | AForge.NET | Nach der Migration |
|---|---|---|
| Framework | .NET Framework 2.0 | .NET 6-10 |
| Plattformen | Nur Windows | Windows, macOS, Linux, iOS, Android |
| Videoaufnahme | Einfaches DirectShow | Professionelles SDK mit asynchroner API |
| Aufzeichnung | Manuelle Implementierung | Integriert (MP4, MKV, AVI, WebM) |
| Hardware-Encoding | Keines | NVENC, QSV, AMF, VideoToolbox |
| Streaming | Keines | RTMP, HLS, SRT, NDI |
| Audioeffekte | Keine | 40+ (EQ, Reverb, Chorus, 3D) |
| Videoeffekte | Keine | GPU + CPU Pipeline |
| Gesichtserkennung | Keine | Haar + DNN (Caffe SSD) + DLib HOG, mit Weichzeichnung/Verpixelung |
| Bewegungserkennung | Einfache Frame-Differenzierung | MOG2-Hintergrundsubtraktion + Objektverfolgung mit IDs |
| Fußgängererkennung | Keine | Integrierter HOG+SVM Personendetektor |
| IP-Kameras | Nur MJPEG | RTSP, RTMP, HLS, ONVIF |
| Virtuelle Kamera | Keine | Ausgabe an Zoom/Teams/OBS |
| Wartung | Eingestellt (2013) | Aktive Entwicklung |
| Sicherheit | Ungepatcht | Regelmäßige Updates |
Frequently Asked Questions
Wird AForge.NET noch gepflegt?
Nein. AForge.NET wurde seit Juli 2013 aufgegeben — ohne Updates, Sicherheitspatches oder .NET 6+ Unterstützung. Community-Forks existieren, variieren aber in Qualität und Wartung. Verwenden Sie VisioForge .Net SDK als moderne AForge.NET Alternative.
Was ist die beste AForge.NET Alternative für C# Videoaufnahme?
VisioForge Video Capture SDK .Net ersetzt AForge.Video mit einer modernen asynchronen API, die Webcams, IP-Kameras (RTSP/ONVIF), Bildschirmaufnahme und Ausgabe in MP4, WebM und andere Formate auf .NET 6-10 unterstützt.
Ersetzt VisioForge die AForge.Imaging Filter?
Teilweise. VisioForge CV enthält Weichzeichnung, Verpixelung, Canny-Kantenerkennung, morphologische Operationen, Graustufenkonvertierung und Histogramm-Equalisierung. Für die volle Palette an Bildfiltern (Sobel, Hough, Farbfilterung, Template Matching) verwenden Sie OpenCvSharp zusammen mit VisioForge.
Kann ich VisioForge für C# Gesichtserkennung ohne AForge verwenden?
Ja. VisioForge .Net SDK enthält drei integrierte Gesichtserkennungs-Engines — Haar-Kaskade, DNN-basiert und DLib-basiert — mit integrierter Datenschutz-Weichzeichnung und -Verpixelung. Keine AForge- oder Accord.NET-Abhängigkeit erforderlich.
Unterstützt VisioForge .NET 6, .NET 8, .NET 9 und .NET 10?
Ja. Alle VisioForge .Net SDK Pakete unterstützen .NET 6 bis .NET 10, einschließlich plattformübergreifender Bereitstellung auf Windows, macOS, Linux, iOS und Android.
Kann ich schrittweise von AForge.NET migrieren?
Ja. VisioForge SDKs können während der Migration neben AForge.NET-Paketen bestehen. Ersetzen Sie eine Komponente nach der anderen — beginnen Sie mit Videoaufnahme, dann Erkennung, dann Bildverarbeitung — und entfernen Sie AForge NuGet-Pakete nach Abschluss jedes Schritts.
