MapEngine Media Extension
Description
MapEngine Media Extension is an extension library for MapEngine.
It provides an additional API for playing video and streaming live content using MapEngine.
The Extension uses bytedeco/javacv's FFmpeg implementation for decode media.
JavaCV, JavaCPP and FFmpeg will be downloaded on server startup and loaded into the classpath.
This plugin downloads only the currently needed libraries for the current operating system and architecture.
Features
- Runtime dependency downloader
- FFmpeg based media decoding
Downloading native libraries
This is an example of native libraries being downloaded on server startup.

Live streaming via RTMP on maps
This is an example of a live stream on a map. The stream is played on a 7x4 map array. The Stream source is 1920x1080@20 streamed with OBS.
Usage
MapMediaExt has to be added as a dependency to the plugin.yml regardless of the build system used.
Maven
<repositories>
<repository>
<id>minceraft</id>
<url>https://repo.minceraft.dev/releases/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>de.pianoman911</groupId>
<artifactId>mapengine-mediaext</artifactId>
<version>1.1.2</version>
<scope>provided</scope>
</dependency>
</dependencies>
Gradle (groovy)
repositories {
maven {
url = 'https://repo.minceraft.dev/releases/'
name = 'minceraft'
}
}
dependencies {
compileOnly 'de.pianoman911:mapengine-mediaext:1.1.2'
}
Gradle (kotlin)
repositories {
maven("https://repo.minceraft.dev/releases/") {
name = "minceraft"
}
}
dependencies {
compileOnly("de.pianoman911:mapengine-mediaext:1.1.2")
}
Example
public class Bar {
public void foo(IMapDisplay display, URI streamUri) {
// create a drawing space for the display
IDrawingSpace space = plugin.mapEngine().pipeline().drawingSpace(display);
// add all online players as receivers
space.ctx().receivers().addAll(Bukkit.getOnlinePlayers());
// create a new frame source with a 10 frame buffer and rescaling enabled
FFmpegFrameSource source = new FFmpegFrameSource(streamUri, 10, space, true);
// start the decoding process
source.start();
}
}
More detailed examples can be found in the MinceraftMC/MapEngineExamples repository.
Building
- Clone the project (
git clone https://github.com/MinceraftMC/MapEngine-MediaExtension.git) - Go to the cloned directory (
cd MapEngine-MediaExtension) - Build the Jar (
./gradlew buildon Linux/MacOS,gradlew buildon Windows)
The plugin jar can be found in the build → libs directory.
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
Chunky
Pre-generates chunks, quickly and efficiently
18.4MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta