高级配置建议

更新日期:

此处收集了所需的服务器设置和其他安装指南。兼容性列表中的配置链接指向相关部分。

Ampache 和 LMS:使用 API 密钥登录

Ampache 7、Ampache 8 和 LMS 需要 API 密钥才能登录。在服务器上为您自己的帐户创建一个密钥,并在 MusicServer Connect 中连接时使用它。保密。

Ampache 7.10.2:导入没有标题艺术家的标题

症状和原因

目录导入期间可能会忽略没有曲目艺术家的文件。下面的数据库更正使其能够导入。 Ampache登录需要API密钥;看到 使用 API 密钥登录.

适用范围

此更正适用于具有 MariaDB 的 Ampache 7.10.2 和如下所示的列定义。对于其他版本,首先检查是否存在相同的原因。

改变了什么

仅将所选 Ampache 数据库中的 song.artist 更改为允许 NULL。保留其数据类型、默认值0和现有索引。 Ampache 源代码和音乐文件未更改。没有发明艺术家名字,也没有替换文件标签。其他数据库和全局 MariaDB 设置不受影响。

一般数据库修复

要求

在 MariaDB 服务器上(如果适用)在其容器内运行这些命令。数据库帐户需要读取权限才能对歌曲进行检查和更改权限。该示例使用本地 root 登录。对于另一个数据库帐户,请使用现有的安全客户端配置;不要在命令中输入密码。

首先确定实际的数据库名称,在 Ampache 配置中列为 database_name。在每个命令中使用您自己的数据库名称。

AMPACHE_DB='DEIN_AMPACHE_DATENBANKNAME'
mariadb --database="$AMPACHE_DB" -e \
  "SHOW COLUMNS FROM song LIKE 'artist';"

对于已确认的问题,输出显示 Type=int(11) unsigned、Null=NO 和 Default=0。如果为 Null=YES,则已应用校正。未经检查,请勿更改不同的定义。

推荐:随附的脚本 下载ampache7-null-artist.sh 在数据库服务器上。它检查列,仅接受预期的无符号 INT 类型,并且如果已允许 NULL,则不会进行进一步更改。意外的模式使其停止而不进行更改。

sh /pfad/zum/ampache7-null-artist.sh "$AMPACHE_DB"

修复上述定义的具体 SQL 核心是:

ALTER TABLE song
  MODIFY COLUMN artist INT(11) UNSIGNED NULL DEFAULT 0;

导入丢失的文件并检查结果

更改架构后,导入丢失的文件。使用您自己安装的应用程序路径、目录名称和服务帐户。 PHP 版本必须与 Ampache 版本匹配。

AMPACHE_APP='/pfad/zur/ampache-installation'
AMPACHE_CATALOG='DEIN_KATALOGNAME'
runuser -u www-data -- php "$AMPACHE_APP/bin/cli" \
  run:updateCatalog "$AMPACHE_CATALOG" -a

mariadb --database="$AMPACHE_DB" -e \
  "SELECT COUNT(*) AS Titel FROM song;
   SELECT id, title, artist, enabled FROM song
   WHERE artist IS NULL;"

-a 添加新媒体文件。它不请求目录清理、播放列表导入或重新扫描现有文件标签。 Ampache 然后可以更新内部映射和计数器。

然后更新插件,打开所有标题并检查以前丢失的标题。然后就是上面的标题 所有标题→全部标记→搜索数据库→添加到数据库 进入 VirtualDJ 搜索数据库。参见 在树节点内搜索.

操作及后期更新

这是本地数据库架构调整,而不是官方确认的常规 Ampache 迁移。 Ampache 数据库更新后,再次检查 song.artist 和不带曲目艺术家的文件导入:迁移可能会更改定义。脚本可以反复检查。

要恢复 NOT NULL,首先需要对现有的 NULL 条目进行深思熟虑的处理;盲目地重置列并不是合适的回滚。经过检查的更正将缺失的曲目艺术家保留为缺失信息。

Gonic 0.22.0:每个音乐文件夹一张专辑

症状和原因

Gonic 每个专辑需要一个单独的文件夹。将相册的文件放在一起;不要将不同的专辑混合在一个文件夹中。不相关的单身人士的共享文件夹不满足此要求。然后,Gonic 可以将第一个文件的专辑元数据(包括专辑艺术家)应用到该文件夹​​中的每个其他文件。

推荐的文件夹结构

单曲也应按专辑分别建立子文件夹,例如«Einzeltitel/Alter Ego - Betty Ford (Bonus Remixes Version)» / «Einzeltitel/Homie Isback - Cherrymoon»。两个Cherrymoon版本如果属于同一专辑,可以放在同一个文件夹中。不同发行版本应分开存放。请将音乐文件放在已配置音乐路径的子文件夹中:Gonic 0.22.0会跳过根文件夹中直接存放的文件。

如果多个服务器共享一个库,您可以使用符号链接为 Gonic 创建单独的文件夹视图。也为每个专辑提供自己的文件夹。配置音乐路径,以便每个曲目仅索引一次。 Gonic 服务帐户需要访问链接及其目标。

更改后查看

完全重新扫描Gonic,然后刷新插件曲目列表。检查总数、专辑分组、艺术家节点和播放。更改导入路径可能会创建新的服务器 ID,因此请随后检查现有的收藏夹、播放列表和 VirtualDJ 设置。如果需要,请再次注册曲目。 添加到VirtualDJ搜索数据库。新添加的单个曲目还必须在适当的专辑文件夹结构中提供。

为用户提供基于文件的播放列表

Gonic 从其配置中读取播放列表 playlists-path 以及一个以数字用户 ID 命名的子文件夹。将具有为 Gonic 解析的媒体路径的 M3U/M3U8 文件放在那里。正常的音乐扫描不会自动从其他库文件夹导入播放列表。我们的设置创建派生视图而不更改共享原始视图。更改源后刷新这些视图。

Gonic 项目文档

Gerbera 3.3.0-77:BPM、密钥、UTF-8 和 Inotify

为 BPM 和密钥添加以下映射。音乐文件必须包含相应的 BPM 和 KEY 或 INITIALKEY 标签。保留现有映射,例如 PERFORMER。

附加线路:Tag Name 和 Upnp metadata entry
图书馆Tag NameUpnp metadata entry
taglibBPMupnp:beatsPerMinute
taglibKEYupnp:key
taglibINITIALKEYupnp:initialKey
ffmpeg节拍数upnp:beatsPerMinute
ffmpeg钥匙upnp:key
ffmpeg初始键upnp:initialKey

对于基于 XML 的安装,请在导入 → 库选项 → id3 → 元数据和 ffmpeg → 元数据下添加条目。 Gerbera 在其 Web 界面中将 XML 组 id3 标记为 taglib Library Options。将两个库中的charset设置为UTF-8;也将 filesystem-charset、metadata-charset 和 playlist-charset 保留或设置为 UTF-8。保存并重启Gerbera。额外的标签映射在再次导入文件时生效;正常的重新扫描可能会跳过未更改的文件。对于新安装,请在导入音乐之前配置这些选项。

MP4、M4A 和 M4V:更喜欢更精确的 BPM 标签

可从 Git 构建 3.3.0-77 获得: BPM 扩展 Gerbera-PR #3993 已合并并包含在官方镜像中。更高的精度是可选的,并且必须启用 prefer_highest_bpm_accuracy="yes" 被打开。没有这个属性仍然存在 no 默认值。

MP4 属性 tmpo 包含一个整数。此外,附加的 iTunes BPM 标签可以包含更精确的值。在现有的 XML 元素中 import → library-options → id3 可以打开它的偏好吗?保留现有的标签映射:

<id3 prefer_highest_bpm_accuracy="yes" prefer_ambigous_bpm_value="bpm_tag">
  <metadata>
    <add-data tag="BPM" key="upnp:beatsPerMinute" />
  </metadata>
</id3>

如果丢失 prefer_highest_bpm_accuracy 或者如果它设置为 no,保留先前的行为。对于 yes Gerbera 读取 tmpo 以及单独的附加 BPM 标签。如果距离小于1 BPM,则采用标签值,例如 123,5 相反 123。如果值至少相差 1 BPM,则选择由下式确定 prefer_ambigous_bpm_value: tmpo 更喜欢整数, bpm_tag 附加标签。如果第二个属性不存在, bpm_tag。属性表示法是明确的 prefer_ambigous_bpm_value.

只有有限的正数对该选择有效;在文件标记中使用小数点。如果只有一个来源有效,则使用它。半场或双场时间值不会自动修正。其他标签、流派、曲调和封面的读取方式与以前一样。更改配置后重启Gerbera并重新导入受影响的文件;正常的重新扫描可能会跳过未更改的文件。

AIFF:BPM,键入并读取多种流派

如果 AIFF 文件缺少 BPM 或密钥,尽管存在 ID3 标签,在 Gerbera 中 配置 → 专家 → 导入 → 映射 → Mimetype-Contenttype 已识别的 MIME 类型到内容类型的映射 aiff 补充。对于 audio/x-aiff 和 audio/aiff 每个 aiff 输入。这允许Gerbera使用匹配的TagLib读卡器;仍然需要上表中的 BPM/键映射。

在 XML 配置中,现有部分中的以下行 import → mappings → mimetype-contenttype 添加以下内容,保留现有映射:

<treat mimetype="audio/x-aiff" as="aiff" />
<treat mimetype="audio/aiff" as="aiff" />

重新启动 Gerbera 或其容器并再次导入受影响的文件。正常的重新扫描可能会跳过未更改的文件;无需重命名或更改时间戳。

OGV:采用音视频轨道中的标签

使用 OGV,标题、艺术家、专辑、流派、BPM 和密钥可以位于各个音频和视频轨道中。在 Gerbera 中激活 配置 → 专家 → Library Options → ffmpeg Library Options 选项 streams-enabled。这在 XML 配置中可用 import → library-options → ffmpeg元素、属性 streams-enabled="yes" 放;保留现有属性和标签分配。

重新启动 Gerbera 或其容器,然后重新导入现有的 OGV 文件。仍然需要上表中的 BPM/键映射。如果不启用流元数据分析,尽管正确保存了文件标签,但这些值可能不存在。

WebM 和 WMV:通过合适的读者采用多种流派

由于 Git 构建了 3.3.0-62 并且也在当前版本中 3.3.0-77 可以从 WebM 和 WMV 读取多个流派标签。更新保留现有配置,因此新版本中添加的读取器映射可能仍然丢失。在 配置 → 专家 → 导入 → 映射 → Mimetype-Contenttype 添加以下映射或在现有 XML 部分中 import → mappings → mimetype-contenttype 输入:

<treat mimetype="video/webm" as="mkv" />
<treat mimetype="video/x-ms-wmv" as="asf" />

保留现有映射和 BPM/密钥设置,重新启动 Gerbera 并重新导入受影响的文件。这会更改使用的元数据读取器,而不是返回的视频 MIME 类型。文件不需要转换或重命名。其基础是 此 Gerbera 源版本的默认映射.

自动检测文件和属性更改

Inotify 检测文件系统事件。 inotify-attrib="yes"还监视属性变化,包括触摸改变的时间戳。对于 Linux 安装,扩展 /etc/gerbera/config.xml 中现有的自动扫描部分,同时保留音乐路径:

<autoscan use-inotify="yes" inotify-attrib="yes">
  <directory location="/srv/music" mode="inotify" recursive="yes" hidden-files="no" />
</autoscan>

然后使用Linux服务 systemctl restart gerbera 重新启动。

官方Gerbera容器中的Inotify

官方镜像已经为挂载的音乐文件夹启用了 Inotify,但附加属性监控最初被禁用。使用 Inotify 和监控 Inotify 属性更改出现在 Gerbera Config → Expert → Import 下,但无法通过检查图像中的该视图进行编辑。设置存储在/var/run/gerbera/autoscan.xml.中

  1. 在QNAP上,在Container Station中打开gerbera-qnap并启动其终端或控制台。在 Synology 上,在容器管理器中选择 gerbera-synology,打开其终端并启动 /bin/sh. 在容器内运行以下命令。
  2. 插入以下块。它完成属性并显示扫描文件;音乐路径和现有设置将被保留。
test -f /var/run/gerbera/autoscan.xml &&
sed -i -e 's/inotify-attrib="no"/inotify-attrib="yes"/g' \
  -e '/<autoscan/ { /inotify-attrib=/! s/<autoscan/<autoscan inotify-attrib="yes"/; }' \
  /var/run/gerbera/autoscan.xml &&
cat /var/run/gerbera/autoscan.xml

输出必须显示带有 inotify-attrib="yes" 的自动扫描。重新启动容器,然后检查 Gerbera Config 中是否选择了 Monitor Inotify Attribute Changes。如果缺少autoscan.xml,首先识别实际使用的配置文件。此命令适用于 NAS 指南中指定的官方版本。

单独的流派标签不需要额外的设置。 MusicServer Connect 使用 UPnP 提供的所有流派字段。从版本 1.5 开始,由分号或斜杠分隔的组合流派也分配给其各自的流派视图。服务器和文件标签保持不变。

资料来源: Gerbera 自动扫描和属性监控, 官方容器镜像的初始配置.

Gerbera 3.3.0-77:搜索结果中的纯标题名称

默认情况下,Gerbera 将 M_ARTIST 和 M_TITLE 组合用于 UPnP 搜索响应中的曲目标题。 MusicServer Connect 通过该界面导入,因此即使 TITLE 文件标签仅包含“Electric Deluxe”,“Speedy J - Electric Deluxe”也会出现在标题栏中。

在 server → upnp 下,将 search-item-result 配置为仅使用 M_TITLE。 extend="no" 替换默认列表而不是附加条目:

<search-item-result extend="no">
  <add-data tag="M_TITLE" />
</search-item-result>

的 配置脚本gerbera-suchtitel.py 在现有 XML 配置中设置此选项。默认路径为/etc/gerbera/config.xml;可以提供另一个路径作为参数。现有的命名空间、注释和其他设置将被保留。如果服务器结构不明确,脚本会在写入之前停止。

或者在 Gerbera 的 Web 界面中 配置 → 服务器 → UPnP → 搜索项结果 条目 M_ARTIST 删除并且仅 M_TITLE 保留它。检查已保存在 Web 界面中的设置,因为这些设置可能会覆盖 XML 值。此设置也适用于 Gerbera 3.3。艺术家仍可作为单独的元数据字段使用。

重启Gerbera并重新加载插件连接。此设置更改搜索结果中的曲目标题;无需更改插件或音乐文件。还要检查 VirtualDJ 中已存储曲目的显示。可选的 FRITZ!Box 艺术家检测与此设置无关。

Gerbera:播放列表查看和导入

为什么同一个播放列表会出现多次

Gerbera 可能会在两个播放列表 → 所有播放列表和播放列表 → 目录下显示相同的播放列表。这并不意味着播放列表文件存在多次。

MusicServer Connect 结合了相同的播放列表视图。如果它们的内容不同或查询不完整,则多个视图可能仍然可见。

检查不完整的播放列表导入

  1. 检查播放列表条目。相对路径指的是它们的文件夹。
  2. 验证所有引用的音乐文件是否存在并且可由 Gerbera 的服务帐户读取。
  3. 更改后再次读取播放列表。如果导入不完整,请重新启动Gerbera服务并等待扫描。
  4. 然后更新插件中的视图并检查播放列表。

要自动检测文件时间戳的更改,请使用 Inotify属性监控 激活。

已弃用的播放列表参考和 M3U 字符集

更改被引用的媒体文件后,请重新检查播放列表内容。普通的重新扫描可能不会更改现有的播放列表视图。随后在 MusicServer Connect 中刷新媒体库。此过程中目录标识符可能会改变。

为了与 MinimServer 共享相同的播放列表文件,我们将 M3U 与 Windows-1252 保存,M3U8 与 UTF-8 保存。测试版本 3.3.0-77 中的 Gerbera 的标准导入器未正确解析 Windows-1252-M3U 的元音变音路径。这 下载经过验证的 M3U 导入扩展 并将其保存在配置的自定义脚本目录中。它检测 M3U 行中的有效 UTF-8,否则使用 Windows-1252。 M3U8、PLS 和 XML 播放列表继续使用标准导入器。保留现有的自定义脚本。

在现有Gerbera配置下 import/scripting/import-function 播放列表函数名称来自 importPlaylist 上 mscImportPlaylist 改变。在下面 import/scripting/script-folder/custom 配置的目录必须包含下载的文件并永久存储以用于容器安装。在测试台上表现较差 /var/run/gerbera/custom-js。然后重新启动Gerbera并再次导入播放列表记录。该扩展需要 JavaScript 导入器。

MiniDLNA / ReadyMedia 1.3.3:播放列表文件扩展名

MiniDLNA 1.3.3 识别带有 .m3u 和 .pls 的播放列表。不读取带有 .m3u8 的文件。

建议:如果可能,重命名为 M3U

如果没有其他应用程序或服务器配置依赖于当前 M3U8 文件名,请将扩展名从 .m3u8 更改为 .m3u。这是 MiniDLNA 最简单的解决方案。保持内容、UTF-8 编码和位置不变,以便相关音乐路径继续工作。更新对播放列表文件名的所有引用。然后让 MiniDLNA 再次导入播放列表并刷新插件。

替代方案:保留共享的 M3U8 源

如果其他服务器需要 M3U8 文件,请为 MiniDLNA 创建额外的 M3U 文件。如果位于不同的文件夹中,请调整相对音乐路径或使用绝对路径。

的 设置脚本 minidlna-playlist-view.py 检查源和目标,创建派生的 M3U 并将 media_dir=A,/media3 添加到 MiniDLNA 的现有配置中。它不会更改 M3U8 源或现有的 media_dir 条目。当目的地发生冲突时,它会停止。重新加载MiniDLNA并刷新插件。更改源播放列表后,运行脚本并再次重新启动 MiniDLNA 以保持派生视图最新。未安装更改观察程序。

重建时缓存权限

如果MiniDLNA重建时无法清理其覆盖缓存,请检查缓存及其子目录的写权限。

对于其他安装,首先确定实际的服务帐户和配置的缓存路径。重建库后,刷新插件。如有必要,请使用“数据库搜索→添加到数据库”再次注册完整曲目列表。

分享音频和视频

分享给 media_dir=A,/srv/music 仅限于音频。对于两种媒体类型,打开此现有行 media_dir=AV,/srv/music 更改,获得进一步批准并重新启动服务。编解码器和元数据限制与此无关。

Serviio 2.5:发布所需视图

要使专辑艺术家和原始专辑顺序可用,请在 Serviio 控制台中显示所需的类别。

曲目顺序

对于原始曲目顺序,请打开单个专辑。 VirtualDJ 中选定的列排序可以更改可见顺序。

在 Serviio 控制台的演示 → 音频下,将音乐、专辑、标题和播放列表设置为“显示类别”。其他音频类别可以使用“仅显示内容”。相册视图必须可用于补充查询。无需更改音乐文件。

不同的已保存专辑艺术家

如果 Serviio 的专辑或艺术家元数据与文件标签不同,请重新读取服务器上的元数据,然后刷新插件。

如果有多个流派标签,则只采用第一个。

如果文件有多个流派标签,则仅使用第一个。返回的元数据和流派树中缺少其余流派。此兼容性限制并不特定于一种文件格式。

还可以阅读视频

下 库 → 共享文件夹 编辑现有的库文件夹,此外 音频 还有 视频 来启用它。保存共享并 强制刷新 执行。混合文件播放列表由 Serviio 在单独的音频和视频视图中提供。

Twonky 服务器 8.5.2:完整曲目和专辑检索

当它检测到 Twonky 结构时,MusicServer Connect 使用完整的本机曲目和专辑视图。在我们的检查中,全局服务器搜索忽略了 W 和 Y 下的七个可访问曲目。自动回退还会检索这些曲目并保留专辑顺序。不需要额外的插件设置。不完整或不一致的本机页面仍会被拒绝。

后续检查涵盖了 149 媒体文件(139 音频、十个视频)和所有提供的视图,没有检索错误。缺少 ASX/XSPF 支持、格式和元数据仍然是服务器限制。 Twonky重启后可能需要新的厂商登录;登录通知不是音乐目录。

Universal Media Server 15.8.2:Linux服务和相册显示

对于 Linux 服务,请将环境设置为 UTF-8,以便可以处理包含变音符号和其他 Unicode 字符的音乐路径。

与 systemctl edit DIENSTNAME.service 为您自己的 UMS 服务设置以下附加内容。之后 systemctl daemon-reload 运行,重新启动该服务并等待库扫描。

[Service]
Environment=LANG=C.UTF-8
Environment=LC_ALL=C.UTF-8

C.UTF-8 区域设置必须在系统上可用。单独设置 Java file.encoding 不会替换用于文件名的区域设置。从交互式 shell 启动的 Java 命令可能使用与正在运行的服务不同的设置。

直接访问 Linux 上的音乐文件夹可以避免 Windows 共享对文件名的限制,例如包含问号的名称。

专辑艺术家和数据库搜索

要获取 UMS.conf 中完整的专辑艺术家信息,请激活内置数据库搜索并重新启动 UMS:

search_lucene_use_engine = false

该设置将 Lucene 全文搜索替换为内置数据库搜索。

原专辑顺序

对于原始曲目顺序,请打开单个专辑。 VirtualDJ 中选定的列排序可以更改可见顺序。

UMS 将多个流派标签组合成一个文本,并用“/”分隔。 MusicServer Connect从中创建单独的流派节点;该曲目出现在每个列出的流派下。 处理多种类型.

ASX 文件和不完整的目录搜索

UMS 15.8.2 可能会将 ASX 播放列表文件计为视频文件夹,而不返回相应的对象。音频搜索还可能宣布比返回的匹配项更多的匹配项,并且可能会从音频类搜索中省略 OGG。 MusicServer Connect 检测这些不一致并使用真实文件夹补充目录。已检查的 141 音频和十个视频文件的集合会完整显示,并保留现有的音频 ID 和元数据。无需额外设置。

该插件独立于不完整的 SQL 搜索来发现真实的子文件夹。先前检查的搜索页面仅用于映射别名。它在接受之前比较两个完整的文件清单,并再次检查搜索状态的更改。它不遍历虚拟过滤器组合。如果未来的 UMS 版本提供具有正确媒体类的完整搜索结果,则该插件会自动再次使用该直接搜索。库源文件保持不变。

此回退不会修复丢失的服务器元数据或播放列表条目:ASX、WPL 和 XSPF 仍然不作为播放列表视图。 UMS 省略了此处检查的旧 M3U/PLS 列表中的第一首曲目。然而,三个混合格式列表包含所有六个位置,包括重复的音频和视频条目。

音频转换和流媒体 WAV

UMS 可以根据客户端配置文件将音频转码为 16 位 WAV。尽管无限制的 WAV 长度未通过严格的文件验证,但在后续检查中,四个样本包含完整的音频。归一化为 16 位后正常解码和比较成功。这并不能证明原始 24 位分辨率的保留。非常小的范围请求可能在转换期间返回空;正常下载和 64 KiB 请求有效。

隐藏额外的转码文件夹

show_transcode_folder = false 隐藏替代转码设置的虚拟文件夹。转码本身和保存的媒体标签将被保留。仅此显示选项无法修复不一致的 UPnP 页计数。

MinimServer:BPM/密钥和库更新

从音乐文件中读取 BPM 和密钥

要提供其他标签,您需要完整或试用 MinimServer 许可证。音乐文件必须包含 BPM 和 KEY 或 INITIALKEY 标签。

  1. 在MinimServer配置页面上,打开属性。
  2. itemTags 下的名称 BPM,KEY,INITIALKEY 补充。保留现有条目;标签必须与您自己的音乐文件匹配。 KEY 和 INITIALKEY 考虑:MP3 字段 TKEY 被 MinimServer 视为 INITIALKEY 已读。
  3. 保存更改并执行请求的服务器重新启动。
  4. 在“状态”下运行重新扫描。然后更新MusicServer Connect中的库。

更多信息: MinimServer:附加元数据 和 许可范围。 WiiM的Advanced Mode是WiiM应用程序的一个功能;这里的完整许可证要求涉及附加服务器元数据。

已存储在 VirtualDJ 中的值在更改后可能仍会保留。要重新读取嵌入的 BPM/调号标签,请选择受影响的曲目,然后在上下文菜单中选择“从音乐文件中读取 BPM 和调号”。对于新的音频分析,请使用“分析 BPM 和标签”;选择多个曲目时,此操作位于“批量”下。

修改后重读

更改音乐文件、标签或修改时间后重新扫描 MinimServer。打开其配置页面,选择状态选项卡并单击重新扫描。刷新状态直至报告“正在运行”,然后刷新 MusicServer Connect。单独重新启动 MinimServer 通常不会触发重新扫描。

过时的服务器索引可能会返回“修改或删除的项目”占位符,而没有轨道元数据或音频文件。这些占位符可能仍包含在报告的总数中。尽管专辑艺术家和专辑仍然可以从现有服务器容器中获知,但该插件会显示更少的可用曲目。

参见 MinimServer配置页并重新扫描 以及 用于自动重新扫描的官方 Web API.

合并多个文件夹中的一张专辑

如果同一专辑中的曲目位于多个文件夹中,MinimServer 可以传送多个同名专辑。属性下的设置 mergeFolderAlbums 上 true 到指示值,保存并重新启动MinimServer。专辑名称和专辑艺术家必须匹配。此设置适用于整个库,还可以组合多个文件夹中的其他匹配专辑。媒体文件未更改。

在我们的检查中,这将音频和视频子文件夹中的“MSC Format Tests 1.3”合并到一张专辑中,其中包含 MinimServer 识别的 13 曲目。此前,这两个组分别包含十一首和两首曲目。然后在WiiM Home中打开服务器并 … → 重新扫描音乐服务器 更新应用程序自己的索引。标签可能因应用程序语言而异。之后,WiiM Home 在我们的检查中只显示了示例专辑的一份副本。

参见 MinimServer:相册和文件夹 和 WiiM Home:再次读取媒体库.

M3U/M3U8:字符集和缺失条目

MinimServer 预计 .m3u 与 Windows-1252 或 ISO-8859-1 和 .m3u8 使用 UTF-8 编码。扩展名为 UTF-8 的文件 .m3u 因此可能会忽略路径包含重音字符的轨道。使用 M3U8 作为 Unicode 路径。如果还需要 M3U,请以适当的编码保存单独的副本。不要替换此编码无法表示的字符。

在检查的集合中,重新扫描修复了之前作为“修改或删除的项目”返回的陈旧“Betty Ford”引用,而没有可用的音频。附加 Sven Väth M3U 的正确 Windows-1252 编码也恢复了对“W.I.R.”的重音路径引用。然后,两个列表都按源顺序提供了所有四个曲目,而无需重建完整的目录。混合格式列表提供了六个位置中的五个,包括重复; MKV 仍被排除,因为该格式不受支持。

重新扫描后,更新插件中的库。来源: MinimServer:播放列表格式和字符集.

JRiver:导入播放列表并允许读取访问

将播放列表导入 JRiver 库。如果自动音乐导入跳过播放列表,请单独导入它,然后刷新插件视图。

通过 JRiver 的 Web 服务接口进行写入需要启用身份验证。必须保持允许匿名读取访问:MusicServer Connect 使用它来区分常规播放列表和智能播放列表。读取访问权限不授予播放列表编辑权限。

您可以在插件中显示或隐藏智能播放列表。构建树时不会请求隐藏的智能播放列表内容;当你展示它们时它们就被加载了。空列表和没有音轨的列表不会显示为音乐播放列表。

Synology:设置默认媒体服务器

Synology的标准服务器支持WiiM Home Advanced Mode。如果 VirtualDJ 计算 BPM 和密钥本身,那么对于 MusicServer Connect 来说也足够了。对于存储的BPM/键值,您可以使用 集装箱内Gerbera 。两台服务器可以读取相同的音乐文件。

在套件中心安装媒体服务器并将您的音乐库复制到共享音乐文件夹中。存储池和卷必须已存在。

  • 常规设置:DMA菜单语言随意,DMA菜单风格简约风格;将 SSDP 报告间隔保留为默认值。
  • 搜索设置:将音乐显示格式设置为“仅标题”;允许带有“音频/视频文件的封面图像”的额外封面文件,并保留默认文件名。
  • DMA 兼容性:关闭音频转码和自定义 MIME 类型。允许访问所需的设备。
  • 复制后,安全弹出 USB 存储器。专辑、单个曲目和播放列表文件夹直接位于音乐下方。

Synology媒体服务器将多个流派标签组合成一个值,并用“;”分隔。 MusicServer Connect 创建单独的流派节点,因此每个曲目都出现在每个列出的流派下。 处理多种类型.

使用 .m3u 扩展名保存播放列表。在 File Station 中,将音乐/播放列表下的 .m3u8 文件重命名为 .m3u,保留 UTF-8 内容和相对路径。如果其他服务器需要M3U8,请创建单独的M3U副本。

FRITZ!Box:音频格式和曲目艺术家

设置媒体服务器

连接包含音乐库的 USB 存储设备。在FRITZ!Box界面中,家庭网络→媒体服务器下启用媒体服务器,选择USB存储作为媒体源并应用。在家庭网络 → USB/存储或存储 (NAS) 下构建或更新其文件索引,并等待索引。然后选择MusicServer Connect中的FRITZ!Box媒体服务器。

音频格式和元数据

FRITZ!Box 可以流式传输多种音频格式,但只能读取其中的一些标签。如果没有标签支持,专辑艺术家、专辑和流派将从库树中丢失。启用曲目艺术家检测后,MusicServer Connect 可以根据“艺术家 - 曲目名称”模式中的名称派生艺术家。文件仍然可以通过所有曲目、文件夹和支持的播放列表进行访问。

根据FRITZ!Box格式表进行标签评估
音频格式标签读取
MP3、WMA、ASF是的;不保证所有单独的元数据字段。
FLAC否
AAC, M4A否
WAV、AIF/AIFF、LPCM否
奥格·沃比斯、APE、WavPack、MPC否
3GP、AC3、MKA、MPA、MP1、MP2、真实音频、卡拉 OK CDG/BIN否

对于 MP3/WMA,供应商文档列出了标题、艺术家、专辑、流派和曲目编号以及 ID3 v2.3 或更早版本。因此,专辑艺术家、BPM 和密钥未被确认为受支持的字段。 VirtualDJ或播放器必须支持该音频格式才能播放。

建议:使用曲目艺术家

对于 FLAC 或其他没有标签评估格式的库,即使与 MP3 混合,视图 曲目艺术家 如果文件名遵循以下模式 “艺术家 - 标题名称” 对应。首先在源 MusicServer Connect 的上下文菜单中执行此操作 “根据文件名确定标题艺术家” 打开。然后选择“显示艺术家”和“切换到标题艺术家”(如果此视图尚未激活)。

默认情况下,对于新服务器连接禁用此检测,并针对每个连接进行保存。要关闭它,请在同一菜单中选择“禁用从文件名检测曲目艺术家”。如果您的文件名不遵循“艺术家 - 曲目名称”,请将其禁用:插件无法确定连字符之前的文本是艺​​术家还是标题的一部分。

启用检测后,艺术家缺失且名称与模式匹配,MusicServer Connect 在第一个“-”处分割。例如,“1st Bass - Slam Me Down”成为艺术家“1st Bass”和标题“Slam Me Down”。其他连字符保留在标题中;现有艺术家元数据优先。禁用后,不会执行此拆分,并且服务器提供的标题为此目的保持不变。混音检测是一个单独的设置。

切换时,如果标题和艺术家仍然与两个插件生成的变体之一匹配,MusicServer Connect 还会更新保存的标题显示。其他手动编辑将被保留。此开关不会更改 BPM、调、混音或分析值。

这种检测填补了艺术家领域和跟踪艺术家的视野。它不会取代专辑、专辑艺术家或流派标签。如果您的库仅包含 MP3、WMA 或 ASF,则可以使用服务器提供的标签,并且不需要曲目艺术家视图作为后备。仅当服务器实际提供所需信息时,专辑艺术家视图才有用。

对于未读取标签的格式,FRITZ!Box 也无法提供存储的 BPM/键值。 VirtualDJ可以自己计算这些。要实现基于标签的完整库导航,请使用支持您的格式元数据的音乐服务器。

播放列表

使用 M3U 或 PLS。 WPL 已被识别,但可以省略曲目,因此请选择 M3U 或 PLS 以获得可靠的完整列表。 M3U8、ASX 和 XSPF 不被识别为播放列表。保留 UTF-8 内容和有效的相关音乐路径。 MusicServer Connect 从显示的播放列表名称中删除文件扩展名和附加的文件夹名称。

制造商文档: 音频格式、标签读取和播放列表格式, 排序和标记版本 以及 设置媒体服务器并创建文件索引.

QNAP:并行运行标准媒体服务器和Gerbera

QNAP 的标准媒体流插件支持 WiiM Home Advanced Mode。如果 VirtualDJ 计算 BPM 和密钥,则对于 MusicServer Connect 来说也足够了,并且可以接受不正确的播放列表顺序。对于存储的 BPM/键值、单独的流派和正确的播放列表顺序,您可以使用 Gerbera带集装箱站 予以补充。

在应用程序中心安装多媒体控制台和媒体流附加组件。将音乐文件夹放在公共/音乐下。在多媒体控制台 → 内容管理中,选择媒体流附加组件并添加公共/音乐作为内容源。

  • 索引:启用多媒体信息;正常优先级。对于 UTF-8 库,选择 UTF-8(如果提供),否则保留默认值。
  • 单独打开媒体流附加设置。选择您自己的NAS用户帐户和适当的网络接口;使用默认端口 8200。
  • 在DLNA媒体渲染器下,允许所需的PC或客户端访问。
  • 在浏览设置下,将默认菜单样式设置为所有类别。在 DLNA 媒体渲染器下,还选择所有类别以及您自己的客户端用户配置文件。应用这两项更改。
  • 在应用程序中心停止并启动媒体流加载项。然后再次检查设备释放情况,必要时再次设置。
  • 播放列表有 M3U、PLS 或 WPL 形式;不支持 M3U8。使用 UTF-8 和有效的相对路径。所有三种格式的曲目顺序仍然不正确。

通过 Windows/SMB 复制时,包含问号的文件名可能会导致问题。使用 QNAP File Station 将受影响的文件直接从 USB 存储复制到相应的音乐文件夹中。

对于专辑顺序,请将每张专辑的音乐保存在一个文件夹中。对于多张光盘,请使用子文件夹,例如 CD 1 和 CD 2,并具有正的、唯一的轨道编号。 QNAP仅使用第一种类型。 M3U、PLS 和 WPL 的播放列表顺序仍然不正确;在它们之间切换并不能解决这个问题。

为 MusicServer Connect 添加 Gerbera

继续使用 Public/music 和 Gerbera 下的现有库 按照分步说明进行操作 。然后在插件中连接到 Gerbera 的设备 URL 并检查曲目、标签和顺序。保持 WiiM Home Advanced Mode 或其他设备的 Media Streaming Add-on 运行,并在那里选择 QNAP 的标准服务器。在 MusicServer Connect 中使用 Gerbera 作为 BPM/键并正确播放列表顺序。如果 WiiM Home 还需要来自同一服务器的可靠播放列表,那么 MinimServer 是一个合适的共享解决方案。两种服务读取相同的音乐文件。

供应商备注: M3U 格式、UTF-8 和相对路径 以及 在媒体流附加组件中手动共享设备.

QNAP:一步步用WavPack校正设置Gerbera

Gerbera 是适用于 QNAP 的附加媒体服务器软件。它对 MusicServer Connect 的主要好处是可以访问已存储在音乐文件中的值: BPM 和音乐调元数据: QNAP内置的UPnP媒体服务器不提供这些信息。以下步骤将配置所需的元数据映射。

播放列表支持也可以代表 Gerbera: 此处描述的 QNAP 标准 UPnP 服务器不显示 M3U8 播放列表。对于公认的 M3U、PLS、ASX 和 WPL 格式,它不保留轨道顺序。因此,将 M3U8 重命名为 M3U 不会修复顺序。如果您需要 M3U8 或精确的播放顺序,Gerbera 是一个替代方案。

什么时候不需要Gerbera? 如果您的文件没有存储 BPM/键值并且播放列表顺序并不重要,则您不需要 Gerbera 来实现这些目的。 VirtualDJ可以在没有音乐服务器的情况下通过分析文件来计算BPM和音乐调。您可以保留QNAP的内置媒体服务器并让VirtualDJ计算它们。

QNAP自己的媒体服务器可以继续与Gerbera一起运行,例如WiiM Home Advanced Mode。 Gerbera 不支持该 WiiM 模式。您的音乐保留在其现有文件夹中; Gerbera 获得只读访问权限。本指南还可以自动检测新文件和更改的文件。

推荐版本: 本指南使用官方 Gerbera Git 构建 3.3.0-77 从源修订 245e723。 Docker镜像设置了标签和SHA-256校验和;它包含已申请的更正 WavPack 和 重复的播放列表标题 以及 WebM/WMV 中的多种流派 和 更高的BPM精度。如果使用现有配置进行更新,这也是如此 添加读者映射。这是根据3.3.0的开发状态,而不是新的稳定发布版本。

WavPack导入时Gerbera 3.3.0不正确: 读取时可以读取不变的3.3.0图像 .wv文件。在此处使用的构建中,受影响的内存是在堆上分配的。 WavPack 仍然完全可用;不需要额外的补丁脚本。使用上面显示的完整图像参考。

1。准备文件夹、用户和文件

  1. 使用您知道密码的活动管理员帐户登录 QTS。内置账户 admin 不必为此激活;另一个授权管理员帐户就足够了。
  2. 安装在 应用中心 应用程序 集装箱站。打开它并完成初始设置。 Gerbera 不需要多媒体控制台和媒体流附加组件。
  3. 创建于 控制面板→权限→用户→创建 用户 gerbera 。该用户不需要管理员权限。授予其对音乐共享(包括其文件夹和文件)的读取权限。继续使用您的 SSH 管理员帐户。
  4. 示例使用音乐文件夹 Public/music,在NAS上 /share/Public/music。对于其他共享,请使用您的实际路径。您现有的音乐可以保留在那里。删除 Windows 等非法字符 ? 如有必要,从文件名中调整播放列表引用;标题标签可能仍包含这些字符。
  5. 创建于 文件站 下 Public 文件夹 gerbera-qnap 及其空子文件夹 empty .
  6. 下载 将文件撰写为 compose.yaml 。直接通过 File Station 上传至 Public/gerbera-qnap 文件夹旁边 empty。文件名必须 compose.yaml 无需额外的 .txt.

2。启用SSH并获得root访问权限

  1. 在 QTS 中打开 控制面板 → 网络和文件服务 → Telnet/SSH.
  2. 启用 允许 SSH 连接,离开港口 22 并点击 申请。如果 编辑访问权限 提供,允许您的管理员帐户访问那里。如果 NAS 防火墙处于活动状态,则本地网络中必须允许您计算机的 SSH 端口。
  3. 打开 Windows-PC 上的终端或 Mac 终端上的 PowerShell。替换为以下命令 DEIN_QTS_KONTO 通过您的管理员帐户和 NAS_IP 与 QNAP IP 地址。
ssh DEIN_QTS_KONTO@NAS_IP

首次建立连接时,检查显示的目标地址并使用以下命令确认查询 yes。输入您的 QTS 帐户密码。键入时不会出现任何字符或星号。如果使用不同的 SSH 端口,则使用 ssh -p PORTNUMMER DEIN_QTS_KONTO@NAS_IP.

然后切换到root权限:

sudo -i
id

如果您再次要求输入密码,请使用您注册的 QTS 帐户中的相同密码。不需要特殊的 root 密码。的输出 id 必须 uid=0 包括在内;在QNAP上可以找到关联的用户名 admin 。如果出现管理菜单,请使用其 Shell 或退出选项退出它。在设置过程中保持终端打开:以下所有终端命令都在 QNAP 上运行。

确定为访问音乐而创建的用户的 ID:

id gerbera

如果输出显示 uid=1001(gerbera) gid=100(everyone) 是 UID 1001 和 GID 100。写下您自己的撰写文件编号。

3。自定义撰写文件

打开下载的一个 compose.yaml 使用文本编辑器,替换示例值 UID 和 GID 遍历步骤 2 中的数字并重新加载保存的文件 Public/gerbera-qnap 高。音乐映射最初指向空文件夹。现有音乐仅在元数据配置后导入。

services:
  gerbera:
    image: gerbera/gerbera:sha-245e723@sha256:b4463e92ee6cc0c6338b91d822904cb894dd66480e4eed60930fad1b69378e09
    container_name: gerbera-qnap
    network_mode: host
    restart: unless-stopped
    environment:
      # Beispielwerte: durch UID und GID aus "id gerbera" ersetzen.
      UID: "1001"
      GID: "100"
    command:
      - gerbera
      - --interface
      - eth0
      - --port
      - "49494"
      - --config
      - /var/run/gerbera/config.xml
    volumes:
      - gerbera-data:/var/run/gerbera
      # Zuerst den leeren Ordner verwenden; in Schritt 7 auf /share/Public/music aendern.
      - /share/Public/gerbera-qnap/empty:/mnt/content:ro

volumes:
  gerbera-data:

官方映像为支持的 NAS 型号选择适当的 ARM64 或 AMD64 变体。该模板不包含固定的 NAS IP 地址。 --interface eth0 使用此网络接口的地址。对于具有多个端口、虚拟交换机或端口捆绑的设备,请将 eth0 通过实际用于家庭网络的接口。 network_mode: host 在 NAS 网络中启用 UPnP 检测。

/mnt/content:ro 作为容器路径保持不变,仅允许读取音乐。体积 gerbera-data 永久保存设置和数据库。 restart: unless-stopped 如果事先没有手动停止,则在 NAS 重新启动后再次启动容器。

4。使用空库启动应用程序

  1. 打开 集装箱站→应用程序→创建。使用名称 gerbera-qnap.
  2. 添加您定制的完整内容 compose.yaml 进入 YAML 字段。保持缩进带有空格,然后单击 验证.
  3. 创建并启动应用程序。首次下载图像可能需要一些时间。等到 gerbera-qnap 显示为活动状态。
  4. 打开 http://NAS_IP:49494/ 在您的浏览器中。 Container Station 中缺少 Web URL 不会阻止直接访问。在此阶段,Gerbera 库故意为空。

5。配置BPM、按键和标题显示

开在Gerbera 配置 并选择在 列出时尚 观点 专家。下 Library Options → taglib Library Options → 元数据 及以下 ffmpeg Library Options → 元数据 以下映射。保留其他现有线路。

Tag Name 和 Upnp metadata entry
图书馆Tag NameUpnp metadata entry
taglibBPMupnp:beatsPerMinute
taglibKEYupnp:key
taglibINITIALKEYupnp:initialKey
ffmpeg节拍数upnp:beatsPerMinute
ffmpeg钥匙upnp:key
ffmpeg初始键upnp:initialKey
  1. 下 服务器→名称 名字 Gerbera QNAP a.这样,稍后就可以将服务器与其他音乐服务器区分开来。
  2. 对于下面的AIFF 导入 → 映射 → Mimetype-ContentType 两个作业 audio/x-aiff → aiff 和 audio/aiff → aiff 进行补充。没有这些映射时,即使已有标签,BPM、调性和其他流派也可能缺失。 AIFF配置.
  3. 对于下面的OGV ffmpeg Library Options 选项 streams-enabled 激活以便从音频和视频轨道读取标签。 OGV配置.
  4. 设置 taglib 和 ffmpeg 的字段 charset 上 UTF-8。还有 filesystem-charset, metadata-charset 和 playlist-charset 应该 UTF-8 使用。
  5. 下 UPnP → 标题结果项 清空该字段 M_ARTIST 并收到 M_TITLE。这提供了简单的曲目标题。
  6. 下 WavPack Library Options 遗骸 启用 打开。
  7. 点击 保存配置,重新启动 Container Station 中的空容器,并在重新打开配置后检查值是否已保存。

BPM和Key必须已保存在音乐文件中; Gerbera 不计算这些值。对于现有的MP4/M4A/M4V id3元素 prefer_highest_bpm_accuracy="yes" 和 prefer_ambigous_bpm_value="bpm_tag" 根据 配置BPM精度 至指定值。如果没有第一个选项,则保留先前的行为。正常的重新扫描可能会跳过已导入且未更改的文件。首次导入音乐之前配置这些选项。单独的流派标签不需要额外的设置。

6。启用自动更新

Gerbera 已经自动监视新的和更改的文件。在打开的根终端中使用此完整块添加对文件属性更改的检测:

docker exec -i -u 0 gerbera-qnap /bin/sh <<'GERBERA'
set -eu
file=/var/run/gerbera/autoscan.xml
test -f "$file"
sed -i -e 's/inotify-attrib="no"/inotify-attrib="yes"/g' \
  -e '/<autoscan/ { /inotify-attrib=/! s/<autoscan/<autoscan inotify-attrib="yes"/; }' \
  "$file"
cat "$file"
GERBERA

在输出自动扫描部分的开头必须 inotify-attrib="yes" 站立。该设置位于持久数据卷中,并将在下次启动时加载。

7。挂载音乐文件夹并启动Gerbera

  1. 停止项目或应用程序 gerbera-qnap 在集装箱站。
  2. 打开 Public/gerbera-qnap/compose.yaml 在文件站中。仅将空文件夹映射替换为您的实际音乐文件夹,例如:
- /share/Public/music:/mnt/content:ro

将文件保存在 NAS 上,然后将以下整个块复制到打开的 root 终端中。它应用更改后的 Compose 文件,重用现有数据卷并启动 Gerbera。如果您的项目路径不同,请调整第一行 cd … 上。该过程也适用于 WavPack 文件。

cd /share/Public/gerbera-qnap &&
PROJECT=$(docker inspect --format '{{index .Config.Labels "com.docker.compose.project"}}' gerbera-qnap) &&
case "$PROJECT" in ''|'<no value>') printf 'Compose-Projekt nicht gefunden.\n' >&2; false ;; *) true ;; esac &&
if docker compose version >/dev/null 2>&1; then
  docker compose -p "$PROJECT" -f compose.yaml create --force-recreate gerbera
elif command -v docker-compose >/dev/null 2>&1; then
  docker-compose -p "$PROJECT" -f compose.yaml create --force-recreate gerbera
else
  COMPOSE_BIN=
  for candidate in /share/*/.qpkg/container-station/bin/docker-compose; do
    if [ -x "$candidate" ]; then COMPOSE_BIN=$candidate; break; fi
  done
  if [ -n "$COMPOSE_BIN" ]; then
    "$COMPOSE_BIN" -p "$PROJECT" -f compose.yaml create --force-recreate gerbera
  else
    printf 'Docker Compose wurde nicht gefunden. Container Station pruefen.\n' >&2
    false
  fi
fi &&
docker start gerbera-qnap

然后打开它 http://NAS_IP:49494/ 并等待库加载。您可以在下面看到进度 集装箱站→集装箱→gerbera-qnap→协议。继续仅将完全准备好的文件复制到音乐文件夹中。播放列表需要有效的相对文件路径和 UTF-8 编码。

8。连接MusicServer Connect

在MusicServer Connect中,选择服务器 Gerbera QNAP。用于手动连接 http://NAS_IP:49494/description.xml。检查曲目库存、保存的 BPM/键值以及播放列表的顺序。

如果遇到连接问题,请检查容器状态、NAS IP、网络接口和可能的端口冲突。对于 UPnP 检测必须 UDP 1900,用于网络界面和媒体访问 TCP 49494 可在本地网络中访问。在 Permission denied 控制UID、GID和Gerbera用户的读权限。路径 /content Gerbera协议中对于官方镜像来说是正常的。

退出终端 exit;之后 sudo -i 这通常需要两次。如果您不需要 SSH,请在 QTS 中删除 控制面板 → 网络和文件服务 → Telnet/SSH 的复选框 允许 SSH 连接 并点击 申请.

9。重新启动和更新的 Gerbera 版本

对于正常重新启动,请选择 集装箱站→集装箱→gerbera-qnap→重启。设置和数据库保留在指定的数据卷中 gerbera-data 收到。重建容器时,将使用官方映像中未更改的可执行文件。

从现有 3.3.0 安装切换

使用本指南中的完整图像参考并保留音乐设置、用户 ID、项目名称和数据量。重新创建容器,如下所示。简单的重新启动不会安装不同的映像。替换容器会删除任何以前的本地二进制补丁。

稍后升级到稳定版本

  1. 选择在 官方Gerbera发布页面 包含 WavPack 修复的稳定版本 公关#3981 。阅读配置和数据库注释。在此类版本可用之前,此处明确指定的 Git 版本是固定的临时版本。请勿使用移动 latest- 或 edge标签。
  2. 打开 Public/gerbera-qnap/compose.yaml。替换那个 之后的完整值 image: 通过 gerbera/gerbera:NEUE_VERSION。这还包括删除以前的 @sha256:…参考,因为它属于旧图像。更换 NEUE_VERSION 与选定的版本号。或者,使用更新指南中的完整图像参考。保持所有其他设置不变。
  3. 如有必要,请如上所述启用 SSH 并登录到 root 终端。下载选定的图像:
docker pull gerbera/gerbera:NEUE_VERSION
  1. 停止 Container Station 中的现有项目或应用程序。运行完整的命令块 步骤7 出来。不得删除现有数据卷。
  2. 等待启动和任何数据库升级完成。检查版本、服务器名称和协议,并保存 BPM/key 设置。连接 MusicServer Connect 并检查多个曲目、WavPack 文件和播放列表。

供应商指南: QNAP Container Station 和 YAML 更改, 在 QNAP 上启用 SSH, 创建QTS用户, 官方 Gerbera Docker 镜像.

Synology:一步步用WavPack校正设置Gerbera

Gerbera 是适用于 Synology 的附加媒体服务器软件。它对 MusicServer Connect 的主要好处是可以访问已存储在音乐文件中的值: BPM 和音乐调元数据: Synology内置的UPnP媒体服务器不提供这些信息。以下步骤将配置所需的元数据映射。

什么时候不需要Gerbera? 如果您的音乐文件不包含存储的 BPM/键值,则不需要 Gerbera 来实现此目的。 VirtualDJ无需音乐服务器即可通过分析文件来计算BPM和音乐调。您可以继续使用Synology的内置媒体服务器并让VirtualDJ计算它们。

Synology自己的媒体服务器可以继续与Gerbera一起运行,例如WiiM Home Advanced Mode。 Gerbera 不支持该 WiiM 模式。您的音乐保留在其现有文件夹中; Gerbera 获得只读访问权限。本指南还可以自动检测新文件和更改的文件。

推荐版本: 本指南使用官方 Gerbera Git 构建 3.3.0-77 从源修订 245e723。 Docker镜像设置了标签和SHA-256校验和;它包含已申请的更正 WavPack 和 重复的播放列表标题 以及 WebM/WMV 中的多种流派 和 更高的BPM精度。如果使用现有配置进行更新,这也是如此 添加读者映射。这是根据3.3.0的开发状态,而不是新的稳定发布版本。

WavPack导入时Gerbera 3.3.0不正确: 读取时可以读取不变的3.3.0图像 .wv文件。在此处使用的构建中,受影响的内存是在堆上分配的。 WavPack 仍然完全可用;不需要额外的补丁脚本。使用上面显示的完整图像参考。

1。 NAS 并准备用户

  1. 使用属于该组的帐户登录 Synology DSM 界面 管理员 听到了。这是一个允许管理包和用户的帐户。账户名不必是 admin 阅读。如果您的帐户没有这些权限,您将需要管理 NAS 的人员。
  2. 打开这个 包裹中心 并安装 容器管理器。如果此软件包不适用于您的型号,则本指南不适用于它。要编辑YAML文件,您可以另外安装Synology的包 文本编辑器 安装。
  3. 打开 控制面板→用户和组→用户→创建。创建用户 gerbera 上。它不需要管理员权限。指定您自己的密码;您将继续使用 DSM 管理员帐户执行以下终端命令。
  4. 打开 控制面板 → 共享文件夹,选择您的音乐文件夹,例如 music,并选择 编辑→权限。给用户 gerbera 许可 只读。访问权限还必须适用于包含的音乐文件夹和文件。

示例使用 /volume1/music 作为音乐文件夹和 /volume1/docker 对于容器文件。如果这些文件夹位于不同的卷上,请在适当的位置使用它们的实际 NAS 路径。容器路径 /mnt/content 和 /var/run/gerbera 保持不变。

2。创建文件夹并复制文件

  1. 打开 文件站。在共享文件夹中,创建 docker 子文件夹 gerbera-synology 。如果共享文件夹 docker 缺少,请在下面创建它 控制面板→共享文件夹→创建 .
  2. 创建另一个名为的子文件夹 empty 上。该文件夹仍为空。它用作临时音乐文件夹,以便仅在设置元数据后才开始导入。
  3. 下载 将文件撰写为 compose.yaml 到您的计算机。
  4. 使用上传文件 文件站 → 上传 直接在 docker/gerbera-synology 文件夹旁边 empty。文件名必须准确无误 compose.yaml 没有额外的 .txt 被附着。

项目文件夹包含这两个条目:

gerbera-synology/
├── compose.yaml
└── empty/

3。激活SSH,登录NAS并确定您的ID

您需要对 NAS 进行终端访问才能查找用户 ID 并运行以下 Docker 命令。您可以复制此处显示的命令;不需要编程知识。

检查 DSM 帐户和密码

  1. 在 DSM 中打开 控制面板 → 用户和组 → 用户。突出显示您想要用于稍后通过 SSH 登录的帐户,然后单击 编辑.
  2. 必须激活帐户:如有必要,请删除选择 停用该用户帐户。保存后,用户列表必须显示状态 正常 相反 残疾人 显示。
  3. 下 用户组 该帐户必须属于 管理员 组。您需要此帐户的密码才能登录并稍后切换到root。如果您不知道,请在帐户设置中设置并确认新密码。保存更改。

您可以使用现有的 DSM 管理员帐户来执行此操作。您是否特别想要内置帐户 admin 要使用它,请按照说明激活该帐户并分配一个已知密码。内置账户 admin 如果您有该组中的另一个活跃帐户,则无需激活 administrators 使用。在步骤 1 中创建的用户 gerbera 专门用于音乐访问,不需要这些管理员权限。

在NAS上开启SSH服务

  1. 在 DSM 中,打开 控制面板 在那里 终端和SNMP。选择选项卡 终端.
  2. 选择复选框 启用 SSH 服务。对于本指南,将端口保留在 22 显示。
  3. 点击 申请。只有这样 NAS 才会接受 SSH 连接。如果 DSM 防火墙处于活动状态,则它必须允许在本地网络中为您的计算机设置的 SSH 端口。

从您的计算机登录并切换到root

  1. 您可以在以下位置找到 NAS IP 地址: 控制面板 → 网络 → 网络接口。在Windows PC上打开 终端 或 电源外壳;在 Mac 上,该应用程序 终端.
  2. 输入此命令。更换 DEIN_DSM_KONTO 使用您的 DSM 管理员帐户并 NAS_IP 与您的 NAS IP 地址。不要使用新创建的用户 gerbera.
ssh DEIN_DSM_KONTO@NAS_IP

第一次建立连接时,可能会出现有关 NAS 身份的查询。检查显示的目标地址并确认连接 yes。然后输入您的 DSM 帐户的密码。输入密码时不会出现任何字符或星号;这是正常的。如果您使用不同的 SSH 端口,请在连接时添加它。 -p PORTNUMMER.

然后使用以下命令切换到 Docker 所需的权限:

sudo -i

如果再次要求输入密码,请使用 与您的 DSM 帐户密码相同。不需要特殊的 root 密码。提示通常以以下内容结尾 #。在设置过程中保持此终端窗口打开。以下所有终端命令均在 NAS 上执行。

对于 Connection refused 首先检查是否使用了SSH服务 申请 已打开并使用正确的 IP 地址和端口号。如果密码被拒绝,请检查帐户名、密码、状态 正常 和会员资格 管理员. Synology root权限SSH登录指南 也描述了这个过程。

查看Gerbera用户ID:

id gerbera

输出如 uid=1030(gerbera) gid=100(users) 意思是: UID 为 1030,GID 为 100。请注意您自己输出中的数字:它们标识用户和组。

4。自定义撰写文件

在 File Station 中打开文件 docker/gerbera-synology/compose.yaml 与 文本编辑器。或者,在您的计算机上编辑它并再次上传。对于 UID 和 GID 输入您刚刚记下的数字;您必须替换下面的示例值。如有必要,将 NAS 路径调整为空项目文件夹。保存文件。

services:
  gerbera:
    image: gerbera/gerbera:sha-245e723@sha256:b4463e92ee6cc0c6338b91d822904cb894dd66480e4eed60930fad1b69378e09
    container_name: gerbera-synology
    network_mode: host
    restart: unless-stopped
    environment:
      # Beispielwerte: durch UID und GID aus "id gerbera" ersetzen.
      UID: "1026"
      GID: "100"
    command:
      - gerbera
      - --port
      - "49494"
      - --config
      - /var/run/gerbera/config.xml
    volumes:
      - gerbera-synology-data:/var/run/gerbera
      # Zuerst den leeren Ordner verwenden; in Schritt 8 auf /volume1/music aendern.
      - /volume1/docker/gerbera-synology/empty:/mnt/content:ro

volumes:
  gerbera-synology-data:

network_mode: host 在 YAML 中没有固定 IP 地址的情况下,可以在家庭网络中进行检测。结束 :ro Gerbera 只允许读取音乐文件夹。数量上 gerbera-synology-data 设置和数据库将永久保存。 restart: unless-stopped 让 NAS 容器在 NAS 重新启动后再次启动,前提是您没有事先手动停止它。

5。使用空库启动项目

  1. 打开 容器管理器→项目→创建。完全使用这个项目名称: gerbera-synology 以及准备好的文件夹作为路径 docker/gerbera-synology.
  2. 选择准备好的一份 compose.yaml 作为现有的 Compose 文件。如果该对话框提供 YAML 编辑器,您可以在其中插入内容。
  3. 对于 门户网站设置 遗骸 通过 Web Station 设置门户网站 关闭。点击 下一步 并创建并启动项目。首次下载图像可能需要一些时间。
  4. 下 集装箱 → gerbera-synology 必须是状态 跑步 或 跑步 出现。
  5. 在浏览器中打开 http://NAS_IP:49494/,例如 http://192.168.1.10:49494/。将示例地址替换为您的 NAS IP。你看到Gerbera的表面;此时音乐库故意为空。

6。配置BPM、按键和标题显示

开在Gerbera 配置 并选择视图 专家。下 Library Options → taglib Library Options → 元数据 以及以下 ffmpeg Library Options → 元数据 添加以下行,保留其他现有映射。

Tag Name 和 Upnp metadata entry
图书馆Tag NameUpnp metadata entry
taglibBPMupnp:beatsPerMinute
taglibKEYupnp:key
taglibINITIALKEYupnp:initialKey
ffmpeg节拍数upnp:beatsPerMinute
ffmpeg钥匙upnp:key
ffmpeg初始键upnp:initialKey
  1. 下 服务器→名称 名字 Gerbera Synology a.这样,稍后就可以将服务器与其他音乐服务器区分开来。
  2. 对于下面的AIFF 导入 → 映射 → Mimetype-ContentType 两个作业 audio/x-aiff → aiff 和 audio/aiff → aiff 进行补充。没有这些映射时,即使已有标签,BPM、调性和其他流派也可能缺失。 AIFF配置.
  3. 对于下面的OGV ffmpeg Library Options 选项 streams-enabled 激活以便从音频和视频轨道读取标签。 OGV配置.
  4. 设置字段 charset 对于 taglib 和 ffmpeg UTF-8。还有 filesystem-charset, metadata-charset 和 playlist-charset 应该 UTF-8 使用。
  5. 下 UPnP → 标题结果项 清空该字段 M_ARTIST 并收到 M_TITLE。纯粹的标题名称被转移为标题,而不是“艺术家-标题”。
  6. 下 WavPack Library Options 遗骸 启用 打开。
  7. 点击 保存配置,在容器管理器中重新启动容器,并检查重新打开 Gerbera 配置后是否保存了这些值。

BPM和Key必须已保存在音乐文件中;这些设置不计算值。对于现有的MP4/M4A/M4V id3元素 prefer_highest_bpm_accuracy="yes" 和 prefer_ambigous_bpm_value="bpm_tag" 根据 配置BPM精度 至指定值。如果没有第一个选项,则保留先前的行为。然后再次导入受影响的文件。

7。启用自动更新

Gerbera 已经自动监视新的和更改的文件。使用以下块,您可以添加对文件属性更改的检测。将整个块复制到仍然打开的 NAS 终端中:

docker exec -i -u 0 gerbera-synology /bin/sh <<'GERBERA'
set -eu
file=/var/run/gerbera/autoscan.xml
test -f "$file"
sed -i -e 's/inotify-attrib="no"/inotify-attrib="yes"/g' \
  -e '/<autoscan/ { /inotify-attrib=/! s/<autoscan/<autoscan inotify-attrib="yes"/; }' \
  "$file"
cat "$file"
GERBERA

在输出中必须位于自动扫描部分的开头 inotify-attrib="yes" 站立。该文件位于永久数据卷中。当您随后启动时,该设置将随音乐文件夹一起加载。

8。挂载音乐文件夹并启动Gerbera

  1. 停止项目或应用程序 gerbera-synology 在容器管理器中。
  2. 打开 docker/gerbera-synology/compose.yaml 在文件站中。仅将空文件夹映射替换为您的实际音乐文件夹,例如:
- /volume1/music:/mnt/content:ro

将文件保存在 NAS 上,然后将以下整个块复制到打开的 root 终端中。它应用更改后的 Compose 文件,重用现有数据卷并启动 Gerbera。如果您的项目路径不同,请调整第一行 cd … 上。该过程也适用于 WavPack 文件。

cd /volume1/docker/gerbera-synology &&
if docker compose version >/dev/null 2>&1; then
  docker compose -p gerbera-synology -f compose.yaml create --force-recreate gerbera
elif command -v docker-compose >/dev/null 2>&1; then
  docker-compose -p gerbera-synology -f compose.yaml create --force-recreate gerbera
elif [ -x /var/packages/ContainerManager/target/usr/bin/docker-compose ]; then
  /var/packages/ContainerManager/target/usr/bin/docker-compose \
    -p gerbera-synology -f compose.yaml create --force-recreate gerbera
else
  printf 'Docker Compose wurde nicht gefunden. Container Manager pruefen.\n' >&2
  false
fi &&
docker start gerbera-synology

然后打开它 http://NAS_IP:49494/ 并等待库加载。您可以在下面看到进度 容器管理器 → 容器 → gerbera-synology → 协议。继续仅将完全准备好的文件复制到音乐文件夹中。播放列表需要有效的相对文件路径和 UTF-8 编码。

9。连接MusicServer Connect

在MusicServer Connect中,选择服务器 Gerbera Synology。如果需要设备 URL,请使用 http://NAS_IP:49494/description.xml。检查您的歌曲、专辑和播放列表,并打开一些保存有 BPM 和键值的歌曲。

如果接口无法访问或者找不到服务器,首先检查容器状态和NAS IP。如果 DSM 防火墙已激活 TCP 49494 以及 UPnP 检测 UDP 1900 来自您的本地网络。如果日志报告 Permission denied 对于音乐文件夹,检查用户的读取权限 gerbera 以及步骤 3 中的 UID 和 GID。路径 /content 协议中对于官方图片来说是正常的;它指的是集成音乐文件夹。

然后,退出终端 exit 离开;之后 sudo -i 通常是两倍 exit 必要的。如果您不需要 SSH,请在 DSM 中打开 控制面板 → 终端和 SNMP → 终端,清除复选框 启用 SSH 服务 并点击 申请.

10。重新启动和更新的 Gerbera 版本

对于正常重新启动,请选择 容器管理器→容器→gerbera-synology→重启。设置和数据库保留在指定的数据卷中 gerbera-synology-data 收到。重建容器时,将使用官方映像中未更改的可执行文件。

从现有 3.3.0 安装切换

使用本指南中的完整图像参考并保留音乐设置、用户 ID、项目名称和数据量。重新创建容器,如下所示。简单的重新启动不会安装不同的映像。替换容器会删除任何以前的本地二进制补丁。

稍后升级到稳定版本

  1. 选择在 官方Gerbera发布页面 包含 WavPack 修复的稳定版本 公关#3981 。阅读配置和数据库注释。在此类版本可用之前,此处明确指定的 Git 版本是固定的临时版本。请勿使用移动 latest- 或 edge标签。
  2. 打开 docker/gerbera-synology/compose.yaml。替换那个 之后的完整值 image: 通过 gerbera/gerbera:NEUE_VERSION。这还包括删除以前的 @sha256:…参考,因为它属于旧图像。更换 NEUE_VERSION 与选定的版本号。或者,使用更新指南中的完整图像参考。保持所有其他设置不变。
  3. 如有必要,请如上所述启用 SSH 并登录到 root 终端。下载选定的图像:
docker pull gerbera/gerbera:NEUE_VERSION
  1. 停止容器管理器中的现有项目或应用程序。运行完整的命令块 步骤8 出来。不得删除现有数据卷。
  2. 等待启动和任何数据库升级完成。检查版本、服务器名称和协议,并保存 BPM/key 设置。连接 MusicServer Connect 并检查多个曲目、WavPack 文件和播放列表。

供应商指南: 容器管理器项目, Container Manager 可用的 NAS 型号, 具有管理员权限的SSH登录, Gerbera 官方图片.

WiiM Home:扩展媒体库

WiiM Home Advanced Mode 提供自己的库视图,包括专辑、艺术家和曲目类别。支持的服务器包括MinimServer、Synology的标准服务器、QNAP的标准服务器和Serviio。 Gerbera 目前提供 WiiM Home 中的文件夹视图。

在Advanced Mode中,WiiM将服务器元数据导入到自己的索引中,然后构建统一的专辑、艺术家、曲目、播放列表和流派视图以及自己的搜索。在Legacy Mode中,它显示服务器的导航。这些术语描述了 WiiM Home 操作模式。

推荐分享

标准Synology和QNAP服务器支持WiiM Home Advanced Mode,不需要BPM或关键元数据。 QNAP 不正确的播放列表顺序仍然是 WiiM Home 中的一个限制。

如果 VirtualDJ 计算 BPM 和密钥本身,则 Synology 的标准媒体服务器足以满足 MusicServer Connect 的需要。如果 QNAP 的不正确播放列表顺序是可接受的,则同样适用。在这些情况下,无需额外安装 Gerbera。

要使用存储的 BPM/键值或在 MusicServer Connect 中保留 QNAP 播放列表顺序,您可以在 Docker 中添加 Gerbera 和 WavPack 更正。插件中选择Gerbera,WiiM Home Advanced Mode中选择标准服务器。两者都可以读取相同的音乐库。 MinimServer 仍然是满足这些要求的单服务器解决方案,而 WiiM Home Advanced Mode;它仍然需要额外的 BPM/钥匙标签配置。在 Synology 上运行 Gerbera 需要可用的容器管理器。

更多信息: WiiM Home:媒体库和支持的服务器.

Ampache 7/8:读取视频和文件播放列表

音乐目录不会将视频导入到 Ampache 中。对于视频库,带有媒体类型的附加本地目录 视频 并扫描它。目录路径不得重叠。因此,我们的设置使用指向相同视频文件的附加只读 Linux 目录视图;共享库文件保持不变。

显式导入基于文件的播放列表。官方的 CLI 命令是 php bin/cli run:updateCatalog -i "Katalogname";使用适合您的安装的 PHP 版本和服务帐户。仅重新扫描元数据是不够的。在我们的比较中,两个版本都提供了带有重复的音频条目;混合文件播放列表中缺少视频条目。

交付 MP3 不变

如果允许自动 MP3 转换但未配置转换器,则 Ampache 8 在流式传输时可能会返回 HTTP 500。对于现有配置中未更改的交付, transcode_mp3 = "false" 至指示值。或者,配置一个工作转码器。在禁用 MP3 转换的情况下,我们的检查中对流媒体和下载进行了逐字节验证。

LMS:包含同一专辑中曲目的播放列表

在LMS设置下 杂项 选项 跳过包含同一专辑中曲目的播放列表 如果您希望显示这些播放列表。然后重新加载库。比较证实重复的音轨是按原始顺序提供的。

Asset UPnP:媒体和播放列表文件夹

在资产 Web 界面中 文件夹 → 媒体文件夹 添加库文件夹。下 播放列表文件夹 分别指定每个文件夹和播放列表文件;从属播放列表文件夹不会自动包含在那里。这些正在测试中 /srv/music/Playlists 和 /srv/music/Format-Test-1.3/Playlists.

下 选项 → 显示设置 如果您想要简单的曲目名称,请禁用曲目编号、编译曲目之前的艺术家以及播放列表标题之后的艺术家的前缀。这些设置更改显示,而不更改音乐文件。资产提供者使用内置分支 播放列表 用于文件播放列表。此查询不会递归遍历动态过滤器组合或网络广播。选中的默认导航(包括动态浏览)可以保留。此次调整后,目录、艺术家、专辑和流派视图均经过验证,没有出现检索错误。资产供应 M3U、M3U8 和 PLS;服务器返回的 PLS 曲目标题可能包含艺术家前缀。

资产指南

Jellyfin 12.2.0:DLNA 和客户端配置文件

Jellyfin 需要 MusicServer Connect 官方的 DLNA插件。从服务器管理中的官方插件目录安装它并重新启动Jellyfin。 DLNA 14.0.0.0 已检查。在其设置中,选择应通过 DLNA 公开其库的帐户。 MusicServer Connect使用UPnP/DLNA,独立于登录Jellyfin自己的Web界面。

库和元数据

作为库类型的音频文件 音乐,视频为 音乐视频 作为图书馆。使相关媒体和播放列表文件夹可读,然后扫描这两个库。要仅使用文件标签,请禁用外部元数据和图像提供程序;还要检查全局艺术家和专辑设置。保持嵌入标题和本地图像启用。我们的设置以只读方式访问共享音乐库。

MusicServer Connect 的客户资料

的 下载经过验证的 DLNA 客户端配置文件 和作为 MusicServer Connect.xml 保存在 DLNA 插件用户配置文件文件夹中。对于本机 Debian 安装来说这个值较低 /var/lib/jellyfin/plugins/configurations/dlna/user/;对于其他安装,请使用实际的 Jellyfin 数据目录。 Jellyfin 服务必须能够读取该文件。重启Jellyfin,然后刷新插件库。

该配置文件通过其用户代理识别 MusicServer Connect。它为 M4A 音频和 OGV 视频提供稳定的资源 URL 和正确的媒体类型,保持专辑视图可访问且这些格式在目录中可见。它与提供的系统配置文件分开存储。

其余限制

在与 125 文件检查时,所有音频和视频源以及 195 插件视图均已检索,没有错误。通过 DLNA,Jellyfin 不提供 BPM/密钥,并且无法正确缩放比特率。 ASX/XSPF 不存在; M3U、M3U8、PLS 和 WPL 丢失重复曲目。一些较旧的 M3U/M3U8 列表也不完整。一些专辑艺术家被错误分配,并且平面音乐文件夹可能缺少本机专辑视图。 WMA 缺少第二个流派;视频缺乏艺术家、专辑和流派。客户端配置文件并没有修复这些限制。

官方Linux安装 · DLNA 官方文档

WiiM Home、Mezzmo 和 Windows Media Player

通过这些 Windows 服务器,MusicServer Connect 自动使用经过验证的曲目或文件夹来避免不正确或非常慢的全局搜索响应。不需要额外的插件设置。然后针对导入的目录运行插件搜索。

UPnP 响应最多可能需要 30 秒,或者 Windows Media Player 需要 60 秒。请求仍然可以取消。无效或更改的页面仍然被拒绝;等待更长时间无法提供丢失的文件或元数据。

WiiM Home Media Server 0.2.10.5

音乐服务器和VirtualDJ可以在同一台Windows PC上运行,包括同时运行多个服务器。服务器列表将正常的 UPnP 发现与对支持的本地服务器的附加检查结合起来。它识别它们实际开放的端口并验证 UPnP 设备描述。不同的设备ID保持独立;一台服务器的多个端点不会创建重复的条目。不需要管理员权限。

在我们的检查中,正常的 Windows UPnP 发现在同一台 PC 上没有找到 WiiM Home,尽管其设备描述是可访问的。该插件的补充发现发现它是 WiiM Home: LaptopAcer — 在另一台电脑上,请使用其名称。在连接对话框中,单击 再次搜索 并选择 WiiM 服务器。此 UPnP 连接不需要用户名或密码。检查WiiM Home、Mezzmo和Windows Media Player同时运行。

对于较旧的插件版本,完整描述地址可以暂时保存在 服务器URL 在这里。例如检查的本地路径为 http://127.0.0.1:22346/upnp/DeviceDescription.xml。端口和路径必须属于正在运行的服务器;该插件不假定固定端口。在这台计算机上,端口 22345 也暴露了相同的 WiiM 服务器。书面主机名 localhost 在直接检查中退回了 HTTP 404,并且不被接受作为等效替代品。发现失败不能最终归因于 WiiM Home 或 Windows。

将音乐文件夹添加到本地媒体库并开启DLNA共享。测试时使用的是原始源码 \\smbserver\music 。该界面既不提供基于文件的播放列表,也不提供视频; AAC ADTS、Opus 和 WavPack 也不存在。 WiiM 应用程序中保存的播放列表不支持导入外部播放列表文件。

Mezzmo 6.0.6.0

添加 Library 文件夹(包括子文件夹)。外部文件播放列表通过分隔 创建播放列表 → 连接的播放列表 。 “从外部播放列表添加文件”导入引用的媒体,是一个不同的操作。要保留原始文件标签,请禁用自动 Internet 元数据检索和写入。

文件夹属性提供 每隔一段时间检查文件夹中是否有新文件。已经链接的列表有单独的结果。即使配置了额外的播放列表扩展名,单独的文件夹监视也不会从播放列表文件创建链接列表。更新现有链接和发现新的播放列表文件是不同的功能。单独检查的列表会丢失 M3U/PLS/WPL 的重复项; M3U8/XSPF 保持为空,并且两个 ASX 样本报告页数不一致。智能播放列表不能用重复代替固定的外部顺序。

默认过滤器包括 .aif,但不包括 .aiff。添加 *.aiff 仅将样本索引为不带流的未知文件类型,因此此更改已恢复。 WavPack 也没有向受检查的客户端公开可玩。单独的数据库条目并不能证明可玩性。

Windows Media Player 遗留/共享 12.0

下 控制面板 → 网络和共享中心 → 媒体流选项 上 允许全部 单击并与 确定 保存。这使得本地网络中的设备(包括 WiiM 和具有 WiiM Home 的手机)可以访问媒体库。在 访问被拒绝 检查此设备批准:在同一台 PC 上运行插件访问并不意味着允许外部设备。

启用本地网络的媒体流并将本地音乐和视频文件夹添加到其 Windows 库中。您可以禁用自动 Internet 元数据检索和写入以保留源文件。完整的本地比较返回了 146 真实媒体文件,并完全解码了所有 20 提供的格式样本。 OGG、Opus、WavPack、WebM 和 OGV 缺席;未提供 BPM 和钥匙。重建 WMP 目录后,返回了六个非空播放列表。有些名称与导入的列表不同;两个较旧的 M3U 列表由于字符编码而丢失一轨。他们的 WPL 等效项包含所有四个轨道。

例如,使用不带点的播放列表名称 MSC 混合 1-3 相反 MSC 混合 1.3。在目标 WPL、M3U 和 M3U8 比较中,WMP 在第一个点处截断了保存的导入副本名称;缩写名称也出现在 UPnP 上。连字符保留了完整的名称。

对于 WMP,该插件请求带有小型元数据过滤器的纯结构列表。仍会读取完整曲目元数据、资源和播放列表内容,并保留分页和一致性检查。对于此库,清理和插件优化将测量的第一个目录请求从大约 22 秒减少到 4.3–4.6 秒。这是对已检查库的提供者测量,而不是对 VirtualDJ 接口或更大库的一般承诺。

如果您的收藏还包含播放列表文件,请仅将实际的音频子文件夹添加到 Windows 音乐库,并单独添加视频文件夹。将播放列表明确导入到 WMP 中。添加整个父文件夹会导致 WMP 将某些播放列表文件公开为音轨或空列表。重复导入在 Windows 文件夹中创建了额外的 WPL 副本 音乐 → 播放列表。重建之前,备份 WMP 目录并将旧的、明确标识的导入副本存档在受监控的文件夹之外;仅重建数据库就会再次为它们建立索引。保留原始媒体和播放列表。

在我们的测试中,SMB 共享上的媒体文件无法用作 WMP DLNA 库,即使通过网络驱动器也是如此 Y:。该服务可以读取原始文件,并且 Samba 已经允许读取和写入,但共享媒体目录仍为空。此发现适用于此处检查的网络源,而不是每个 SMB 配置。本地文件由单独的本地检查覆盖。

未使用 Windows 脱机文件,因为它们创建同步的本地副本。重新启动服务后,在我们的检查中,大约三秒后即可再次访问 WMP 的设备描述和 UPnP root。最初丢失的服务器条目不会自动需要重建其库。

制造商文档

Gerbera配置

Gonic:音乐文件夹

MinimServer:配置

MariaDB:更改数据库列