Video Capture SDK para C# .NET — API de Captura de Webcam, Pantalla y Cámara IP¶
Introducción¶
El Video Capture SDK para .NET es una API de captura de video en C# que permite grabar desde webcams, cámaras IP (RTSP/ONVIF) y pantallas en aplicaciones .NET. Reemplaza el código de captura de video DirectShow de bajo nivel con una API async moderna — enumera dispositivos, configura fuentes e inicia la grabación en pocas líneas de C#.
El SDK gestiona la enumeración de dispositivos, negociación de formatos, codificación acelerada por GPU y salida de archivos en Windows, macOS y Linux. Ya sea que necesites guardar un stream RTSP en archivo, capturar fotos desde una webcam o construir una herramienta de captura de pantalla, la API lo cubre.
Inicio Rápido¶
1. Instalar Paquetes NuGet¶
dotnet add package VisioForge.DotNet.VideoCapture
Agrega dependencias nativas específicas de plataforma:
<!-- Windows x64 -->
<PackageReference Include="VisioForge.CrossPlatform.Core.Windows.x64" Version="2025.11.0" />
<PackageReference Include="VisioForge.CrossPlatform.Libav.Windows.x64" Version="2025.11.0" />
<!-- macOS -->
<PackageReference Include="VisioForge.CrossPlatform.Core.macOS" Version="2025.9.1" />
<!-- Linux x64 -->
<PackageReference Include="VisioForge.CrossPlatform.Core.Linux.x64" Version="2025.11.0" />
<PackageReference Include="VisioForge.CrossPlatform.Libav.Linux.x64" Version="2025.11.0" />
Para la lista completa de paquetes y soporte de frameworks de UI (WinForms, WPF, MAUI, Avalonia), consulta la Guía de Instalación.
2. Inicializar el SDK¶
Llama a InitSDKAsync() una vez al iniciar la aplicación antes de usar cualquier funcionalidad de captura:
using VisioForge.Core;
await VisioForgeX.InitSDKAsync();
3. Captura de Webcam a MP4 en C# (Ejemplo Mínimo)¶
using VisioForge.Core;
using VisioForge.Core.VideoCaptureX;
using VisioForge.Core.Types.X.Sources;
using VisioForge.Core.Types.X.Output;
// Crear instancia de captura vinculada a un control VideoView
var capture = new VideoCaptureCoreX(videoView);
// Enumerar dispositivos disponibles
var videoDevices = await DeviceEnumerator.Shared.VideoSourcesAsync();
var audioDevices = await DeviceEnumerator.Shared.AudioSourcesAsync();
// Configurar fuentes de video y audio
capture.Video_Source = new VideoCaptureDeviceSourceSettings(videoDevices[0]);
capture.Audio_Source = audioDevices[0].CreateSourceSettingsVC();
capture.Audio_Record = true;
// Agregar salida MP4 (H.264 + AAC, aceleración GPU cuando esté disponible)
capture.Outputs_Add(new MP4Output("recording.mp4"));
// Iniciar captura
await capture.StartAsync();
// ... cuando termine:
await capture.StopAsync();
await capture.DisposeAsync();
4. Limpieza al Cerrar¶
VisioForgeX.DestroySDK();
Flujo de Trabajo Principal¶
Toda aplicación de captura sigue el mismo patrón:
- Inicializar SDK —
VisioForgeX.InitSDKAsync()(una vez por vida de la aplicación) - Enumerar dispositivos —
DeviceEnumerator.Shared.VideoSourcesAsync()/AudioSourcesAsync() - Crear objeto de captura —
new VideoCaptureCoreX(videoView)para vista previa, o sin vista para grabación sin interfaz - Configurar fuente — Establecer
Video_Sourcea una webcam, cámara IP, pantalla u otra fuente - Configurar salida — Agregar una o más salidas:
MP4Output,WebMOutput,AVIOutput, etc. - Iniciar —
await capture.StartAsync() - Detener —
await capture.StopAsync()finaliza el archivo de salida - Liberar —
await capture.DisposeAsync()libera todos los recursos
Escenarios Comunes de Captura de Video en C¶
Grabar Video de Webcam en C¶
Graba desde una webcam USB o cámara integrada a MP4 con H.264/AAC:
capture.Video_Source = new VideoCaptureDeviceSourceSettings(device);
capture.Outputs_Add(new MP4Output("webcam.mp4"));
Ver tutorial completo: Guardar Video de Webcam en C#
Guardar Stream RTSP en Archivo con C¶
Conéctate a cámaras IP y guarda streams RTSP en archivos MP4. Soporta protocolos RTSP, ONVIF y HTTP:
capture.Video_Source = new RTSPSourceSettings(
new Uri("rtsp://192.168.1.100:554/stream"))
{
Login = "admin",
Password = "password"
};
capture.Outputs_Add(new MP4Output("ipcam.mp4"));
Ver: Cámara IP a MP4 | Guía RTSP | Guía ONVIF
Captura de Pantalla a MP4 en C¶
Graba el escritorio o una región específica de pantalla a MP4:
capture.Video_Source = new ScreenCaptureSourceSettings()
{
FrameRate = new VideoFrameRate(30),
CaptureCursor = true
};
capture.Outputs_Add(new MP4Output("screen.mp4"));
Ver: Captura de Pantalla a MP4
Grabación Solo de Audio¶
Graba desde un micrófono sin video:
capture.Audio_Source = audioDevices[0].CreateSourceSettingsVC();
capture.Audio_Record = true;
capture.Video_Record = false;
capture.Outputs_Add(new MP4Output("audio.mp4"));
Capturar Foto desde Webcam¶
Captura una imagen fija del feed de video en vivo de la webcam:
capture.Snapshot_Grabber_Enabled = true;
await capture.StartAsync();
// Después, guardar un fotograma:
await capture.Snapshot_SaveAsync("photo.jpg", SKEncodedImageFormat.Jpeg, 85);
Ver: Captura de Fotos con Webcam
Dispositivos de Entrada Soportados¶
Cámaras y Hardware de Captura¶
- Webcams USB y dispositivos de captura (hasta 4K)
- Videocámaras DV y HDV MPEG-2
- Tarjetas de captura PCI profesionales
- Sintonizadores de televisión (con y sin codificador MPEG)
Cámaras de Red e IP¶
- Cámaras IP habilitadas para RTSP
- Cámaras HTTP JPEG/MJPEG
- Fuentes de streaming RTMP
- Cámaras compatibles con ONVIF
- Fuentes SRT y NDI
Consulta nuestro directorio de marcas de cámaras IP para URLs RTSP específicas por marca y guías de conexión cubriendo más de 60 fabricantes.
Equipos Profesionales e Industriales¶
- Dispositivos de captura Blackmagic Decklink
- Microsoft Kinect y Kinect 2
- Cámaras industriales GenICam / GigE Vision / USB3 Vision
Fuentes de Audio¶
- Dispositivos de captura de audio del sistema y tarjetas de sonido
- Dispositivos de audio ASIO profesionales
- Captura de audio loopback (sonido del sistema)
Formatos de Salida y Codificadores¶
El SDK soporta múltiples contenedores y códecs de salida. La codificación acelerada por GPU (NVIDIA NVENC, AMD AMF, Intel Quick Sync) se usa automáticamente cuando está disponible.
| Formato | Códecs de Video | Códecs de Audio | Caso de Uso |
|---|---|---|---|
| MP4 | H.264, H.265 (HEVC) | AAC | Propósito general, mayor compatibilidad |
| WebM | VP8, VP9, AV1 | Vorbis, Opus | Entrega web, libre de regalías |
| AVI | MJPEG, códecs personalizados | PCM, MP3 | Compatibilidad legacy |
| MKV | H.264, H.265, VP9 | AAC, Vorbis, FLAC | Contenedor flexible, múltiples pistas |
| GIF | GIF animado | — | Clips cortos, vistas previas |
Para configuración detallada de códecs, consulta Formatos de Salida y Codificadores de Video.
Soporte de Plataformas¶
| Plataforma | Frameworks de UI | Notas |
|---|---|---|
| Windows x64 | WinForms, WPF, MAUI, Avalonia, Consola | Conjunto completo de características incluyendo fuentes DirectShow |
| macOS | MAUI, Avalonia, Consola | Acceso a cámara AVFoundation |
| Linux x64 | Avalonia, Consola | Acceso a cámara V4L2 |
| Android | MAUI | Vía integración de cámara MAUI |
| iOS | MAUI | Vía integración de cámara MAUI |
Migración desde Captura de Video DirectShow¶
Si actualmente usas DirectShow (DirectShow.NET) para captura de video en C#, el Video Capture SDK proporciona un reemplazo moderno. En lugar de construir manualmente grafos de filtros con IGraphBuilder, conectar pines y gestionar objetos COM, usas clases de configuración tipadas y métodos async.
| Concepto DirectShow | Equivalente en Video Capture SDK |
|---|---|
Grafo de filtros IGraphBuilder | Gestionado automáticamente por VideoCaptureCoreX |
ICaptureGraphBuilder2 | No necesario — fuente y salida configuradas vía propiedades |
Enumeración de dispositivos vía DsDevice | DeviceEnumerator.Shared.VideoSourcesAsync() |
ISampleGrabber para acceso a fotogramas | Snapshot_SaveAsync() o evento OnVideoFrameBuffer |
| Conexión manual de pines | Automática — o usa Media Blocks SDK para pipelines explícitos |
Limpieza COM / Marshal.ReleaseComObject | Patrón estándar IAsyncDisposable |
Para una guía de migración detallada con ejemplos de código lado a lado, consulta Migrar desde DirectShow.NET.
Documentación para Desarrolladores¶
Funcionalidad Principal¶
- Configurando Fuentes de Video
- Configurando Fuentes de Audio
- Procesamiento de Video y Efectos
- Renderizado de Audio
Características Avanzadas¶
- Implementación de Captura de Video
- Implementación de Captura de Audio
- Detección de Movimiento
- Streaming de Red
- Grabación Pre-Evento
- Sincronización de Múltiples Capturas
Tutoriales (Paso a Paso con Código)¶
- Webcam a MP4 | a AVI | a WMV
- Captura de Pantalla a MP4 | a AVI | a WMV
- Vista Previa Cámara IP | Cámara IP a MP4
- Overlay de Texto en Webcam
- Vista Previa de Video de Cámara
- Todos los Tutoriales de Video
Guías¶
- Guardar Video de Webcam en C#
- Grabar Webcam en VB.NET
- Captura de Pantalla en VB.NET
- Captura de Fotos con Webcam
- Todas las Guías
Integración¶
- Integración con Software de Terceros
- Visión por Computadora (Detección Facial)
- Grabación de Cámara MAUI