MKVerything — El Cirujano de Medios
"Estandarización absoluta. Integridad innegociable."
MKVerything es el motor de saneamiento de Singularity Core. Su objetivo es convertir cualquier biblioteca de medios heterogénea en una colección de archivos MKV limpios, verificados y listos para su distribución.
🎯 ¿Para qué sirve?
- Extrae el contenido principal de imágenes ISO (DVD/Blu-ray) automáticamente.
- Moderniza formatos obsoletos (
.avi,.mp4,.wmv) a MKV moderno. - Rescata archivos MKV corruptos mediante remuxado o re-encodado.
- Limpia metadatos de spam (anuncios de grupos, links, etc.).
🛠️ ¿Cómo usarlo?
- Desde el menú Singularity: Pulsa
1para entrar en el submenú de MKVerything. - Modos disponibles:
- Launcher [1.1]: Acceso al menú interactivo completo.
- Setup [1.2]: Verificación rápida de dependencias.
- Test [1.3]: Comprobación de binarios instalados.
Para procesar una biblioteca completa de forma desatendida, selecciona la Opción [5] (God Mode) dentro del Launcher.
⚙️ Funcionamiento Interno (The Guts)
El núcleo de MKVerything son dos subsistemas independientes:
I. Auditoría Forense en 4 Capas (Verifier)
Antes de procesar cualquier archivo, se ejecuta un algoritmo de verificación en 4 capas:
- Capa 1 (Estructura):
mkvmerge -Ivalida que el contenedor MKV es íntegro. - Capa 2 (Streams):
ffprobeverifica que cada stream (audio, video, subs) es legible. - Capa 3 (Decodificación):
ffmpeg -f null -ejecuta un escaneo nulo completo. Si hay errores de bitstream, el archivo falla aquí. - Capa 4 (Coherencia): Se comparan size/duration con el original para detectar "falsos positivos".
Si pasa todas las capas → Archivo validado. Si falla cualquiera → Escalada a Universal Rescuer.
II. La Escalera de Resiliencia (Universal Rescuer)
Si un archivo falla en Verifier, Universal Rescuer lo procesa en paralelo/NVMe (FAST_WORK_DIR = /app/RawLoadrr/tmp/TEMP_RESCUE) y prueba 4 niveles de rescate en orden decreciente de sofisticación:
graph TD
Input[Archivo Fallido] --> L3{Nivel 3:<br/>VapourSynth+HW}
L3 -->|✅ Éxito| Success[MKV Rescatado]
L3 -->|❌ Fallo| L2{Nivel 2:<br/>Remux Médico}
L2 -->|✅ Éxito| Success
L2 -->|❌ Fallo| L1{Nivel 1:<br/>Re-Encode Bruto}
L1 -->|✅ Éxito| Success
L1 -->|❌ Fallo| L0[Nivel 0:<br/>Salvaguarda]
L0 --> Manual[REQUIRES_MANUAL_REVIEW]
Success --> Validate[Re-Validar con Verifier]
Validate -->|✅| Replace[Reemplazar Original<br/>Atómicamente]
-
Nivel 3 (VapourSynth + Hardware): El Cirujano Endovascular
- Ubicación del código:
universal_rescuer.py:execute_strategy(level=3) - Dependencias forjadas: VapourSynth R73, L-SMASH-Works (compilado desde fuente), zimg
- Lógica: Genera un script VapourSynth que utiliza
core.lsmas.LWLibavSource()para "cateterizar" el archivo a bajo nivel, evitando rechazos por corrupción de contenedor. La salida va avspipe -c y4m | ffmpegcon argumentos HW delHardwareAgent. - Cuándo actúa: Especialista en "trauma estructural" (contenedores dañados pero streams viables).
- Duración: ~30-60% más rápido que re-encod completo.
- Ubicación del código:
-
Nivel 2 (Remux Médico): El Cirujano de Pistas
- Ubicación del código:
universal_rescuer.py:execute_strategy(level=2) - Comando exacto:
- Qué hace: Copia el stream de video intacto, pero re-encodifica audio a AAC y subs a SRT. El flag
-fflags +genptsregenera timestamps yaresample=async=1sincroniza el audio cuando hay desincronización. - Cuándo actúa: Video sano, pero audio/subs corruptos o en formatos raros (DTS, ASS inválido, etc.).
- Duración: ~5-10% del tiempo de re-encod completo.
- Ubicación del código:
-
Nivel 1 (Re-Encode Bruto + Fallback Automático): La Fuerza Bruta Inteligente
- Ubicación del código:
universal_rescuer.py:execute_strategy(level=1) - Intento 1.1 (HW): Intenta H.264 con GPU (AMD VA-API, NVIDIA NVENC, Intel QSV, según
HardwareAgent).- Trigger de fallback: Si stderr contiene
"Could not write header", significa que el header está corrompido incluso en re-encod. Salta a fallback automáticamente. - Comando:
ffmpeg -hide_banner -y -i <input> -map 0 <hw_args> <output>
- Trigger de fallback: Si stderr contiene
- Intento 1.2 (CPU Tank): Si HW falla por cualquier motivo, activa automáticamente:
ffmpeg -hide_banner -y -i <input> \ -c:v libx264 -preset fast -crf 22 \ -c:a aac -b:a 128k -c:s srt \ -map 0:v:0 -map 0:a? -map 0:s? \ -ignore_unknown -map_metadata -1 \ -metadata:s:v:0 sar=1/1 \ -fflags +genpts+igndts+discardcorrupt <output>- Correcciones extras en CPU Tank:
-metadata:s:v:0 sar=1/1: Endereza aspect ratio corrompido por WinX/MediaPlayer.-fflags +discardcorrupt: Descarta frames dañados en lugar de crashear.-ignore_unknown: Ignora streams desconocidos.
- Correcciones extras en CPU Tank:
- Cuándo actúa: Stream de video dañado a nivel de datos.
- Duración: ~1-4 horas según resolución y duración.
- Ubicación del código:
-
Nivel 0 (Salvaguarda): Rendición Táctica
- Ubicación del código:
universal_rescuer.py:transcodificar_archivo()(final) - Acción: NO modifica el archivo original. Genera una línea en el log:
🛑 REQUIRES_MANUAL_REVIEW: <ruta_origen> - Cuándo actúa: Protege contra "garbage in = garbage out". Un archivo que falla todos los 3 niveles probablemente está irrecuperable o su formato es desconocido.
- Ubicación del código:
🔧 Configuración y Ajustes
Personalización de SPAM
Puedes ajustar qué términos se consideran spam editando singularity_config.py:
Resiliencia y Seguridad
- Sacralidad de ISOs: El sistema nunca elimina una imagen ISO. Solo extrae su contenido.
- Eliminación Segura: Los archivos originales (
.avi,.mp4) solo se borran tras pasar con éxito la Capa 4 de verificación del nuevo MKV. - Estado Persistente: Los progresos se guardan en
MKVerything/states/. Si detienes el proceso, al reiniciarlo saltará los archivos ya procesados con éxito.