WATERMeDIA: Multimedia API
Multimedia Library with a well designed API. Play Video, Audio and Images, fast HW decoding, Vulkan and OpenGL rendering.
介绍

📕 OVERVIEW
WATERMeDIA is a multimedia library with a well designed API: it plays videos, music, live streams, pictures and
animations, and decodes and encodes them, rendering with OpenGL and Vulkan and playing sound through OpenAL.
Pictures go through our own pure-Java decoders and everything else through _FFmpeg_, bundled in the companion mod
_WATERMeDIA: Binaries_. Nothing to compile or
install, just plug and play.
Supports Forge, NeoForge and Fabric on every Minecraft version from 1.18.2 to 26.2 that runs on Java 17 or newer,
on clients and dedicated servers. It also runs outside Minecraft: opening the jar launches a full media player, and
any Java app can embed the API.
🛠️ FEATURES
\* Depends on the mod you’re using and only works when its developer wires it in. Ask its author.
- 🎬 Videos and music play with _FFmpeg_ 9, bundled in _WATERMeDIA: Binaries_ for Windows (x64), Linux (x64, ARM64) and macOS (Intel, Apple Silicon)
- 🖼️ Our own pure-Java picture decoders: PNG, APNG, JPEG, GIF, WebP (animated too), SVG and Netpbm. Safe by design, they use far less CPU and VRAM, and many animations can play at once without stuttering the game
- ⚡ Hardware video decoding on NVIDIA, AMD, Intel and macOS, falling back to software when the GPU struggles
- 🌋 Vulkan rendering next to OpenGL, ready for Minecraft 26.x. On Vulkan, H.264, H.265 and AV1 videos decode and draw right on the GPU, never touching RAM
- 🌈 HDR and 10, 12 and 16-bit videos look natural on regular screens, and every video keeps its real colors, from old SD clips to wide-color videos and phone or webcam recordings
- 💾 Disk cache for videos and pictures: fast and reliable loads that save bandwidth
- 📡 Live streams (HLS and DASH) and IPTV playlists, which open as a channel list
- 🌐 Support for popular online platforms (YouTube, Twitch, Kick, BiliBili, TikTok, Twitter (X) and more), with safeguards for mature content where the platform exposes it
- 🖥️ Runs on dedicated servers. Install it there only when the mod using WATERMeDIA requires it server-side; it brings an optional file server that shares uploaded media with players through
water://remote/links - 🗣️ Videos with a separate audio track play in sync, unlocking higher qualities on platforms like YouTube. Dubbed videos play their original language, or the one you prefer, and you can switch languages while watching\*
- 🎚️ Pick the quality, change the speed, seek precisely, loop, and lower the resolution of distant screens to save VRAM\*
- 🔊 Positional audio that fades with distance. Stereo screens can play each side from its own edge, and extra speakers can play a screen’s sound anywhere without loading it twice\*
- ⏱️ Synchronized playback through a server clock, so everyone watches the same moment\*
- 🔍 Search videos by keyword on YouTube, Twitch, Kick and Imgur\*
- 🎥 Record videos with sound to MP4, MOV, MKV, WebM and Ogg, and save pictures and animations as PNG, APNG and GIF (experimental)\*
- 🔒 HTTPS media checks certificates, and tokens, passwords and login data never reach the logs
🌐 SUPPORTED PLATFORMS
- 📺 YouTube, Twitch, Kick, BiliBili, Odysee, D.Tube, VidLii
- 🐦 Twitter (X), Bluesky, TikTok, Facebook, Instagram
- 🎵 SoundCloud, Newgrounds (movies, music and art)
- 🖼️ Imgur, Lightshot, Medal, Streamable, Sendvid
- 📁 Google Drive, Dropbox, MediaFire
- 🔞 PornHub (only with mature content allowed in the settings)
- 🔗 Direct links to any video, music, picture or playlist, local files and
water://resources
YouTube, SoundCloud, Facebook and Instagram play through _yt-dlp_, which requires _WATERMeDIA: Binaries_. BiliBili
plays up to 1080p (8K with VIP) when you add your session cookie in the settings; without it, up to 480p.
🧩 MODS USING WATERMeDIA
| Mod | Author | Link |
|---|---|---|
| 🖼️ WaterFrames | SrRapero720 | CurseForge |
| 📺 WaterVision | SrRapero720 | CurseForge |
| 🧱 FancyMenu | Keksuccino | CurseForge |
| 📽️ Holographic Renderers | Mysticpasta1 | CurseForge |
| 📽️ BBS CML Edition | McHorse | CurseForge |
| 🖼️ LittlePictureFrames | CreativeMD | CurseForge |
| ⏪ WaterFrames: Backported Edition | Toshayo | CurseForge |
| 💻 Conditional Videos | MateoF024 | CurseForge |
| ⏯️ Owleaf PlayBack | Owleaf_Studio | CurseForge |
Special mentions
- VideoPlayer (not maintained)
📦 WATERMeDIA: BINARIES
_FFmpeg_ natives and a few extra shared libraries ship in the companion mod
_WATERMeDIA: Binaries_. Its sources live in
this repository under binaries/.
- Minecraft clients require Binaries, and both mods must be on 3.0
- Dedicated servers can skip it. CurseForge and Modrinth list it as required because their dependencies can’t express client/server conditions, so installers may add it to servers too
- Apps embedding the Java API can run without it, keeping picture support but losing video decoding and the platforms backed by _yt-dlp_
| Architecture | Windows | Linux | macOS | Android |
|---|---|---|---|---|
| x86_64 | ✅ | ✅ | ✅ | ⛔ |
| aarch64 | ⛔ | ✅ | ✅ | ⛔ |
🎮 SUPPORT US AND GET A 15% DISCOUNT
KineticHosting, our partners in hosting solutions, are great to make a server and start sharing multimedia with
your friends with all the mods listed above.

⁉️ FAQ
- ¿Does WATERMeDIA run on servers?
- Yes, since 3.0 it loads on dedicated servers. WATERMeDIA: Binaries is optional there
- ¿Do I still need VLC?
- No. VLC was replaced by FFmpeg, bundled in WATERMeDIA: Binaries, and uninstalling VLC is safe
- ¿Why do videos stutter?
- Turn hardware decoding off in
config/watermedia.toml - ¿Can I use my own FFmpeg?
- Yes, FFmpeg can be turned off or swapped for your own compatible build in the settings
- ¿Why are some videos blocked?
- Mature content is blocked by default; you can allow it in the settings
- ¿Why does the game stop at startup with TLauncher?
- TLauncher is not supported, and the game stops when it’s detected
- ¿Where do I report bugs?
- On GitHub Issues or Discord
💻 FOR DEVELOPERS
Two classes do the work: MRL (Multimedia Resource Location) resolves a link into its sources, qualities and
metadata, and MediaPlayer plays it through the engines you pick (GLEngine, VKEngine, ALEngine and more).
MRL mrl = PlayerAPI.mrl(URI.create("https://imgur.com/gallery/snow-ducks-YcDd9x"));
// IN A TICK-LOOP METHOD
if (mrl.status() == MRL.Status.LOADED) {
MediaPlayer player = PlayerAPI.player(mrl,
() -> PlayerAPI.glEngine(renderThread, renderExecutor),
() -> PlayerAPI.alEngine());
}
PlayerAPI: media playback and displayPlatformAPI: web platform support for loading and searching mediaNetworkAPI: host and remote storage for private mediaCodecsAPI(experimental, don’t use it in your mods yet): our own picture and animation codecs, plus _FFmpeg_-backed audio and video
The full API guide, including the Vulkan contract and the Minecraft 26.x bridge, is in
English and
Español (México). Artifacts are on
JitPack.
💰 DONATIONS
Thank you for using WATERMeDIA! 🫶 Every donation, big or small, helps us keep it free, updated and growing with
every new Minecraft version.
Please consider donating to the _FFmpeg_ developers too. Every video
WATERMeDIA plays goes through their work, and this project wouldn’t exist without them.
⚖️ LICENSE
WATERMeDIA and _WATERMeDIA: Binaries_ are under the
_Defensive Public Source (Non-Commercial) License v1.0.1_.
Copyright SrRapero720 (https://github.com/SrRapero720).
Permitted non-commercial usage (included and not limited to modpacks or server packs). Commercial use is forbidden;
contact us to use WATERMeDIA for commercial purposes.
The third-party libraries both mods ship keep their own licenses; read them in the
WATERMeDIA and
_WATERMeDIA: Binaries_ repositories before redistributing.
评论
登录后评论和评分