Repository navigation
ES AR 0 Setup
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.
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.binaryywatermedia.botguard.binaryapuntan 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.
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.