VisioForge

Last updated: Enero 2026

Alternativa a AForge.NET: Guía de migración a VisioForge .Net SDK

Reemplace el abandonado AForge.NET con un SDK .NET moderno y multiplataforma

Desarrolladores C# que migran de AForge.NET (AForge.Video, AForge.Vision, AForge.Imaging) a alternativas modernas de .NET 6-10

¿Por qué reemplazar AForge.NET?

AForge.NET ha sido abandonado desde julio de 2013 — más de 12 años sin actualizaciones, parches de seguridad ni correcciones de errores. Está orientado a .NET Framework 2.0 y no puede ejecutarse en .NET 6-10 moderno sin forks comunitarios de calidad variable.

RiesgoImpacto
Sin parches de seguridadLas vulnerabilidades en el procesamiento de video/imagen permanecen sin parchear
Sin soporte .NET 6+No se pueden usar características modernas de .NET, AOT o implementación multiplataforma
Sin soporte de nuevos códecsSin H.265, AV1, VP9 ni formatos de contenedor modernos
Sin comunidadForo cerrado en abril de 2012, sin mantenedores activos
Dependencia de DirectShowObsoleto por Microsoft en favor de Media Foundation
Solo WindowsNo puede orientarse a macOS, Linux, iOS, Android

AForge.Video → VisioForge Video Capture SDK .Net

Mapeo de clases

Componente AForge.VideoReemplazo VisioForge
VideoCaptureDeviceVideoCaptureCoreX + VideoCaptureDeviceSourceSettings
MJPEGStreamVideoCaptureCoreX + RTSPSourceSettings or UniversalSourceBlock
JPEGStreamVideoCaptureCoreX + IPCameraSourceSettings
ScreenCaptureStreamVideoCaptureCoreX + ScreenCaptureSourceSettings
FileVideoSourceMediaPlayerCoreX (reproducción) o VideoEditCoreX (procesamiento)
AsyncVideoSourceIntegrado — todas las fuentes VisioForge son asíncronas por defecto
NewFrameEventArgsEvento OnVideoFrameBuffer

C# Captura de webcam

AForge.NET — captura de webcam (antes)

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# captura de webcam (despué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# Cámara IP RTSP / MJPEG Streaming

AForge.NET — flujo MJPEG (antes)

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# captura de cámara IP RTSP (despué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# Captura y grabación de pantalla

AForge.NET — captura de pantalla (antes)

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# grabador de pantalla (despué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 → Bloques de visión por computadora VisioForge

Mapeo de clases

Componente AForge.VisionReemplazo VisioForge
MotionDetectorCVMotionCellsBlock — sustracción de fondo MOG2 con seguimiento de objetos y asignación de ID
TwoFramesDifferenceDetectorCVMotionCellsBlock — MOG2 (history: 500 frames, variance threshold: 40)
SimpleBackgroundModelingDetectorCVMotionCellsBlock — modelo de fondo automático con detección basada en contornos
CustomFrameDifferenceDetectorCVMotionCellsSettings configurable
MotionAreaHighlightingCVMotionCellsBlock con DrawEnabled = true — dibuja cuadros delimitadores con IDs de objetos
GridMotionAreaProcessingDetección de movimiento basada en zonas mediante eventos del Video Capture SDK
BlobCounterCVMotionCellsBlock — seguimiento de blobs, detección de contornos, conteo de vehículos a través de una línea de seguimiento

C# Detección de movimiento y objetos

AForge.NET — detección de movimiento (antes)

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 — detección de movimiento basada en eventos (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# Detección facial y detección de peatones (no disponible en AForge)

Mapeo de clases

CaracterísticaBloque VisioForge
Detección facial por cascada HaarCVFaceDetectBlock — detección de rostro frontal/perfil, ojos, nariz, boca
Detección facial DNNCVFaceDetectBlock — modelo Caffe SSD, filtrado de confianza, aceleración GPU
Detección facial DLibCVFaceDetectBlock (CVD) — detector facial frontal DLib HOG+SVM
Detección de peatonesCVFaceDetectBlock — detector de personas HOG+SVM integrado
Detección de obstrucción de lenteCameraCoveredDetectorBlock — detección de bordes Canny

C# Detección facial

AForge.NET (antes)

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 — detección facial por cascada 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 — detector facial DNN (mayor precisión, soporte GPU)

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

VisioForge — detector facial DLib

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

C# Detección de peatones

AForge.NET (antes)

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

VisioForge — detección de peatones (despué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

Mapeo de clases

Característica AForge.ImagingVisioForge integradoOpenCvSharp independiente
GaussianBlurCVProcess.BlurRegion() (kernel 23x23)Cv2.GaussianBlur()
PixellateCVProcess.PixelateRegion()Reducción/ampliación personalizada
CannyEdgeDetectorCameraCoveredDetector (thresholds 100/200)Cv2.Canny()
Erosion / DilationUsado internamente por CVMotionCellsBlock (elemento estructurante 5x5)Cv2.Erode() / Cv2.Dilate()
BlobCounterCVMotionCellsBlock — detección de contornos, filtrado de área/relación de aspecto, envolvente convexaCv2.FindContours()
GrayscaleConversión BGR→Gray integrada en todos los detectoresCv2.CvtColor()
ThresholdUmbralización binaria integrada en la pipeline de movimientoCv2.Threshold()
ResizeBilinearEscalado de video integrado en todas las configuraciones de detectoresCv2.Resize()
HistogramEqualizationUsado en CVFaceDetect para mejorar la detecciónCv2.EqualizeHist()
HSLFiltering / filtros de colorCv2.InRange() / Cv2.CvtColor()
HoughLineTransformationCv2.HoughLinesP()
SobelEdgeDetectorCv2.Sobel()
Template matchingCv2.MatchTemplate()

Lista de verificación de migración

  • Inventariar referencias AForge — Encontrar todos los `using AForge.*` en su proyecto
  • Instalar paquetes NuGet de VisioForge
  • Reemplazar clases de fuentes de video
  • Reemplazar detección de movimiento
  • Reemplazar detección facial
  • Reemplazar detección de blobs/objetos
  • Eliminar bucles manuales de frames
  • Agregar grabación/streaming
  • Orientar a .NET moderno — .NET 6-10
  • Probar multiplataforma
  • Para procesamiento de imágenes — VisioForge CV cubre desenfoque, pixelación, Canny, morfología; usar OpenCvSharp para filtros adicionales

Lo que gana después de la migración

CapacidadAForge.NETDespués de la migración
Framework.NET Framework 2.0.NET 6-10
PlataformasSolo WindowsWindows, macOS, Linux, iOS, Android
Captura de videoDirectShow básicoSDK profesional con API asíncrona
GrabaciónImplementación manualIntegrada (MP4, MKV, AVI, WebM)
Codificación por hardwareNingunaNVENC, QSV, AMF, VideoToolbox
StreamingNingunoRTMP, HLS, SRT, NDI
Efectos de audioNinguno40+ (EQ, reverb, chorus, 3D)
Efectos de videoNingunoPipeline GPU + CPU
Detección facialNingunaHaar + DNN (Caffe SSD) + DLib HOG, con desenfoque/pixelación
Detección de movimientoDiferencia de frames básicaSustracción de fondo MOG2 + seguimiento de objetos con IDs
Detección de peatonesNingunaDetector de personas HOG+SVM integrado
Cámaras IPSolo MJPEGRTSP, RTMP, HLS, ONVIF
Cámara virtualNingunaSalida a Zoom/Teams/OBS
MantenimientoAbandonado (2013)Desarrollo activo
SeguridadSin parchesActualizaciones regulares

Frequently Asked Questions

¿Se sigue manteniendo AForge.NET?
No. AForge.NET ha sido abandonado desde julio de 2013 sin actualizaciones, parches de seguridad ni soporte para .NET 6+. Existen forks comunitarios pero varían en calidad y mantenimiento. Use VisioForge .Net SDK como alternativa moderna a AForge.NET.
¿Cuál es la mejor alternativa a AForge.NET para captura de video en C#?
VisioForge Video Capture SDK .Net reemplaza AForge.Video con una API asíncrona moderna que soporta webcams, cámaras IP (RTSP/ONVIF), captura de pantalla y salida a MP4, WebM y otros formatos en .NET 6-10.
¿VisioForge reemplaza los filtros de AForge.Imaging?
Parcialmente. VisioForge CV incluye desenfoque, pixelación, detección de bordes Canny, operaciones morfológicas, conversión a escala de grises y ecualización de histograma. Para la gama completa de filtros de imagen (Sobel, Hough, filtrado de color, template matching), use OpenCvSharp junto con VisioForge.
¿Puedo usar VisioForge para detección facial en C# sin AForge?
Sí. VisioForge .Net SDK incluye tres motores de detección facial integrados — cascada Haar, basado en DNN y basado en DLib — con desenfoque y pixelación de privacidad integrados. No se necesita dependencia de AForge o Accord.NET.
¿VisioForge soporta .NET 6, .NET 8, .NET 9 y .NET 10?
Sí. Todos los paquetes de VisioForge .Net SDK soportan .NET 6 hasta .NET 10, incluyendo implementación multiplataforma en Windows, macOS, Linux, iOS y Android.
¿Puedo migrar de AForge.NET de forma incremental?
Sí. Los SDKs de VisioForge pueden coexistir con los paquetes de AForge.NET durante la migración. Reemplace un componente a la vez — comience con la captura de video, luego la detección, luego el procesamiento de imágenes — y elimine los paquetes NuGet de AForge a medida que se complete cada paso.

Comience su migración

Guías de migración relacionadas