• 周年纪念勋章活动已圆满结束,如有已购买但仍未申请的用户,可以通过对应勋章的下载链接申请~
MediaPlayer - 在BDS服务器中播放NBS音乐和视频

其他 MediaPlayer - 在BDS服务器中播放NBS音乐和视频 v1.5.6

版权类型
原创
版权链接
https://github.com/ExtcanaRy/MediaPlayer
[MD]

# MediaPlayer

[![wakatime](https://wakatime.com/badge/user/2838d0e1-1416-4f45-bc46-cbda8f4d9e75/project/193328a5-c16a-4ad4-9ab2-f18b70349042.svg)](https://wakatime.com/badge/user/2838d0e1-1416-4f45-bc46-cbda8f4d9e75/project/193328a5-c16a-4ad4-9ab2-f18b70349042)

[![CodeFactor](https://www.codefactor.io/repository/github/extcanary/mediaplayer/badge)](https://www.codefactor.io/repository/github/extcanary/mediaplayer)

[English](README.md) | 简体中文

## 简介

本插件用于在BDS服务器播放NBS音乐和视频。
本插件是跨平台的,故可在BDS的Linux版本和Windows版本上运行

[/MD]

如果您觉得此插件对您有帮助,还请在 Github 给我点一个star

演示
1694716782642.jpg

1694717329331.jpg

Screenshot_20230416-135530_Minecraft.png

Screenshot_20230416-140110_Minecraft.png

[MD]

## 使用
### 先决条件
* 你的BDS版本必须与插件版本相对应

### Windows平台
本插件依赖LL提供的LLPreloader
将压缩包内容解压到 plugins 文件夹

### Linux平台
本插件依赖 server-modloader
将 libMediaPlayer.so 放入 mods 文件夹
其他文件放入 plugins 文件夹

### NBS 音乐播放
NBS音乐文件请放置到``plugins\MediaPlayer\nbs``文件夹中

#### 命令
``mpm``
- 主命令,执行后可获取帮助
``mpm list [name: string]``
- 列出所有的音乐并显示名称与索引。
- 若提供参数:搜索关键词 ``name``,则只显示搜索匹配成功的项目
``mpm play <index: number> [loop: number] [music bar type: number]``
- 播放指定索引 ``index`` 的音乐
- 若提供参数:循环次数 ``loop``,则循环播放音乐指定次数
- 若提供参数:音乐栏类型 ``music bar type``,则使用指定的类型,必须填入下表代码之一

| 代码 | 进度条类型 |
| ---| -----------------------|
| 0 | 不显示 |
| 1 | bossbar |
| 2 | actionbar: JUKEBOX_POPUP |
| 3 | actionbar: POPUP |
| 4 | actionbar: TIP |
| ---| -----------------------|

``mpm stop``
- 停止播放音乐,若同时播放视频,也会停止播放视频

注意:在播放音乐之前,请先使用``/mpm list``来获取音乐列表。
具体使用方法,也可以在游戏内使用``/mpm``命令查看
如果``plugins\MediaPlayer\video``文件夹下存在与音乐同名的视频,那么将会一同播放(如果玩家手持已使用的地图)
比如存在如下文件和文件夹,那么插件将会尝试同时播放音乐和视频:
``plugins\MediaPlayer\nbs\test.nbs``
``plugins\MediaPlayer\video\test``

#### 推荐NBS音乐资源

制作原创nbs音乐可不容易呢~来支持一下他们吧

[原创nbs音乐集合](https://www.minebbs.com/resources/nbs.4773/)

[nbs音乐《water》](https://www.minebbs.com/resources/nbs-water.4365/)

[nbs音乐集合](https://github.com/nickg2/NBSsongs)

### 视频播放

#### 命令
``mpv``
- 主命令,执行后可获取帮助
``mpv list [name: string]``
- 列出所有的音乐并显示名称与索引。
- 若提供参数:搜索关键词 ``name``,则只显示搜索匹配成功的项目
``mpv play <index: number> [loop: number]``
- 播放指定索引 ``index`` 的音乐
- 若提供参数:循环次数 ``loop``,则循环播放视频指定次数
``mpv stop``
- 停止播放视频

注意:在播放视频之前,请先使用``/mpv list``来获取视频列表。且必须手持已使用的地图
具体使用方法,也可以在游戏内使用``/mpv``命令查看

为保证插件的正常运行,请确保在``server.properties``中修改下图所示的选项
[/MD]
1694717972141.jpg

[MD]
目前大分辨率播放视频的功能仅供娱乐,由于其发送的像素很少有被压缩,所以大分辨率视频播放时产生的网络流量巨大,服务器无法承担。一般只能在本地播放。
896x512 20FPS的视频,发送数据的速率在20MB/s左右

在播放大分辨率视频之前,请先使用展示框和地图搭建一个屏幕,大概7x4大小(更大会卡顿)。首先在创造模式下摆放好展示框,拿好未使用的地图。然后切换到生存模式,一边生成地图一边摆放到展示框上,这样做是为了保证每个地图的独立性,防止数据冲突

请确保在你准备播放的屏幕周围加载区内没有展示框+地图的结构,否则可能会识别别处的类似结构为屏幕,并覆盖其内容

#### 生成可播放的视频文件
概述:
我们使用``ffmpeg``将视频转换成合适的分辨率,20FPS。
然后将视频中的每一帧提取为单个图片,再由插件进行播放。

首先,在[此处](https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z)下载``ffmpeg``
将其解压,并将``bin``文件夹中的``ffmpeg.exe``放入服务端下的``plugins\MediaPlayer\video``文件夹
将你需要生成的视频重命名为``input.mp4``,并且放入服务端下的``plugins\MediaPlayer\video``文件夹
在``plugins\MediaPlayer\video``文件夹中打开``convert.exe``进行转换。
Height:视频的高度,单位为方块
Width:视频的宽度,单位为方块
Rate:码率,默认1000
正确填写示例:
[/MD]
1694717645780.jpg

[MD]
播放手中地图时,宽和高写``1``即可
如果转换成功,应该会产生一个名为``output``的文件夹,如果有与之匹配的音乐,你可以将其重命名为和音乐同名。插件会在播放音乐的同时自动播放视频。
请将``input.mp4``和``output.mp4``两个文件删除,以便于下一次转换。

## 致谢

- [NorthernOceanS](https://github.com/NorthernOceanS) 的成员们提供了性能优化,多线程等方面的技术指导
- [yqs112358](https://github.com/yqs112358) 提供了在发包层面的技术支持
- [lgc2333](https://github.com/lgc2333) 参与了[nbsparser](https://github.com/ExtcanaRy/nbsparser)的开发,提供了基础技术支持
- 该项目部分代码实现参照了[nbsplayer](https://www.minebbs.com/resources/nbsplayer-bds-nbs.4479/),具有重大意义

没有他们的支持,这个项目不可能实现

## 致敬

2018年诞生的NK视频播放器[MCBEMovie](https://github.com/Creeperface01/MCBEMovie)

## 许可证
| 项目 | 许可证 |
| ------------------------------------------------------------ | ------------------------------------------------------------------------ |
| [LiteHooker](https://github.com/ExtcanaRy/LiteHooker) | GPL-3.0 |
| [nbsparser](https://github.com/ExtcanaRy/nbsparser) | GPL-3.0 |
| [dirent](https://github.com/tronkko/dirent) | MIT |
| [minhook](https://github.com/TsudaKageyu/minhook) | [许可证](https://github.com/TsudaKageyu/minhook/blob/master/LICENSE.txt) |
| [uthash](https://github.com/troydhanson/uthash) | [许可证](https://github.com/troydhanson/uthash/blob/master/LICENSE) |
| [microsoft-pdb](https://github.com/microsoft/microsoft-pdb) | [许可证](https://github.com/microsoft/microsoft-pdb/blob/master/LICENSE) |
| [Horion](https://github.com/horionclient/Horion) | [许可证](https://github.com/horionclient/Horion/blob/master/LICENSE) |
[/MD]
  • 1694716111328.jpg
    1694716111328.jpg
    59.8 KB · 查看: 146
作者
WillowSauceR
价格
30金粒
下载
181
查看
4,996
首次发布
最后更新

评分

5.00 星 4 次评分

WillowSauceR 的其他资源

最新更新

  1. v1.5.6

    同时支持linux和windows平台 linux平台请使用 server-modloader 加载此插件
  2. v1.5.5

    适配1.20.41
  3. v1.5.4

    适配1.20.30

最新评价

您好作者我想问下,为什么我在我自己电脑上运行您的插件并将可播放的nbs文件放入了正确的位置在游戏中可以正常播放,而当我加在服务器上时在我使用面板或不适用面板时输入/mpm list均提示没有找到可播放的NBS音乐,,而nbs文件也是在电脑上测试时用的文件位置也正确
作者,我一使用这插件播放视频服务器就卡是什么原因
WillowSauceR
WillowSauceR
可能是服务器CPU性能不足导致的
原创nbs音乐作者来了 这个插件太优秀了太强了
有新意的插件:)
后退
顶部 底部