Repository navigation
ES MX 0 Setup
En Minecraft sólo agrega WATERMeDIA y WATERMeDIA: Binaries como dependencias (mira Binaries y FFmpeg) y declara WATERMeDIA como obligatorio en tu mod, dentro de los rangos de restricciones de software; el loader las proporciona en tiempo de ejecución.
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 personalizadas o juegos hechos en Java, el entorno debe proporcionar:
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 | Bibliotecas de ejecución extra |
|---|---|
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 sólo 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 bibliotecas.
- El launcher independiente descarga las bibliotecas que le faltan en cuanto las necesita, y sólo usa las que coinciden con el SHA-256 fijado al compilar.
- Una app que lo integra trae su propio classpath: que compile en desarrollo no significa que una instalación de Minecraft traiga esas bibliotecas.
- Binaries trae XZ por dentro, 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 controlador 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 se 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. Mira sus comentarios en config/watermedia.toml.
WATERMeDIA: Binaries carga con WATERMeDIA y prepara los nativos antes de la red, los códecs y el reproductor.
- Los clientes de Minecraft lo requieren; los servidores dedicados pueden omitirlo, ya que ahí no prepara nada.
- Las apps que integran la API Java también pueden omitirlo y conservar 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.
- Desactivar FFmpeg (
codecs.ffmpeg.disable) omite la extracción. - Binaries no tiene API para iniciarlo ni apagarlo: los archivos nativos se 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 compilación de FFmpeg, pon la carpeta con sus bibliotecas nativas (no un ffmpeg.exe) en
codecs.ffmpeg.customPath. Cualquier licencia o versión sirve, siempre que traiga bindings JNI compatibles
y el mismo soporte TLS que la incluida (mira Confianza HTTPS y credenciales).
WATERMeDIA sólo verifica la integridad de los nativos incluidos.
Note
Cada campo se explica solo en su comentario y los valores los decides tú. Cada sección de esta guía lista los campos que la afectan.
WATERMeDIA escribe sus ajustes en config/watermedia.toml dentro del directorio de trabajo, con un comentario encima de
cada campo. Los valores predeterminados funcionan de fábrica, los campos que se leen al arrancar aplican en el siguiente
inicio, y cuando un backend parece no estar disponible, este archivo es el primer lugar que debes revisar.
-
codecs.*: FFmpeg, la decodificación por hardware y los decodificadores de imágenes. -
player.*: la calidad predeterminada y las cachés. -
platforms.*: el contenido maduro, la búsqueda y las cuentas de plataformas. -
network.*: el servidor de archivos y las solicitudes web.