GuíasReproducción

Motores Zig y libav

Los dos motores de medios del daemon, cómo elegir uno y qué pasa si el elegido no puede con un fichero.

EspecificadoNo implementado

Especificado. Los dos motores existen detrás de un mismo contrato y se eligen por configuración del daemon, pero la página no puede ser implementado mientras documente variables del daemon (STYX_MEDIA_*) sin su referencia de configuración generada (dec-0124 §5.1 y §7.7). Sube de estado cuando esa referencia exista.

El daemon tiene dos motores que producen los mismos segmentos CMAF:

  • zig: el propio. Demuxa MP4 y Matroska y empaqueta sin dependencias externas.
  • libav: FFmpeg usado sólo como librería dentro del daemon (nunca como proceso). Se compila con -Dlibav=true.

Se eligen con dos variables del daemon (dec-0110 §3):

VariableValoresPor defectoQué hace
STYX_MEDIA_ENGINEzig, libav, autoautoMotor que empaqueta
STYX_MEDIA_ENGINE_FALLBACKoff, libavoffSi el motor elegido no puede con el fichero, libav lo intenta

Un valor que el binario no puede cumplir (por ejemplo libav en un daemon compilado sin libav) detiene el arranque: no degrada en silencio. Cuando hay sustitución, la explicación del plan lo dice con el motivo.

Otras variables relacionadas del daemon: STYX_MEDIA_PACKAGING_MAX (sesiones de empaquetado abiertas a la vez, 1 a 4096, por defecto 32), STYX_MEDIA_PACKAGING_WORKERS y STYX_MEDIA_PACKAGING_HELD_MIB.

Qué códecs se empaquetan sin tocarlos

H.264, H.265, AV1, VP9, AAC, MP3, Opus, FLAC, AC-3 y E-AC-3. DTS y TrueHD no se empaquetan, y el build de libav no incluye hoy codificador aac, así que tampoco se convierten. Ver el estado real.

Cómo se compara

Hay un diferencial entre los dos motores sobre un corpus fijado por hash (dec-0112): las discrepancias se clasifican una a una en la evidencia del nodo track/media-engine. La decisión sobre dónde vive el parser (dec-0109) sigue en PROPOSED. Esta página no publica cifras de rendimiento: el contrato (dec-0112) exige el gate de comparación con Jellyfin antes de afirmar nada.