Skip to content

ES AR 0 Setup

J-RAP edited this page Nov 7, 2026 · 3 revisions

0. INSTALACIÓN

En Minecraft solo sumá WATERMeDIA y WATERMeDIA: Binaries como dependencias (mirá Binaries y FFmpeg) y declará WATERMeDIA como requerida en tu mod, dentro de los rangos de restricciones de software; el loader las provee al ejecutar.

repositories {
    maven { url "https://jitpack.io" }
}

dependencies {
    // HEY NEWBIE CODER: implementation IN MODDING ENVIRONMENTS DOESN'T SHIP DEPENDENCIES IN YOUR BUILT JAR
    // AND IS NEEDED SO THE NEOFORGE OR FABRIC RUNTIME CAN LOAD THEM
    implementation "com.github.SrRapero720:watermedia:$watermedia_version" // A RELEASE TAG, SUCH AS 3.0.1
    implementation "com.github.SrRapero720:watermedia-binaries:$binaries_version" // FFMPEG, YT-DLP AND BOTGUARD, OPTIONAL
}

En aplicaciones Java propias o juegos hechos en Java, el entorno tiene que proveer:

repositories {
    mavenCentral()
    maven { url "https://jitpack.io" }
}

dependencies {
    implementation "com.github.SrRapero720:watermedia:$watermedia_version" // A RELEASE TAG, SUCH AS 3.0.1
    implementation "com.github.SrRapero720:watermedia-binaries:$binaries_version" // FFMPEG, YT-DLP AND BOTGUARD, OPTIONAL
    implementation "com.github.SrRapero720:waterconfig:1.0.0.1" // MIN WATERCONFIG VERSION
    implementation "com.google.code.gson:gson:2.10" // MIN GSON VERSION
    implementation "org.apache.logging.log4j:log4j-api:2.26.1" // MIN LOG4J VERSION, PLUS THE BACKEND YOUR APP LOGS WITH
    implementation "org.joml:joml:1.10.8" // MIN JOML VERSION
    // LWJGL 3.3.6 MODULES, ONLY FOR THE ENGINES YOU USE (SEE THE TABLE BELOW)
}
Motor Librerías extra en tiempo de ejecución
GLEngine LWJGL lwjgl y lwjgl-opengl, con sus nativos
VKEngine LWJGL lwjgl, lwjgl-vulkan y lwjgl-shaderc (los shaders se compilan en tiempo de ejecución), con sus nativos (lwjgl-vulkan solo tiene nativos en macOS; Windows y Linux usan el Vulkan del sistema)
ALEngine LWJGL lwjgl y lwjgl-openal, con sus nativos
JFXEngine Un runtime de JavaFX 13+
AWTEngine, JSEngine, HeadlessGFXEngine Nada extra: el JDK los cubre
  • En Forge, NeoForge y Fabric, WATERMeDIA incluye WATERCoNFIG como un JAR anidado, y el juego ya trae las demás librerías.
  • El launcher independiente baja las librerías que le faltan cuando hacen falta, y solo usa las que coinciden con el SHA-256 fijado al compilar.
  • Una app que lo integra arma su propio classpath: que compile en desarrollo no garantiza que una instalación de Minecraft traiga esas librerías.
  • Binaries trae XZ adentro, y WATERMeDIA trae los bindings de JavaCPP y FFmpeg.

Los nativos de FFmpeg cubren estas plataformas; las imágenes se decodifican en cualquier lugar donde corra Java.

Arquitectura Windows Linux macOS Android
x86_64 ✅ ✅ ✅ ⛔
aarch64 ⛔ ✅ ✅ ⛔

Warning

No hay nativos de FFmpeg para Windows en ARM64 ni para Android: ahí las imágenes se siguen decodificando, pero el video y el audio no se reproducen, y un Binaries instalado hace fallar el arranque salvo que codecs.ffmpeg.disable esté activado.

0.1 BINARIES Y FFMPEG

Important

La decodificación de video por hardware necesita una GPU y un driver que decodifiquen ese códec: NVIDIA (CUDA), Intel (QSV), AMD (AMF), Direct3D 11 o 12 en Windows, VideoToolbox en macOS, VAAPI, VDPAU o DRM en Linux, o Vulkan. Cualquier otra cosa, o una GPU que no da abasto, decodifica por software, y codecs.ffmpeg.hardwareAccel = false siempre lo hace.

Note

Configurable: codecs.ffmpeg.disable, customPath, hardwareAccel, analyzeDuration, probeSize, trackPacketReads, cache y cacheMaxResponse. Mirá sus comentarios en config/watermedia.toml.

WATERMeDIA: Binaries carga junto con WATERMeDIA y prepara los nativos antes que la red, los códecs y el reproductor.

  • Los clientes de Minecraft lo requieren; los servidores dedicados lo pueden omitir, ya que ahí no prepara nada.
  • Las apps que integran la API Java también lo pueden omitir y conservan la decodificación de imágenes y los resolvedores de plataformas que no usan nativos; pierden la decodificación de video y las plataformas que dependen de yt-dlp.
  • Si desactivás FFmpeg (codecs.ffmpeg.disable), se saltea la extracción.
  • Binaries no tiene API para arrancar o apagar: los archivos nativos quedan en su lugar durante todo el proceso.
  • yt-dlp y BotGuard se descargan la primera vez que se usan y se verifican antes de correr. Las propiedades del sistema watermedia.ytdlp.binary y watermedia.botguard.binary apuntan a tus propios ejecutables en su lugar.

Para tu propia build de FFmpeg, poné la carpeta con sus librerías nativas (no un ffmpeg.exe) en codecs.ffmpeg.customPath. Sirve cualquier licencia o versión, siempre que traiga bindings JNI compatibles y el mismo soporte TLS que la incluida (mirá Confianza HTTPS y credenciales). WATERMeDIA solo verifica la integridad de los nativos incluidos.

0.2 CONFIGURACIÓN

Note

Cada campo se explica solo en su comentario y los valores los decidís vos. Cada sección de esta guía lista los campos que la afectan.

WATERMeDIA escribe su configuración en config/watermedia.toml dentro del directorio de trabajo, con un comentario arriba de cada campo. Los valores por defecto andan de una, los campos que se leen al arrancar se aplican en el próximo inicio, y cuando un backend parece no estar disponible, este archivo es el primer lugar donde fijarse.

  • codecs.*: FFmpeg, la decodificación por hardware y los decodificadores de imágenes.
  • player.*: la calidad por defecto y las cachés.
  • platforms.*: contenido para adultos, búsqueda y cuentas de plataformas.
  • network.*: el servidor de archivos y las solicitudes web.

Clone this wiki locally