SDKs de DirectShow - Guía de Despliegue¶
Descripción General¶
Esta guía de despliegue completa cubre todo lo que necesita saber sobre el despliegue de SDKs de VisioForge DirectShow en entornos de producción. Desde el registro de filtros hasta la creación de instaladores profesionales, esta guía asegura que sus aplicaciones se desplieguen sin problemas.
Qué se Cubre¶
Temas Principales de Despliegue¶
Registro de Filtros¶
Aprenda cómo registrar filtros DirectShow utilizando múltiples métodos.
Temas:
- Registro manual con regsvr32
- Registro programático (C++, C#)
- Scripts por lotes para automatización
- Técnicas de verificación
- Solución de problemas de registro
- COM sin registro
Cuándo Leer: Esencial para todos los escenarios de despliegue
Archivos Redistribuibles¶
Referencia completa de archivos para incluir en su despliegue.
Temas:
- Archivos del Filtro de Fuente FFMPEG (~80-100MB)
- Archivos del Filtro de Fuente VLC (~150-200MB)
- Archivos del Paquete de Filtros de Procesamiento (~20-180MB)
- Archivos del Paquete de Filtros de Codificación (~40-300MB)
- Archivos del SDK de Cámara Virtual (~15-35MB)
- Dependencias y estructuras de directorios
Cuándo Leer: Antes de crear instaladores o paquetes de despliegue
Integración de Instaladores¶
Cree instaladores profesionales con WiX, NSIS, InstallShield e Inno Setup.
Temas:
- WiX Toolset (MSI)
- Scripts NSIS
- Proyectos InstallShield
- Scripts Inno Setup
- Acciones personalizadas para registro
- Instalación silenciosa
- Empaquetado de prerrequisitos
Cuándo Leer: Al crear paquetes de instalación automatizados
Inicio Rápido¶
Flujo de Trabajo de Despliegue¶
Siga este flujo de trabajo recomendado para desplegar filtros DirectShow:
graph TD
A[Identificar SDKs Requeridos] --> B[Recopilar Archivos Redistribuibles]
B --> C[Elegir Método de Despliegue]
C --> D{¿Método de Instalación?}
D -->|Manual| E[Crear Scripts por Lotes]
D -->|Instalador| F[Crear Paquete de Instalador]
E --> G[Registrar Filtros]
F --> G
G --> H[Probar Despliegue]
H --> I{¿Funciona?}
I -->|No| J[Solucionar Problemas]
I -->|Sí| K[Desplegar a Producción]
J --> H
Inicio Rápido Paso a Paso¶
Paso 1: Identifique Sus SDKs¶
Determine qué SDKs utiliza su aplicación:
| SDK | Propósito | Archivo Clave |
|---|---|---|
| Fuente FFMPEG | Reproducción de medios, streaming | VisioForge_FFMPEG_Source_x64.ax |
| Fuente VLC | Reproducción multipista | VisioForge_VLC_Source.ax |
| Filtros de Procesamiento | Efectos, mezcla | VisioForge_VideoEffects_x64.ax |
| Filtros de Codificación | Codificación de video | VisioForge_NVENC_Encoder_x64.ax |
| Cámara Virtual | Dispositivos virtuales | VisioForge_VirtualCamera_x64.ax |
Ver Listas Completas de Archivos →
Paso 2: Recopilar Archivos¶
Cree la estructura de carpetas de despliegue:
SuApp\
├── SuApp.exe
├── SuApp.exe.config
└── Filters\
├── VisioForge_FFMPEG_Source_x64.ax
├── avcodec-58.dll
├── avformat-58.dll
└── ... (otras dependencias)
Ver Estructuras de Directorios →
Paso 3: Elegir Método de Despliegue¶
| Método | Mejor Para | Complejidad |
|---|---|---|
| Script por Lotes | Despliegue interno, pruebas | Baja |
| WiX (MSI) | Empresa, automatización TI | Media-Alta |
| NSIS | Instaladores pequeños, UI personalizada | Media |
| InstallShield | Apps comerciales, características avanzadas | Media |
| Inno Setup | Instaladores simples, código abierto | Baja-Media |
Ver Comparaciones de Instaladores →
Paso 4: Registrar Filtros¶
Opción A: Registro Manual (Desarrollo/Pruebas)
@echo off
cd /d "%~dp0Filters"
regsvr32 /s VisioForge_FFMPEG_Source_x64.ax
if %ERRORLEVEL% EQU 0 (
echo Registro exitoso
) else (
echo Registro fallido
)
Opción B: Acción Personalizada del Instalador (Producción)
Vea la Guía de Integración de Instaladores para ejemplos de WiX, NSIS y otros.
Ver Todos los Métodos de Registro →
Paso 5: Probar Despliegue¶
Lista de Verificación:
- [ ] Instalar en máquina de prueba limpia
- [ ] Verificar que todos los archivos se copiaron correctamente
- [ ] Comprobar registro de filtros en el registro
- [ ] Probar filtro con GraphEdit/GraphStudioNext
- [ ] Ejecutar prueba de extremo a extremo de la aplicación
- [ ] Verificar que la desinstalación elimina todos los componentes
- [ ] Probar en Windows 10 y Windows 11
- Probar tanto x64 como x86 (si aplica)
Ver Procedimientos de Prueba →
Eligiendo una Tecnología de Instalador¶
WiX Toolset¶
Pros:
- Formato MSI estándar de la industria
- Excelente para despliegue empresarial
- Soporte de Políticas de Grupo
- Fuerte integración con Windows Installer
- Comunidad activa y documentación
Contras:
- La sintaxis basada en XML tiene curva de aprendizaje
- Requiere paso de compilación
- UI menos flexible que instaladores personalizados
Recomendado Para:
- Aplicaciones empresariales
- Despliegues gestionados por TI
- Aplicaciones que requieren despliegue por Política de Grupo
- Organizaciones con infraestructura MSI existente
NSIS¶
Pros:
- Tamaño de instalador muy pequeño
- Ejecución rápida
- UI altamente personalizable
- Lenguaje de scripting simple
- Sin dependencias externas
Contras:
- No basado en MSI (puede no adaptarse a todas las empresas)
- Menos integración con Windows Installer
- Gestión manual de actualizaciones
Recomendado Para:
- Aplicaciones de consumo
- Instaladores pequeños a medianos
- Aplicaciones que requieren UI personalizada
- Creación de aplicaciones portátiles
InstallShield¶
Pros:
- Diseñador GUI profesional
- Conjunto completo de características
- Integración con Visual Studio
- Manejo avanzado de prerrequisitos
- Creación de suite/paquete
Contras:
- Requiere licencia comercial (excepto Edición Limitada)
- Puede ser complejo para instaladores simples
- Curva de aprendizaje mayor
Recomendado Para:
- Productos de software comercial
- Requisitos de instalación complejos
- Apariencia de instalador profesional
- Organizaciones con experiencia en InstallShield
Inno Setup¶
Pros:
- Gratuito y de código abierto
- Scripting Pascal fácil de aprender
- Buena documentación
- Soporte Unicode
- Desarrollo activo
Contras:
- No basado en MSI
- Menos características avanzadas que herramientas comerciales
- Características empresariales limitadas
Recomendado Para:
- Proyectos de código abierto
- Instaladores simples
- Aplicaciones pequeñas
- Despliegues conscientes del presupuesto
Escenarios Comunes de Despliegue¶
Escenario 1: Aplicación de Reproductor Multimedia¶
Requisitos:
- Filtro de Fuente FFMPEG
- Filtros de Procesamiento (efectos de video)
- Instalador amigable para el usuario
Enfoque Recomendado:
- Usar NSIS o Inno Setup para instalador amigable al consumidor
- Incluir verificación de Visual C++ Redistributable
- Registrar filtros durante la instalación
- Crear acceso directo en escritorio
- Asociar tipos de archivos multimedia (opcional)
Archivos para Desplegar (~100-150MB):
- VisioForge_FFMPEG_Source_x64.ax + DLLs de FFmpeg
- VisioForge_VideoEffects_x64.ax + dependencias
Ver Lista Completa de Archivos →
Escenario 2: Procesamiento de Video Empresarial¶
Requisitos:
- Fuente FFMPEG + Filtros de Codificación
- Soporte de instalación silenciosa
- Despliegue basado en MSI
- Despliegue por Política de Grupo
Enfoque Recomendado:
- Usar WiX Toolset para creación de MSI
- Empaquetar Visual C++ Redistributable
- Soportar parámetros de instalación silenciosa
- Implementar registro (logging) adecuado
- Crear documentación de despliegue
Ejemplo:
Escenario 3: Solución de Cámara Virtual¶
Requisitos:
- SDK de Cámara Virtual
- Instalación de controladores
- Acceso a nivel de sistema
Enfoque Recomendado:
- Usar WiX o InstallShield para soporte de controladores
- Requerir privilegios de administrador
- Instalar controladores de cámara virtual
- Registrar filtros DirectShow
- Proporcionar instrucciones claras de instalación
Consideraciones Especiales:
- Los controladores requieren firmas digitales
- Puede necesitar reinicio del sistema
- Advertencias de seguridad mejoradas
Ver Archivos de Cámara Virtual →
Escenario 4: Redistribución de SDK de Desarrollo¶
Requisitos:
- Incluir filtros con su SDK
- Soportar tanto x86 como x64
- Integración flexible
Enfoque Recomendado:
- Proporcionar paquetes separados x86/x64
- Incluir scripts por lotes de registro
- Proporcionar documentación para desarrolladores
- Considerar distribución por paquete NuGet
- Incluir archivos de cabecera y bibliotecas de tipos
Estructura del Paquete:
SuSDK\
├── bin\
│ ├── x86\
│ │ └── Filters\
│ └── x64\
│ └── Filters\
├── docs\
├── samples\
└── tools\
└── register_filters.bat
Prerrequisitos y Dependencias¶
Visual C++ Redistributable¶
Versión Requerida: Visual C++ 2015-2022 Redistributable
Enlaces de Descarga:
- x64: https://aka.ms/vs/17/release/vc_redist.x64.exe
- x86: https://aka.ms/vs/17/release/vc_redist.x86.exe
Claves de Registro de Detección:
x64: HKLM\SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64
x86: HKLM\SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x86
Valor: "Installed" = 1 (DWORD)
Integración de Instalador:
Vea Empaquetado de Dependencias para ejemplos de WiX, NSIS y otros.
Requisitos .NET¶
Si su aplicación usa .NET:
- .NET Framework 4.8 - Para aplicaciones .NET Framework
- .NET 8.0 Runtime - Para aplicaciones .NET modernas
Detección:
- .NET Framework: Verificar registro
HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full - .NET 8.0: Verificar
dotnet --list-runtimes
Requisitos de Hardware (Opcional)¶
Para características de aceleración por hardware:
| Característica | Requisito |
|---|---|
| Codificación NVENC | GPU NVIDIA (GTX 600+) |
| QuickSync | CPU Intel con gráficos integrados |
| Decodificación DXVA | GPU compatible con DirectX 11 |
Documente los requisitos de hardware en su instalador o documentación.
Probando Despliegues¶
Configuración del Entorno de Prueba¶
Cree entornos de prueba aislados:
- VM Windows 10 Limpia - Probar en instalación fresca
- VM Windows 11 Limpia - Probar último SO
- Instalación Mínima - Sin Visual Studio o herramientas de desarrollo
- Diferentes Cuentas de Usuario - Probar usuario estándar vs. admin
Lista de Verificación de Pruebas¶
Pruebas de Instalación¶
- [ ] El instalador se ejecuta sin errores
- [ ] Todos los archivos copiados a ubicaciones correctas
- [ ] Filtros registrados exitosamente
- [ ] Accesos directos del menú inicio creados
- [ ] Entradas de registro creadas
- [ ] Prerrequisitos detectados/instalados
- [ ] El usuario puede lanzar la aplicación
- [ ] La aplicación funciona correctamente
Pruebas de Desinstalación¶
- [ ] El desinstalador se ejecuta sin errores
- [ ] Todos los archivos eliminados
- [ ] Filtros desregistrados
- [ ] Entradas de registro limpiadas
- [ ] Accesos directos del menú inicio eliminados
- [ ] No quedan archivos huérfanos
Pruebas de Actualización¶
- [ ] La actualización desde versión anterior funciona
- [ ] Datos de usuario preservados
- [ ] Configuraciones mantenidas
- [ ] Filtros antiguos reemplazados con nuevas versiones
Pruebas de Instalación Silenciosa¶
REM Instalar silenciosamente
MiAppSetup.exe /S
REM Verificar instalación
reg query "HKLM\SOFTWARE\MiApp" /v InstallDir
REM Desinstalar silenciosamente
"%ProgramFiles%\MiApp\Uninstall.exe" /S
Script de Prueba Automatizada¶
# Script de prueba de despliegue PowerShell
param(
[string]$InstallerPath,
[string]$FilterCLSID
)
Write-Host "Probando instalación..." -ForegroundColor Cyan
# Instalar
Start-Process $InstallerPath -ArgumentList "/S" -Wait
# Verificar registro de filtro
$regPath = "HKLM:\SOFTWARE\Classes\CLSID\$FilterCLSID"
if (Test-Path $regPath) {
Write-Host "✓ Filtro registrado" -ForegroundColor Green
} else {
Write-Host "✗ Filtro NO registrado" -ForegroundColor Red
Exit 1
}
# Probar con GraphEdit
$graphEdit = "C:\Program Files (x86)\Windows Kits\10\bin\*\x64\graphedt.exe"
if (Test-Path $graphEdit) {
Write-Host "✓ Probando con GraphEdit..." -ForegroundColor Cyan
# Agregar automatización de GraphEdit aquí
}
# Desinstalar
$uninstaller = Get-ChildItem "C:\Program Files\MyApp\Uninstall.exe" -ErrorAction SilentlyContinue
if ($uninstaller) {
Start-Process $uninstaller.FullName -ArgumentList "/S" -Wait
Write-Host "✓ Desinstalación completada" -ForegroundColor Green
}
# Verificar limpieza
if (Test-Path $regPath) {
Write-Host "✗ Filtro todavía registrado después de desinstalar" -ForegroundColor Red
Exit 1
} else {
Write-Host "✓ Filtro desregistrado exitosamente" -ForegroundColor Green
}
Write-Host "¡Todas las pruebas pasaron!" -ForegroundColor Green
Consideraciones de Arquitectura¶
Despliegue x86 vs x64¶
Aplicaciones x64:
- Usar solo filtros x64
- Instalar en
C:\Program Files\SuApp - Registrar en vista de registro de 64-bits
Aplicaciones x86:
- Usar solo filtros x86
- Instalar en
C:\Program Files (x86)\SuApp - Registrar en vista de registro de 32-bits (regsvr32 maneja automáticamente)
Aplicaciones Mixtas:
- Incluir filtros tanto x86 como x64
- Subdirectorios separados:
Filters\x86yFilters\x64 - Registro condicional basado en arquitectura del proceso
Consideraciones de Registro¶
Vistas de Registro de Windows 64-bits:
HKLM\SOFTWARE\Classes\CLSID\{GUID} ← vista 64-bits
HKLM\SOFTWARE\Wow6432Node\Classes\CLSID\{GUID} ← vista 32-bits
Importante: regsvr32 usa automáticamente la vista de registro correcta:
C:\Windows\System32\regsvr32.exe→ registro 64-bitsC:\Windows\SysWOW64\regsvr32.exe→ registro 32-bits
Consideraciones de Seguridad¶
Firma de Código¶
Recomendado: Firmar todos los ejecutables e instaladores con certificado Authenticode.
REM Firmar instalador con certificado
signtool sign /f MiCert.pfx /p password /t https://timestamp.digicert.com MiAppSetup.exe
Beneficios:
- Elimina advertencias de SmartScreen
- Establece confianza con los usuarios
- Requerido para controladores en modo kernel (Cámara Virtual)
Requisitos de Permisos¶
El Registro de Filtros Requiere:
- Privilegios de administrador
- Acceso de escritura al registro HKLM
- Acceso de escritura a System32 (si se registra allí)
Mejores Prácticas:
- Siempre solicitar elevación en manifiesto del instalador
- Verificar privilegios antes del registro
- Proporcionar mensajes de error claros para problemas de permisos
<!-- Manifiesto de instalador requiriendo elevación -->
<requestedExecutionLevel level="requireAdministrator" />
Solución de Problemas Comunes¶
Problema: Falla el Registro de Filtro¶
Síntomas: regsvr32 devuelve error, filtro no está en registro
Posibles Causas:
- Dependencias faltantes (Visual C++ Runtime, DLLs)
- Privilegios insuficientes
- Archivo de filtro corrupto
- Desajuste de arquitectura
Soluciones:
- Usar Dependency Walker para verificar dependencias
- Ejecutar instalador como administrador
- Verificar integridad de archivo (checksums)
- Asegurar que app x86 use filtro x86, app x64 use filtro x64
Ver Solución de Problemas Completa →
Problema: La Aplicación No Puede Encontrar el Filtro¶
Síntomas: La aplicación falla al crear gráfico de filtros, CLSID no encontrado
Posibles Causas:
- Filtro no registrado
- CLSID incorrecto usado
- App de 32-bits buscando filtro de 64-bits
Soluciones:
// Verificar registro de filtro programáticamente
HRESULT hr = CoCreateInstance(CLSID_FFMPEGSource, NULL, CLSCTX_INPROC_SERVER,
IID_IBaseFilter, (void**)&pFilter);
if (hr == REGDB_E_CLASSNOTREG) {
// Filtro no registrado - preguntar al usuario
}
Problema: La Instalación Silenciosa se Cuelga¶
Síntomas: El instalador deja de responder durante instalación silenciosa
Posibles Causas:
- Esperando entrada del usuario
- Reinicio requerido
- Instalación de prerrequisito solicitando confirmación
Soluciones:
# Agregar parámetro /norestart
msiexec /i MiApp.msi /quiet /norestart
# NSIS: Verificar modo silencioso en script
${IfSilent}
# Saltar interacciones UI
${EndIf}
Problema: La Desinstalación Deja Archivos¶
Síntomas: El directorio de la aplicación todavía existe después de desinstalar
Posibles Causas:
- Archivos creados después de la instalación no rastreados
- Identificadores de archivo abiertos previniendo eliminación
- Acción personalizada de desinstalación no ejecutándose
Soluciones:
- Usar tabla RemoveFile de Windows Installer para archivos dinámicos
- Implementar limpieza de archivos en acción personalizada de desinstalación
- Asegurar que la aplicación no esté ejecutándose durante desinstalación
Resumen de Mejores Prácticas¶
HACER¶
✅ Siempre requerir privilegios de administrador para instalación ✅ Siempre empaquetar o verificar Visual C++ Redistributable ✅ Siempre probar en máquinas limpias antes del lanzamiento ✅ Siempre implementar desinstalación adecuada ✅ Siempre registrar pasos de instalación para solución de problemas ✅ Siempre verificar registro de filtros después de instalar ✅ Hacer soporte de instalación silenciosa para despliegues empresariales ✅ Hacer firmar instaladores con certificado Authenticode ✅ Hacer proporcionar mensajes de error claros ✅ Hacer documentar requisitos del sistema
NO HACER¶
❌ Nunca registrar filtros en directorio System32 ❌ Nunca sobrescribir archivos más nuevos con versiones más antiguas ❌ Nunca fallar instalación si falla registro (advertir en su lugar) ❌ Nunca dejar entradas de registro después de desinstalar ❌ Nunca requerir que el usuario registre filtros manualmente ❌ No saltar verificaciones de prerrequisitos ❌ No usar rutas codificadas ❌ No olvidar probar escenarios de actualización ❌ No ignorar valores de retorno HRESULT ❌ No desplegar compilaciones de depuración a producción
Lista de Verificación de Despliegue¶
Use esta lista de verificación antes de lanzar su instalador:
Pre-Lanzamiento¶
- [ ] Todos los archivos redistribuibles identificados
- [ ] Arquitectura correcta (x86/x64) seleccionada
- [ ] Dependencias documentadas
- [ ] Instalador creado y probado
- [ ] Instalación silenciosa probada
- [ ] Desinstalación probada completamente
- [ ] Firma de código completada
- [ ] Guía de instalación escrita
- [ ] Requisitos del sistema documentados
Pruebas¶
- [ ] Probado en Windows 10 (21H2 o posterior)
- [ ] Probado en Windows 11
- [ ] Probado en VM limpia sin herramientas de desarrollo
- [ ] Probado con cuenta de usuario estándar
- [ ] Probado actualización desde versión anterior
- [ ] Probado limpieza de desinstalación
- [ ] Probado instalación silenciosa
- [ ] Verificado registro de filtros
- [ ] Probada funcionalidad de aplicación
Documentación¶
- [ ] Instrucciones de instalación escritas
- [ ] Instrucciones de desinstalación proporcionadas
- [ ] Sección de solución de problemas incluida
- [ ] Requisitos del sistema listados
- [ ] Información de contacto de soporte proporcionada
Recursos Adicionales¶
Documentación¶
- Guía de Registro de Filtros - Referencia completa de registro
- Archivos Redistribuibles - Todos los archivos SDK listados
- Integración de Instaladores - Ejemplos WiX, NSIS, InstallShield
Recursos Externos¶
Herramientas¶
- GraphEdit - Pruebas de filtros (Windows SDK)
- GraphStudioNext - Pruebas de filtros avanzadas
- Dependency Walker - Análisis de dependencias DLL
- Process Monitor - Solución de problemas de instalación
- Editor del Registro - Verificación de registro
Soporte¶
Para asistencia de despliegue:
- Revise la sección Solución de Problemas
- Revise Registro de Filtros
- Contacte soporte VisioForge: support@visioforge.com
- Visite: https://www.visioforge.com/