VisioForge

Last updated: Enero 2026

Video Capture SDK .NET vs Medialooks MFormats SDK

Motor de pipeline vs Comparación de captura basada en frames

Elegir entre VisioForge Video Capture SDK .NET y Medialooks MFormats SDK es una decisión entre dos modelos arquitectónicos fundamentalmente diferentes. El Video Capture SDK utiliza un motor basado en pipeline donde se configuran fuentes, procesamiento y salidas de forma declarativa, mientras que MFormats sigue un modelo basado en frames de captura-proceso-salida donde se extrae manualmente cada frame y se enruta. Esta guía compara arquitectura, características, soporte de plataformas, precios y código real para que pueda tomar la decisión correcta para su proyecto.

Resumen ejecutivo

AspectoVideo Capture SDK .NETMFormats SDK
ArquitecturaMotor dual: DirectShow/Media Foundation nativo + pipelines FFmpeg integradasBucle de captura-proceso-salida basado en frames con objetos COM
Soporte de plataformasWindows, macOS, Linux, Android, iOS (5 plataformas)Solo Windows
Precios250-500 EUR/año (suscripción) o 1.500 EUR equipo/perpetua~4.508 $/desarrollador/año (suscripción obligatoria)
Ideal paraApps de captura multiplataforma, pipelines multi-salida, efectos de video, detecciónSDI broadcast multi-vendor, overlays HTML5 CG, flujos de trabajo de playlist/playout
Hardware SDISoporte Blackmagic DeckLinkBlackmagic, AJA, Bluefish444, Deltacast SDI multi-vendor
Frameworks UIWinForms, WPF, MAUI, Avalonia, Uno, Console, BlazorWinForms, WPF, Console
Modelo de licenciaPerpetua o suscripción anual; funciona después de expirarSolo suscripción anual; marca de agua si la suscripción caduca
SoporteSistema de tickets dedicado, SLA prioritarioSoporte por email, foro

Análisis profundo de la arquitectura

Arquitectura de Video Capture SDK .NET

El Video Capture SDK utiliza un diseño basado en pipeline. Se configuran la fuente, las etapas de procesamiento y las salidas de forma declarativa. El motor ensambla el grafo de filtros interno automáticamente, gestionando hilos, sincronización y gestión de búferes. Un motor dual envuelve DirectShow/Media Foundation para acceso nativo a dispositivos y un pipeline FFmpeg integrado para códecs avanzados e ingesta de cámaras IP.

  • Configuración declarativa de pipeline: establecer propiedades, llamar a StartAsync()
  • Motor dual: APIs de captura nativas del SO + FFmpeg integrado
  • Vista previa acelerada por GPU vía renderizadores Direct3D / OpenGL
  • Arquitectura dirigida por eventos con soporte .NET async/await
  • Modelo de proceso único con gestión automática de hilos
  • Multi-salida desde un pipeline: grabar + transmitir + captura simultáneamente

Arquitectura de MFormats SDK

MFormats utiliza un modelo basado en frames de captura-proceso-salida construido sobre objetos COM. Se crea un MFReader para capturar frames, se procesa cada frame a través de objetos MFTransform y se envían a salidas MFWriter o MFRenderer. Esto proporciona control granular por frame pero requiere escribir el bucle de captura, gestionar hilos y manejar la temporización de frames manualmente.

  • Bucle basado en frames: capturar frame de MFReader, procesar, enviar a MFWriter
  • Arquitectura basada en COM con wrappers de interoperabilidad .NET
  • Gestión manual de hilos y temporización de frames requerida
  • Control por frame permite lógica de enrutamiento personalizada
  • Objetos separados para cada etapa del pipeline (Reader, Transform, Writer, Renderer)
  • Playout y programación de playlist integrados para flujos de trabajo de broadcast

Diferencias arquitectónicas clave

AspectoVideo Capture SDKMFormats SDK
Modelo de programaciónPipeline declarativo: configurar e iniciarBucle imperativo: capturar, procesar, salida por frame
HilosGestión automática interna de hilosEl desarrollador gestiona los hilos del bucle de captura
Enrutamiento de framesAutomático vía configuración de pipelineEnrutamiento manual por frame en código
Multi-salidaSalidas simultáneas integradas desde un pipelineEl desarrollador clona frames y enruta a múltiples writers
PlataformaMultiplataforma (.NET 6-10, MAUI)Solo Windows (basado en COM)
Modelo de objetosAPI administrada .NET puraInteroperabilidad COM con wrappers .NET

Comparación característica por característica

Fuentes de captura

CaracterísticaVideo Capture SDKMFormats SDK
Webcams USB
Captura de pantalla / escritorio
Cámaras IP (RTSP/ONVIF)
Blackmagic DeckLink SDI
Tarjetas SDI AJA
Tarjetas SDI Bluefish444
Tarjetas SDI Deltacast
Sintonizadores de TV (BDA/DVB)
Fuentes NDI
Cámaras industriales (GenICam/GigE Vision)
Cámaras virtuales (OBS Virtual Cam)⚠️(Vía DirectShow)

Grabación y salida

CaracterísticaVideo Capture SDKMFormats SDK
MP4 (H.264 / H.265)
Contenedor MXF⚠️(MFormats fuerte en MXF broadcast)
Contenedor MKV
WebM (VP8 / VP9 / AV1)
AVI
MOV (ProRes)
WMV / ASF
MPEG-TS
GIF animado
Solo audio (MP3, AAC, WAV, FLAC)⚠️
Grabación Pre-Evento (Buffer Circular)

Multi-salida

CaracterísticaVideo Capture SDKMFormats SDK
Grabación + streaming simultáneos
Múltiples salidas de grabación independientes⚠️(Requiere clonación manual de frames)
Control de salida independiente (iniciar/detener/pausar cada una)⚠️(Control manual por writer)
Diferentes códecs por salida
Captura durante la grabación

Streaming

CaracterísticaVideo Capture SDKMFormats SDK
RTMP Push
Servidor RTSP
Streaming SRT
Salida HLS⚠️
Salida NDI
UDP / TCP Multicast

Procesamiento de video y efectos

CaracterísticaVideo Capture SDKMFormats SDK
Redimensionamiento / recorte en tiempo real
Desentrelazado
Ajuste de color
Overlays de texto / imagen
Overlays HTML5 CG
Chroma Key (pantalla verde)
Efectos de video acelerados por GPU (40+)⚠️(Efectos integrados limitados)
Imagen en imagen
Transiciones y cortinillas

Audio

CaracterísticaVideo Capture SDKMFormats SDK
Captura de dispositivo de audio
Mezcla de audio (múltiples entradas)
Efectos de audio (40+ integrados: EQ, compresor, reverb, etc.)
Vúmetro / monitoreo de nivel
Captura de audio del sistema (loopback)⚠️
Enrutamiento de audio embebido (SDI)

Detección y análisis

CaracterísticaVideo Capture SDKMFormats SDK
Detección de movimiento
Detección de rostros
Lectura de códigos de barras / QR
Seguimiento de objetos
Detección de nivel de audio

Broadcast y playout

CaracterísticaVideo Capture SDKMFormats SDK
Programación de playlist / playout
Salida SDI multi-vendor⚠️(MFormats soporta salida AJA, Bluefish, Deltacast)
Overlays HTML5 CG (generador de caracteres)
Salida de cámara virtual
Genlock / sincronización de referencia

Soporte de plataformas

Compatibilidad de sistemas operativos

PlataformaVideo Capture SDKMFormats SDK
Windows x64
Windows ARM64
macOS (Apple Silicon + Intel)
Linux x64 (Ubuntu, Debian, Fedora)
Linux ARM64 (Raspberry Pi)
Android (vía .NET MAUI)
iOS (vía .NET MAUI)

Compatibilidad de frameworks UI

FrameworkVideo Capture SDKMFormats SDK
WinForms
WPF
.NET MAUI
Avalonia UI
Uno Platform
Console / Service
Blazor (Server-Side)

Comparación de precios

Precios de Video Capture SDK .NET

Desarrollador (Anual)250-500 EUR/año

1 desarrollador, uso comercial, actualizaciones y soporte anuales

Equipo perpetua1.500 EUR

Hasta 3 desarrolladores, licencia perpetua, 1 año de actualizaciones incluido

Equipo perpetua1.500 EUR

Hasta 8 desarrolladores, licencia perpetua, 1 año de actualizaciones incluido

All licenses include:

  • Distribución libre de regalías
  • Todos los ejemplos de código fuente
  • Soporte prioritario por tickets
  • Todos los destinos de plataforma incluidos
  • Opción perpetua: siga usando después de que expire la suscripción (sin marca de agua)

Precios de MFormats SDK

MFormats SDK (1 desarrollador)~4.508 $/año

Suscripción anual, un solo desarrollador, solo Windows

5 desarrolladores / 3 años~67.620 $

5 puestos de desarrollador, compromiso de suscripción de 3 años

Licencia de runtimeCosto adicional

Puede requerir tarifas de runtime por implementación según la configuración

Advertencia de caducidad de suscripción

MFormats SDK utiliza un modelo de suscripción anual obligatoria. Si su suscripción caduca o no se renueva:

  • Se agrega automáticamente una marca de agua a todas las salidas de video
  • No puede continuar usando el SDK en producción sin una suscripción activa
  • No existe opción de licencia perpetua como alternativa
  • Sus aplicaciones implementadas mostrarán marcas de agua si el servidor de licencias no puede validar

El Video Capture SDK ofrece licencias perpetuas que continúan funcionando indefinidamente después de la compra, sin penalizaciones de marca de agua por renovaciones caducadas.

Ejemplos de código

Ejemplo 1: Captura de webcam a 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();

MFormats SDK

C#
// MFormats: Frame-based capture loop
MFDeviceClass devClass = new MFDeviceClass();
MFReaderClass reader = new MFReaderClass();
MFWriterClass writer = new MFWriterClass();
MFRendererClass renderer = new MFRendererClass();

// Configure video device
reader.DeviceSet(eMFDeviceType.eMFDT_Video, 0, "");
reader.DeviceSet(eMFDeviceType.eMFDT_Audio, 0, "");

// Configure writer output
writer.WriterSet("recording.mp4", 0, "");

// You must run the capture loop yourself
while (capturing)
{
    MFFrame frame;
    reader.SourceFrameGet(-1, out frame, "");

    if (frame != null)
    {
        // Preview
        renderer.RenderSet("preview", frame, "");

        // Write to file
        writer.WriterPut(frame, "");

        // Release frame manually
        Marshal.ReleaseComObject(frame);
    }

    Thread.Sleep(1); // Manual timing
}

Ejemplo 2: Cámara IP con overlay + streaming

Video Capture SDK .NET

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

var capture = new VideoCaptureCore();

// IP camera source
capture.IP_Camera_Source = new IPCameraSourceSettings
{
    URL = "rtsp://192.168.1.100:554/stream",
    Type = IPCameraType.RTSP
};

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

// Stream to RTMP
capture.Network_Streaming_Enabled = true;
capture.Network_Streaming_Format = new RTMPOutput
{
    URL = "rtmp://streaming-server/live",
    StreamKey = "stream_key",
    Video = new H264EncoderSettings { Bitrate = 4500 },
    Audio = new AACEncoderSettings { Bitrate = 128 }
};

// Also record locally
capture.Output_Filename = "backup.mp4";
capture.Output_Format = new MP4Output();

await capture.StartAsync();

MFormats SDK

C#
// MFormats: Manual frame loop with overlay + streaming
MFReaderClass reader = new MFReaderClass();
MFWriterClass localWriter = new MFWriterClass();
MFWriterClass rtmpWriter = new MFWriterClass();
MFRendererClass renderer = new MFRendererClass();

// Configure RTSP source
reader.ReaderOpen("rtsp://192.168.1.100:554/stream", "");

// Configure outputs
localWriter.WriterSet("backup.mp4", 0, "");
rtmpWriter.WriterSet("rtmp://streaming-server/live/stream_key", 0, "");

while (capturing)
{
    MFFrame frame;
    reader.SourceFrameGet(-1, out frame, "");

    if (frame != null)
    {
        // Add overlay manually via MFTransform
        MFOverlayClass overlay = new MFOverlayClass();
        overlay.OverlayTextSet(frame,
            DateTime.Now.ToString() + " - Camera 1",
            10, 10, 14, "Arial", 0xFFFFFF, 0, "");

        // Clone frame for second output
        MFFrame clone;
        frame.MFClone(out clone, eMFrameClone.eMFC_Full, eMFCC.eMFCC_Default);

        // Write to local file
        localWriter.WriterPut(frame, "");

        // Write to RTMP stream
        rtmpWriter.WriterPut(clone, "");

        Marshal.ReleaseComObject(clone);
        Marshal.ReleaseComObject(frame);
    }
}

Cuándo elegir cada solución

Elija Video Capture SDK cuando necesite

  • Aplicaciones de captura multiplataforma (Windows, macOS, Linux, móvil)
  • Arquitectura basada en pipeline con gestión automática de hilos y búferes
  • 40+ efectos de video y audio acelerados por GPU integrados
  • Detección de movimiento, rostros y escaneo de códigos de barras durante la captura
  • Salida de cámara virtual para integración con OBS, Zoom, Teams
  • Licenciamiento económico con opción de licencia perpetua
  • Múltiples salidas independientes con control individual de inicio/parada
  • Soporte de cámaras industriales (GenICam, GigE Vision)
  • Soporte de sintonizador de TV y captura DVB

Elija MFormats SDK cuando necesite

  • Soporte SDI multi-vendor: AJA, Bluefish444, Deltacast junto con Blackmagic
  • Playout de broadcast con programación de playlists y automatización
  • Overlays CG (generador de caracteres) basados en HTML5 para broadcast en vivo
  • Genlock y sincronización de referencia para entornos de estudio de broadcast
  • Control manual por frame sobre cada paso de procesamiento
  • Formato contenedor MXF con soporte completo de metadatos de broadcast
  • Integración con infraestructura de broadcast existente y routers SDI

Matriz de decisión

RequisitoVideo Capture SDKMFormats SDKGanador
Soporte multiplataformaVideo Capture SDK
Multi-salida con control independienteVideo Capture SDK
Efectos de audio (40+ integrados)Video Capture SDK
Efectos de video GPUVideo Capture SDK
Detección de movimiento / rostros / códigos de barrasVideo Capture SDK
Salida de cámara virtualVideo Capture SDK
Presupuesto bajo 2.000 EURVideo Capture SDK
Opción de licencia perpetuaVideo Capture SDK
Cámaras industriales (GenICam)Video Capture SDK
Sintonizador de TV / captura DVBVideo Capture SDK
SDI multi-vendor (AJA, Bluefish444)MFormats SDK
Overlays HTML5 CG para broadcastMFormats SDK

Conclusión

Video Capture SDK .NET

El Video Capture SDK destaca como un motor de captura multiplataforma basado en pipeline para desarrolladores .NET que necesitan procesamiento de video avanzado, funciones de detección, múltiples salidas independientes y amplio soporte de dispositivos. Su API declarativa, 40+ efectos GPU y licenciamiento perpetuo lo convierten en la opción más rentable para la mayoría de aplicaciones de captura, desde escritorio hasta móvil.

MFormats SDK

MFormats SDK es una opción sólida para flujos de trabajo centrados en broadcast que requieren soporte de hardware SDI multi-vendor (AJA, Bluefish444, Deltacast), overlays HTML5 CG y automatización de playout basada en playlists. Su arquitectura basada en frames ofrece control granular por frame adecuado para entornos de broadcast profesionales. Sin embargo, es solo para Windows, significativamente más costoso y agrega marcas de agua si la suscripción caduca.

The Reality

Para la mayoría de proyectos de captura de video .NET — especialmente aquellos que requieren soporte multiplataforma, funciones de detección o licenciamiento económico — el Video Capture SDK es la elección clara. MFormats tiene su lugar específicamente en estudios de broadcast SDI multi-vendor donde la integración de hardware AJA/Bluefish y los flujos de trabajo de overlay CG son esenciales.

Frequently Asked Questions

¿Qué sucede con mi aplicación MFormats si no renuevo la suscripción?
MFormats utiliza un modelo de suscripción anual obligatoria. Si su suscripción caduca, se agrega automáticamente una marca de agua a todas las salidas de video en sus aplicaciones implementadas. No existe opción de licencia perpetua como alternativa. El Video Capture SDK, por el contrario, ofrece licencias perpetuas que continúan funcionando indefinidamente después de la compra sin penalizaciones de marca de agua.
¿El Video Capture SDK soporta tarjetas SDI AJA o Bluefish444?
Actualmente, el Video Capture SDK soporta tarjetas SDI Blackmagic DeckLink pero no soporta hardware AJA o Bluefish444. Si su proyecto requiere soporte SDI multi-vendor con AJA, Bluefish y Deltacast junto con Blackmagic, MFormats es la mejor opción para ese requisito específico.
¿Puede el Video Capture SDK ejecutarse en macOS y Linux?
Sí. El Video Capture SDK soporta Windows, macOS (Apple Silicon e Intel), Linux x64, Linux ARM64, Android e iOS. MFormats es solo para Windows debido a su arquitectura basada en COM.
¿Cómo se comparan los modelos de precios para un equipo de 5 desarrolladores durante 3 años?
Para 5 desarrolladores durante 3 años, MFormats cuesta aproximadamente 67.620 $. La licencia perpetua de equipo del Video Capture SDK cuesta 1.500 EUR como compra perpetua única para hasta 8 desarrolladores. Es un pago único frente a 67.620 $ — aproximadamente un 97% menos que MFormats.
¿Tiene MFormats detección de movimiento o rostros integrada?
No. MFormats no incluye funciones de detección integradas. Necesitaría integrar bibliotecas de terceros para detección de movimiento, detección de rostros o escaneo de códigos de barras. El Video Capture SDK incluye todas estas como funciones integradas con callbacks dirigidos por eventos.
¿Qué SDK es mejor para aplicaciones de playout de broadcast?
MFormats está diseñado específicamente para flujos de trabajo de playout de broadcast. Incluye programación de playlists, overlays HTML5 CG, soporte genlock y salida SDI multi-vendor. Si su caso de uso principal es la automatización de playout de broadcast, MFormats es la opción más sólida.
¿Puedo migrar de MFormats al Video Capture SDK?
Sí, pero los modelos de programación son diferentes. MFormats utiliza un bucle basado en frames de captura-proceso-salida, mientras que el Video Capture SDK usa un pipeline declarativo. La migración típicamente implica reemplazar el bucle manual de frames con configuración de pipeline y manejadores de eventos. La mayoría de equipos encuentran que el código del SDK es significativamente más corto y fácil de mantener. Espere de 1 a 3 semanas para la migración dependiendo de la complejidad del proyecto.

Comenzar

Related Comparisons