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
| Aspecto | Video Capture SDK .NET | MFormats SDK |
|---|---|---|
| Arquitectura | Motor dual: DirectShow/Media Foundation nativo + pipelines FFmpeg integradas | Bucle de captura-proceso-salida basado en frames con objetos COM |
| Soporte de plataformas | Windows, macOS, Linux, Android, iOS (5 plataformas) | Solo Windows |
| Precios | 250-500 EUR/año (suscripción) o 1.500 EUR equipo/perpetua | ~4.508 $/desarrollador/año (suscripción obligatoria) |
| Ideal para | Apps de captura multiplataforma, pipelines multi-salida, efectos de video, detección | SDI broadcast multi-vendor, overlays HTML5 CG, flujos de trabajo de playlist/playout |
| Hardware SDI | Soporte Blackmagic DeckLink | Blackmagic, AJA, Bluefish444, Deltacast SDI multi-vendor |
| Frameworks UI | WinForms, WPF, MAUI, Avalonia, Uno, Console, Blazor | WinForms, WPF, Console |
| Modelo de licencia | Perpetua o suscripción anual; funciona después de expirar | Solo suscripción anual; marca de agua si la suscripción caduca |
| Soporte | Sistema de tickets dedicado, SLA prioritario | Soporte 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
| Aspecto | Video Capture SDK | MFormats SDK |
|---|---|---|
| Modelo de programación | Pipeline declarativo: configurar e iniciar | Bucle imperativo: capturar, procesar, salida por frame |
| Hilos | Gestión automática interna de hilos | El desarrollador gestiona los hilos del bucle de captura |
| Enrutamiento de frames | Automático vía configuración de pipeline | Enrutamiento manual por frame en código |
| Multi-salida | Salidas simultáneas integradas desde un pipeline | El desarrollador clona frames y enruta a múltiples writers |
| Plataforma | Multiplataforma (.NET 6-10, MAUI) | Solo Windows (basado en COM) |
| Modelo de objetos | API administrada .NET pura | Interoperabilidad COM con wrappers .NET |
Comparación característica por característica
Fuentes de captura
| Característica | Video Capture SDK | MFormats 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ística | Video Capture SDK | MFormats 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ística | Video Capture SDK | MFormats 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ística | Video Capture SDK | MFormats SDK |
|---|---|---|
| RTMP Push | ✅ | ✅ |
| Servidor RTSP | ✅ | ❌ |
| Streaming SRT | ✅ | ✅ |
| Salida HLS | ✅ | ⚠️ |
| Salida NDI | ✅ | ✅ |
| UDP / TCP Multicast | ✅ | ✅ |
Procesamiento de video y efectos
| Característica | Video Capture SDK | MFormats 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ística | Video Capture SDK | MFormats 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ística | Video Capture SDK | MFormats 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ística | Video Capture SDK | MFormats 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
| Plataforma | Video Capture SDK | MFormats 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
| Framework | Video Capture SDK | MFormats SDK |
|---|---|---|
| WinForms | ✅ | ✅ |
| WPF | ✅ | ✅ |
| .NET MAUI | ✅ | ❌ |
| Avalonia UI | ✅ | ❌ |
| Uno Platform | ✅ | ❌ |
| Console / Service | ✅ | ✅ |
| Blazor (Server-Side) | ✅ | ❌ |
Comparación de precios
Precios de Video Capture SDK .NET
1 desarrollador, uso comercial, actualizaciones y soporte anuales
Hasta 3 desarrolladores, licencia perpetua, 1 año de actualizaciones incluido
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
Suscripción anual, un solo desarrollador, solo Windows
5 puestos de desarrollador, compromiso de suscripción de 3 años
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
| Requisito | Video Capture SDK | MFormats SDK | Ganador |
|---|---|---|---|
| Soporte multiplataforma | Video Capture SDK | ||
| Multi-salida con control independiente | Video Capture SDK | ||
| Efectos de audio (40+ integrados) | Video Capture SDK | ||
| Efectos de video GPU | Video Capture SDK | ||
| Detección de movimiento / rostros / códigos de barras | Video Capture SDK | ||
| Salida de cámara virtual | Video Capture SDK | ||
| Presupuesto bajo 2.000 EUR | Video Capture SDK | ||
| Opción de licencia perpetua | Video Capture SDK | ||
| Cámaras industriales (GenICam) | Video Capture SDK | ||
| Sintonizador de TV / captura DVB | Video Capture SDK | ||
| SDI multi-vendor (AJA, Bluefish444) | MFormats SDK | ||
| Overlays HTML5 CG para broadcast | MFormats 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.
