Saltar a contenido

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

Conceptos Principales

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

  1. Instalar y Configurar - Comenzar con el SDK C++
  2. Revisar la API - Entender clases y métodos disponibles
  3. Explorar Ejemplos - Ver código funcional