VisioForge

Last updated: Janvier 2026

Alternative à AForge.NET : Guide de migration vers VisioForge .Net SDK

Remplacez AForge.NET abandonné par un SDK .NET moderne et multiplateforme

Développeurs C# migrant d'AForge.NET (AForge.Video, AForge.Vision, AForge.Imaging) vers des alternatives modernes .NET 6-10

Pourquoi remplacer AForge.NET ?

AForge.NET a été abandonné depuis juillet 2013 — plus de 12 ans sans mises à jour, correctifs de sécurité ni corrections de bugs. Il cible .NET Framework 2.0 et ne peut pas fonctionner sur .NET 6-10 moderne sans forks communautaires de qualité variable.

RisqueImpact
Aucun correctif de sécuritéLes vulnérabilités dans le traitement vidéo/image restent non corrigées
Pas de support .NET 6+Impossible d'utiliser les fonctionnalités modernes de .NET, AOT ou le déploiement multiplateforme
Pas de support de nouveaux codecsPas de H.265, AV1, VP9 ni de formats de conteneur modernes
Pas de communautéForum fermé en avril 2012, aucun mainteneur actif
Dépendance à DirectShowObsolète selon Microsoft en faveur de Media Foundation
Windows uniquementImpossible de cibler macOS, Linux, iOS, Android

AForge.Video → VisioForge Video Capture SDK .Net

Correspondance des classes

Composant AForge.VideoRemplacement VisioForge
VideoCaptureDeviceVideoCaptureCoreX + VideoCaptureDeviceSourceSettings
MJPEGStreamVideoCaptureCoreX + RTSPSourceSettings or UniversalSourceBlock
JPEGStreamVideoCaptureCoreX + IPCameraSourceSettings
ScreenCaptureStreamVideoCaptureCoreX + ScreenCaptureSourceSettings
FileVideoSourceMediaPlayerCoreX (lecture) ou VideoEditCoreX (traitement)
AsyncVideoSourceIntégré — toutes les sources VisioForge sont asynchrones par défaut
NewFrameEventArgsÉvénement OnVideoFrameBuffer

C# Capture webcam

AForge.NET — capture webcam (avant)

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# capture webcam (après)

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# Caméra IP RTSP / MJPEG Streaming

AForge.NET — flux MJPEG (avant)

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# capture caméra IP RTSP (après)

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# Capture et enregistrement d'écran

AForge.NET — capture d'écran (avant)

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# enregistreur d'écran (après)

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 → Blocs de vision par ordinateur VisioForge

Correspondance des classes

Composant AForge.VisionRemplacement VisioForge
MotionDetectorCVMotionCellsBlock — soustraction de fond MOG2 avec suivi d'objets et attribution d'ID
TwoFramesDifferenceDetectorCVMotionCellsBlock — MOG2 (history: 500 frames, variance threshold: 40)
SimpleBackgroundModelingDetectorCVMotionCellsBlock — modèle de fond automatique avec détection basée sur les contours
CustomFrameDifferenceDetectorCVMotionCellsSettings configurable
MotionAreaHighlightingCVMotionCellsBlock avec DrawEnabled = true — dessine des boîtes englobantes avec les IDs des objets
GridMotionAreaProcessingDétection de mouvement par zones via les événements du Video Capture SDK
BlobCounterCVMotionCellsBlock — suivi de blobs, détection de contours, comptage de véhicules sur une ligne de suivi

C# Détection de mouvement et d'objets

AForge.NET — détection de mouvement (avant)

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 — détection de mouvement événementielle (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 (pipeline MediaBlocks)

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 matching

C# Détection faciale et détection de piétons (non disponible dans AForge)

Correspondance des classes

FonctionnalitéBloc VisioForge
Détection faciale par cascade HaarCVFaceDetectBlock — détection de visage frontal/profil, yeux, nez, bouche
Détection faciale DNNCVFaceDetectBlock — modèle Caffe SSD, filtrage par confiance, accélération GPU
Détection faciale DLibCVFaceDetectBlock (CVD) — détecteur facial frontal DLib HOG+SVM
Détection de piétonsCVFaceDetectBlock — détecteur de personnes HOG+SVM intégré
Détection d'obstruction d'objectifCameraCoveredDetectorBlock — détection de bords Canny

C# Détection faciale

AForge.NET (avant)

C#
// AForge had no built-in face detection — required manual Haar cascade code
// or using Accord.NET's HaarObjectDetector on top of AForge frames

VisioForge — détection faciale par cascade Haar

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 — détecteur facial DNN (précision supérieure, support GPU)

C#
var settings = new CVFaceDetectSettings
{
    Confidence = 0.25,
    DrawEnabled = true,
    BlurFaces = true  // built-in privacy blur
};
var detector = new CVFaceDetectBlock(settings);

VisioForge — détecteur facial DLib

C#
var settings = new CVFaceDetectSettings
{
    DrawEnabled = true,
    MinFaceSize = new Size(30, 30)
};
var detector = new CVFaceDetectBlock(settings);

C# Détection de piétons

AForge.NET (avant)

C#
// AForge had no pedestrian detection — required manual HOG+SVM implementation

VisioForge — détection de piétons (après)

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 detection

AForge.Imaging → VisioForge CV + OpenCvSharp

Correspondance des classes

Fonctionnalité AForge.ImagingVisioForge intégréOpenCvSharp autonome
GaussianBlurCVProcess.BlurRegion() (kernel 23x23)Cv2.GaussianBlur()
PixellateCVProcess.PixelateRegion()Réduction/agrandissement personnalisé
CannyEdgeDetectorCameraCoveredDetector (thresholds 100/200)Cv2.Canny()
Erosion / DilationUtilisé en interne par CVMotionCellsBlock (élément structurant 5x5)Cv2.Erode() / Cv2.Dilate()
BlobCounterCVMotionCellsBlock — détection de contours, filtrage par aire/rapport d'aspect, enveloppe convexeCv2.FindContours()
GrayscaleConversion BGR→Gray intégrée dans tous les détecteursCv2.CvtColor()
ThresholdSeuillage binaire intégré dans le pipeline de mouvementCv2.Threshold()
ResizeBilinearMise à l'échelle vidéo intégrée dans tous les paramètres des détecteursCv2.Resize()
HistogramEqualizationUtilisé dans CVFaceDetect pour améliorer la détectionCv2.EqualizeHist()
HSLFiltering / filtres de couleurCv2.InRange() / Cv2.CvtColor()
HoughLineTransformationCv2.HoughLinesP()
SobelEdgeDetectorCv2.Sobel()
Template matchingCv2.MatchTemplate()

Liste de vérification de migration

  • Inventorier les références AForge — Trouver tous les `using AForge.*` dans votre projet
  • Installer les packages NuGet VisioForge
  • Remplacer les classes de sources vidéo
  • Remplacer la détection de mouvement
  • Remplacer la détection faciale
  • Remplacer la détection de blobs/objets
  • Supprimer les boucles manuelles de frames
  • Ajouter l'enregistrement/streaming
  • Cibler le .NET moderne — .NET 6-10
  • Tester le multiplateforme
  • Pour le traitement d'images — VisioForge CV couvre le flou, la pixelisation, Canny, la morphologie ; utiliser OpenCvSharp pour les filtres supplémentaires

Ce que vous gagnez après la migration

CapacitéAForge.NETAprès la migration
Framework.NET Framework 2.0.NET 6-10
PlateformesWindows uniquementWindows, macOS, Linux, iOS, Android
Capture vidéoDirectShow basiqueSDK professionnel avec API asynchrone
EnregistrementImplémentation manuelleIntégré (MP4, MKV, AVI, WebM)
Encodage matérielAucunNVENC, QSV, AMF, VideoToolbox
StreamingAucunRTMP, HLS, SRT, NDI
Effets audioAucun40+ (EQ, reverb, chorus, 3D)
Effets vidéoAucunPipeline GPU + CPU
Détection facialeAucuneHaar + DNN (Caffe SSD) + DLib HOG, avec flou/pixelisation
Détection de mouvementDifférence de frames basiqueSoustraction de fond MOG2 + suivi d'objets avec IDs
Détection de piétonsAucuneDétecteur de personnes HOG+SVM intégré
Caméras IPMJPEG uniquementRTSP, RTMP, HLS, ONVIF
Caméra virtuelleAucuneSortie vers Zoom/Teams/OBS
MaintenanceAbandonné (2013)Développement actif
SécuritéNon corrigéMises à jour régulières

Frequently Asked Questions

AForge.NET est-il encore maintenu ?
Non. AForge.NET a été abandonné depuis juillet 2013 sans mises à jour, correctifs de sécurité ni support .NET 6+. Des forks communautaires existent mais varient en qualité et maintenance. Utilisez VisioForge .Net SDK comme alternative moderne à AForge.NET.
Quelle est la meilleure alternative à AForge.NET pour la capture vidéo en C# ?
VisioForge Video Capture SDK .Net remplace AForge.Video avec une API asynchrone moderne supportant les webcams, caméras IP (RTSP/ONVIF), capture d'écran et sortie en MP4, WebM et autres formats sur .NET 6-10.
VisioForge remplace-t-il les filtres d'AForge.Imaging ?
Partiellement. VisioForge CV inclut le flou, la pixelisation, la détection de bords Canny, les opérations morphologiques, la conversion en niveaux de gris et l'égalisation d'histogramme. Pour la gamme complète de filtres d'image (Sobel, Hough, filtrage de couleur, template matching), utilisez OpenCvSharp avec VisioForge.
Puis-je utiliser VisioForge pour la détection faciale en C# sans AForge ?
Oui. VisioForge .Net SDK inclut trois moteurs de détection faciale intégrés — cascade Haar, basé sur DNN et basé sur DLib — avec flou et pixelisation de confidentialité intégrés. Aucune dépendance à AForge ou Accord.NET nécessaire.
VisioForge supporte-t-il .NET 6, .NET 8, .NET 9 et .NET 10 ?
Oui. Tous les packages VisioForge .Net SDK supportent .NET 6 à .NET 10, y compris le déploiement multiplateforme sur Windows, macOS, Linux, iOS et Android.
Puis-je migrer depuis AForge.NET de manière incrémentale ?
Oui. Les SDKs VisioForge peuvent coexister avec les packages AForge.NET pendant la migration. Remplacez un composant à la fois — commencez par la capture vidéo, puis la détection, puis le traitement d'images — et supprimez les packages NuGet AForge à mesure que chaque étape est terminée.

Commencez votre migration

Guides de migration associés