⚙️ PulseBeat02
- Docs: https://mcav.readthedocs.io/en/latest/intro.html
- GitHub: https://github.com/PulseBeat02/mcav
- CI: https://ci.brandonli.me/project/mcav
- Support: https://discord.gg/cUMB6kCsh6
- Donate: https://ko-fi.com/pulsebeat_02
- Testing Server:
pulse.mcserver.us
MCAV (pronounced EM CAV) is an incredibly powerful multimedia library and plugin for Java, serving as the successor of EzMediaCore2. MCAV utilizes several low-level libraries like FFmpeg, OpenCV, and LibVLC (from VLC media player) to provide a seamless playback experience for developers and users. MCAV also is capable of rendering browsers using Selenium and Playwright, or even virtual machines using QEMU. All of this is supported within the library and plugin itself.
The plugin is an example demonstrating the power of the library. For media playback, it supports several thousands of websites that can be listed here, some of which include YouTube, Twitch, SoundCloud, CNN, you name it. You're also able to play local files, stream from IP cameras, screen-share using an OBS virtual camera, and much more. All of this combined with audio playback, which you can use a website to stream audio to or a Discord bot to play audio in voice channels.
example-playback.mp4
Here is a list of all the modules that are included in MCAV
Module | Description |
---|---|
sandbox |
A Paper plugin for Minecraft servers that utilizes all the features of MCAV. |
mcav-common |
The core library for multimedia functionality. |
mcav-bukkit |
A Bukkit-specific module for Minecraft plugins. |
mcav-installer |
A simple installer for installing and injecting required libraries across all different modules of MCAV. |
mcav-jda |
A module integrating with the Java Discord API to play audio in Discord voice channels. |
mcav-http |
A module with Spring Boot back-end and Typescript front-end to stream PCM audio to an HTTP website. |
mcav-vm |
A module integrating with QEMU to run virtual machines. |
mcav-vnc |
A module interacting with VNC servers to capture video and control remote desktops. |
mcav-browser |
A module using Selenium and Playwright to provide browser support. |
mcav-lwjgl |
A module using LWJGL to provide OpenGL support for rendering video and images. |
MCAV is looking for contributors to help improve the library and plugin. We need
- Web Developers (Typescript, React, NextJS) to help improve the front-end of the HTTP module.
- Back-end Developers (Java, Spring Boot) to help improve the back-end of the HTTP module.
- Java Developers to help improve the core library.
- Bukkit Developers to help improve the Bukkit module and the sandbox plugin.
- Writers to help improve the documentation and tutorials.
- Testers to help test the library and plugin.
- Content Creators to help promote the library and plugin.
- And much more!
Please note that MCAV integrates several different libraries, each under different licenses based on what is incorporated into the project. The following table lists the libraries used in MCAV, and their respective licenses.
Library | License |
---|---|
VideoLAN/VLC | GPLv2 (or later) |
FFmpeg/FFmpeg | GPLv2 (or later) |
OpenCV/OpenCV | Apache 2 |
caprica/vlcj | GPLv3 |
bytedeco/javacv | Apache 2 |
yt-dlp/yt-dlp | Unlicense |
rkalla/imgscalr | Apache 2 |
Bukkit/Bukkit | GPLv3 |
As a result of this, the MCAV library is licensed under the GPLv3 license shown here. The Apache 2 License is compatible with the GPLv3 license, but not the GPLv2 license. You should license your project under the GPLv3 license or any other license that is compatible with the GPLv3 license.
Developer | Contribution |
---|---|
BananaPuncher714 | Original Inspiration |
Jetp250 | Implemented Java Floyd-Steinberg dithering |
Emilyy | Assisted with implementation and testing |
Conclure | Assisted with Maven to Gradle migration |
itxfrosty | Developed a Discord bot for music integration |
Rouge_Ram | Developed a Discord bot used in Discord Server |
Sponsor | Donation |
---|---|
Vijay Pondini | $10.00 |
Matthew Holden | $6.00 |
Project | Description |
---|---|
MakiDesktop | Controlling VNC through Minecraft Maps |
MakiScreen | Streaming OBS onto Minecraft Maps |