Repository navigation
RU RU 0 Setup
В Minecraft просто добавьте WATERMeDIA и WATERMeDIA: Binaries как зависимости (см. Binaries и FFmpeg) и объявите WATERMeDIA обязательной зависимостью в своём моде, в пределах диапазонов из раздела программные ограничения; загрузчик предоставит их во время выполнения.
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
}В собственных Java-приложениях или Java-играх окружение должно предоставить:
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)
}| Движок | Дополнительные библиотеки времени выполнения |
|---|---|
GLEngine |
LWJGL lwjgl и lwjgl-opengl, вместе с их нативными библиотеками |
VKEngine |
LWJGL lwjgl, lwjgl-vulkan и lwjgl-shaderc (шейдеры компилируются во время выполнения), вместе с их нативными библиотеками (у lwjgl-vulkan нативные библиотеки есть только для macOS; Windows и Linux используют системный Vulkan) |
ALEngine |
LWJGL lwjgl и lwjgl-openal, вместе с их нативными библиотеками |
JFXEngine |
Среда выполнения JavaFX 13+ |
AWTEngine, JSEngine, HeadlessGFXEngine
|
Ничего дополнительного: их покрывает JDK |
- На Forge, NeoForge и Fabric WATERMeDIA включает WATERCoNFIG как вложенный JAR, а остальные библиотеки уже поставляются с игрой.
- Автономный лаунчер скачивает недостающие библиотеки, когда они нужны, и использует только те, что совпадают с SHA-256, зафиксированным при сборке.
- Приложение, которое встраивает библиотеку, использует собственный classpath: то, что проект компилируется при разработке, ещё не значит, что установка Minecraft поставляет эти библиотеки.
- Binaries содержит XZ внутри, а WATERMeDIA несёт биндинги JavaCPP и FFmpeg.
Нативные библиотеки FFmpeg покрывают эти платформы; изображения декодируются везде, где работает Java.
| Архитектура | Windows | Linux | macOS | Android |
|---|---|---|---|---|
| x86_64 | ✅ | ✅ | ✅ | ⛔ |
| aarch64 | ⛔ | ✅ | ✅ | ⛔ |
Warning
Нативных библиотек FFmpeg для Windows на ARM64 и для Android нет: изображения там по-прежнему декодируются, видео и
аудио не воспроизводятся, а установленный Binaries проваливает запуск, если не включён codecs.ffmpeg.disable.
Important
Аппаратному декодированию видео нужны GPU и драйвер, которые умеют декодировать этот кодек: NVIDIA (CUDA), Intel
(QSV), AMD (AMF), Direct3D 11 или 12 на Windows, VideoToolbox на macOS, VAAPI, VDPAU или DRM на Linux, либо
Vulkan. Всё остальное, как и GPU, который не справляется, декодирует программно, а с
codecs.ffmpeg.hardwareAccel = false декодирование всегда программное.
Note
Настраивается: codecs.ffmpeg.disable, customPath, hardwareAccel, analyzeDuration, probeSize,
trackPacketReads, cache и cacheMaxResponse. Смотрите их комментарии в config/watermedia.toml.
WATERMeDIA: Binaries загружается вместе с WATERMeDIA и подготавливает нативные библиотеки до сети, кодеков и плеера.
- Клиентам Minecraft он обязателен; выделенные серверы могут обойтись без него, поскольку там он ничего не подготавливает.
- Приложения, встраивающие Java API, тоже могут обойтись без него и сохранить декодирование изображений и резолверы платформ без нативного кода; они теряют декодирование видео и платформы, работающие через yt-dlp.
- Отключение FFmpeg (
codecs.ffmpeg.disable) пропускает извлечение. - У Binaries нет API для запуска или остановки: нативные файлы остаются на месте всё время работы процесса.
-
yt-dlp и BotGuard скачиваются при первом использовании и проверяются перед запуском. Системные свойства
watermedia.ytdlp.binaryиwatermedia.botguard.binaryпозволяют указать вместо них ваши собственные исполняемые файлы.
Для своей сборки FFmpeg укажите в codecs.ffmpeg.customPath папку с её нативными библиотеками (а не ffmpeg.exe).
Подойдёт любая лицензия и версия, если у сборки есть совместимые JNI-биндинги и такая же поддержка TLS, как у встроенной
(см. Доверие HTTPS и учётные данные). WATERMeDIA проверяет целостность только у
встроенных нативных библиотек.
Note
Каждое поле объясняется в своём комментарии, а значения выбираете вы. Каждый раздел этого руководства перечисляет поля, которые на него влияют.
WATERMeDIA записывает свои настройки в config/watermedia.toml в рабочей директории, с комментарием над каждым полем.
Значения по умолчанию работают сразу, поля, читаемые при запуске, применяются при следующем запуске, а если какой-то
бэкенд кажется недоступным, первым делом проверьте этот файл.
-
codecs.*: FFmpeg, аппаратное декодирование и декодеры изображений. -
player.*: качество по умолчанию и кэши. -
platforms.*: контент для взрослых, поиск и аккаунты платформ. -
network.*: файловый сервер и веб-запросы.