
MapEngine Media Extension
Расширение для плагина MapEngine, которое добавляет поддержку видео и прямых трансляций на картах в Minecraft. Использует FFmpeg для декодирования медиа - идеально для кинотеатров, информационных табло и стримов на сервере.
MapEngine Media Extension
MapEngine Media Extension - это библиотека-расширение для плагина MapEngine. Она добавляет API для воспроизведения видео и стримов прямо на картах в Minecraft. Если вы уже используете MapEngine для отображения изображений, то с этим расширением сможете показывать полноценное видео - хоть записанные ролики, хоть прямые эфиры.
Зачем это нужно?
В ванильном Minecraft нет встроенных средств для проигрывания видео на картах. С помощью MapEngine и этого расширения вы можете:
- Устроить кинотеатр на сервере - показывать фильмы или трейлеры на больших картах-экранах.
- Транслировать стримы с Twitch или OBS в реальном времени.
- Создавать информационные табло с динамическим контентом (например, новости или погода).
Всё это работает на стороне сервера - игрокам не нужно ничего устанавливать.
Как это работает
Расширение использует библиотеку bytedeco/javacv с FFmpeg для декодирования медиа. JavaCV, JavaCPP и сам FFmpeg загружаются автоматически при запуске сервера - только те версии, которые нужны под вашу операционную систему и архитектуру. Ничего лишнего.
Особенности
- Автоматическая загрузка зависимостей - не нужно вручную таскать FFmpeg.
- Декодирование через FFmpeg - поддерживает большинство форматов видео и потоков.
Загрузка нативных библиотек
Пример того, как библиотеки подгружаются при старте сервера - всё происходит автоматически, вы только подключаете зависимость.
Стриминг через RTMP на картах
Пример прямой трансляции на карте. Поток 1920x1080@20 транслируется через OBS и отображается на массиве карт 7x4.
Использование
Чтобы использовать API расширения, добавьте MapMediaExt как зависимость в plugin.yml.
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")
}
Пример кода
public class Bar {
public void foo(IMapDisplay display, URI streamUri) {
// создаём область рисования для дисплея
IDrawingSpace space = plugin.mapEngine().pipeline().drawingSpace(display);
// добавляем всех онлайн-игроков как получателей
space.ctx().receivers().addAll(Bukkit.getOnlinePlayers());
// создаём источник кадров с буфером на 10 кадров и масштабированием
FFmpegFrameSource source = new FFmpegFrameSource(streamUri, 10, space, true);
// запускаем декодирование
source.start();
}
}
Более подробные примеры можно найти в репозитории MinceraftMC/MapEngineExamples.
Важно знать
- Расширение скачивает только те библиотеки, которые нужны под вашу ОС - это экономит место и время.
- Для работы требуется установленный MapEngine - без него расширение бесполезно.
- Если вы собираете сервер с кинотеатром или информационными экранами - это must-have. На слабом железе проверьте нагрузку: декодирование видео может потреблять ресурсы, но FFmpeg оптимизирован.
Скачайте MapEngine Media Extension и добавьте видео на свой сервер Minecraft!
Сервер для плагина MapEngine Media Extension - как у профи
Плагин MapEngine Media Extension создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином MapEngine Media Extension для друзей можно за пару минут - BungeeHost всё уже подготовил.
