SDK de Huella Digital de Video para C++¶
Descripción General¶
El SDK de Huella Digital de Video para C++ proporciona una implementación nativa con acceso directo a capacidades de alto rendimiento de análisis y huella digital de video. Este SDK es ideal para aplicaciones que requieren:
- Máximo rendimiento y mínima sobrecarga
- Integración directa con aplicaciones nativas
- Gestión de memoria personalizada
- Pipelines de procesamiento en tiempo real
- Despliegue en sistemas embebidos
Características Principales¶
Ventajas de Rendimiento¶
- Rendimiento Nativo - Acceso directo a memoria y algoritmos optimizados
- Cero Sobrecarga - Sin runtime administrado ni recolección de basura
- Optimización SIMD - Aprovecha capacidades de vectorización de CPU
- Procesamiento Paralelo - Generación de huella digital multi-hilo
- Gestión de Memoria Personalizada - Control detallado sobre asignación de memoria
Soporte de Plataformas¶
- Windows - Visual Studio 2019+ (x64)
- Linux - GCC 9+ o Clang 10+
- macOS - Xcode 12+ (Intel y Apple Silicon)
Documentación¶
Primeros Pasos¶
- Instalación y Configuración - Guía de configuración completa para todas las plataformas
- Referencia de API - Documentación completa de API C++
Conceptos Principales¶
- Entendiendo las Huellas Digitales de Video - Cómo funciona la tecnología
- Tipos de Huella Digital - Huellas de Comparación vs Búsqueda
Ejemplos de Código¶
Generación Básica de Huella Digital¶
#include <VFPAnalyzer.h>
// Crear instancia del analizador
auto analyzer = std::make_unique<VFPAnalyzer>();
// Configurar parámetros de análisis
VFPAnalyzerSettings settings;
settings.Mode = VFPAnalyzerMode::Search;
settings.FrameStep = 10;
// Establecer clave de licencia
analyzer->SetLicenseKey("su-clave-de-licencia");
// Procesar archivo de video
analyzer->StartAsync("video_entrada.mp4", "salida.vfp", settings);
Comparando Dos Videos¶
#include <VFPCompare.h>
// Crear instancia de comparación
auto compare = std::make_unique<VFPCompare>();
// Establecer licencia
compare->SetLicenseKey("su-clave-de-licencia");
// Cargar huellas digitales
compare->LoadFingerprint("video1.vfp");
compare->LoadFingerprint("video2.vfp");
// Realizar comparación
auto result = compare->Compare();
// Verificar similitud
std::cout << "Similitud: " << result.Similarity << "%" << std::endl;
if (result.IsMatch) {
std::cout << "¡Los videos coinciden!" << std::endl;
}
Patrones de Integración¶
Procesamiento con Eficiencia de Memoria¶
// Procesar grandes colecciones de video con memoria mínima
class VideoProcessor {
public:
void ProcessBatch(const std::vector<std::string>& videos) {
VFPAnalyzer analyzer;
analyzer.SetLicenseKey(m_licenseKey);
for (const auto& video : videos) {
// Procesar y almacenar/transmitir huella digital inmediatamente
analyzer.StartAsync(video,
[this](const std::string& fingerprint) {
// Almacenar en base de datos o enviar a servidor
StoreFingerprint(fingerprint);
});
}
}
};
Análisis de Stream en Tiempo Real¶
// Analizar streams de video en vivo
class StreamAnalyzer {
public:
void AnalyzeStream(const std::string& streamUrl) {
VFPAnalyzer analyzer;
VFPAnalyzerSettings settings;
settings.Mode = VFPAnalyzerMode::RealTime;
settings.BufferSize = 30; // buffer de 30 segundos
analyzer.SetLicenseKey(m_licenseKey);
analyzer.StartStreamAnalysis(streamUrl, settings,
[](const VFPSegment& segment) {
// Procesar segmentos detectados en tiempo real
ProcessSegment(segment);
});
}
};
Soporte y Recursos¶
Documentación¶
Código de Ejemplo¶
- Ejemplos Completos - Muestras de código funcionales
- Herramientas de línea de comandos en el paquete SDK
/samples/cpp/
Comunidad y Soporte¶
Registro de Licencia¶
Registre el SDK en su aplicación C++:
// En su código de inicialización
VFPAnalyzer analyzer;
analyzer.SetLicenseKey("su-clave-de-licencia");
// O globalmente para todas las instancias
VFPLicense::SetGlobalKey("su-clave-de-licencia");
Próximos Pasos¶
- Instalar y Configurar - Comenzar con el SDK C++
- Revisar la API - Entender clases y métodos disponibles
- Explorar Ejemplos - Ver código funcional