跳到正文

WATERMeDIA: Multimedia API

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

收藏

介绍

中文介绍正在准备中,下面暂时显示原文。

WATERMeDIA banner

CurseForge downloads
CurseForge
Modrinth

JitPack
Discord

📕 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.

KineticHosting sponsor

⁉️ 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 display
  • PlatformAPI: web platform support for loading and searching media
  • NetworkAPI: host and remote storage for private media
  • CodecsAPI (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.

Support me on Patreon
Support me via Paypal
Support me on Ko-Fi
Support me via Revolut

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.

评论

登录后评论和评分

SrRapero720 的其他作品

查看全部 →