53

我正在开发一个 MiniDLNA 服务器来通过 WiFi 流媒体。现有文件正确显示。但是,当我将新文件添加到媒体文件夹时,MiniDLNA 客户端之间的更改不会更新。我也尝试重新启动服务器,但它没有反映更改。

我改变了inotify_interval = 60,但它仍然没有更新files.db哪个是 MiniDLNA 媒体列表数据库。如果我删除此数据库并重新启动服务器,它会显示更改。

有谁知道问题可能是什么?

4

6 回答 6

57

总之,让 MiniDLNA 重新扫描所有媒体文件的最可靠方法是发出以下命令集:

$ sudo minidlnad -R
$ sudo service minidlna restart

重新扫描服务器的客户端脚本

然而,MiniDLNA 每隔一段时间就会在服务器上运行。这是一个请求在此类服务器上重新扫描的客户端脚本:

#!/usr/bin/env bash
ssh -t server.on.lan 'sudo minidlnad -R && sudo service minidlna restart'
于 2014-05-07T01:41:50.267 回答
37

AzP 已经提供了大部分信息,但其中一些信息不正确。

首先,没有这样的选择inotify_interval。唯一存在的选项是notify_interval与 无关inotify

所以为了澄清,notify_interval控制(迷你)dlna服务器在网络中宣布自己的频率。默认值 895 意味着它将大约每 15 分钟宣布一次,这意味着客户端最多需要 15 分钟才能找到服务器。我个人根据网络中的客户波动性使用 1-5 分钟。

在让 minidlna 查找已添加的文件方面,有两种选择:

  • 第一个等效于删除文件files.db,包括在传递-R参数时重新启动 minidlna,这会强制进行完全重新扫描并从头开始构建数据库。从 1.2.0 版开始,现在还有-r执行重建操作的参数。这将保留任何现有数据库并分别删除和添加旧记录和新记录。
  • inotify二是通过设置inotify=yes和重启minidlna来依赖事件。如果inotify设置为=no,则更新文件数据库的唯一选项是强制完全重新扫描。

此外,为了inotify正常工作,文件系统必须支持inotify事件,这在大多数远程文件系统中并非如此。如果您在 NFS 上运行 minidlna,它将看不到任何 inotify 事件,因为这些事件是在服务器端而不是在客户端生成的。

最后,即使inotify文件系统正在工作并且受到文件系统的支持,运行 minidlna 的用户也必须能够读取该文件,否则它将无法检索必要的元数据。在这种情况下,日志文件(通常/var/log/minidlna.log)应该包含有用的信息。

于 2014-04-20T21:05:22.693 回答
6

MiniDLNA 使用inotifyLinux 内核中的一项功能,用于发现文件系统上特定文件和目录的更改。为了让它工作,你需要在你的内核中启用 inotify 支持。

notify_interval我所知,(请注意缺少前导“i”)仅在您禁用 inotify 时使用。要使用notify_interval(即让服务器“轮询”文件系统以进行更改,而不是自动收到更改通知),您必须禁用该inotify功能。

这就是它在我的/etc/minidlna.conf

# set this to no to disable inotify monitoring to automatically discover new files
# note: the default is yes
inotify=yes

确保在内核中启用了 inotify。

如果未启用,并且您不想启用它,则强制重新扫描是强制 MiniDLNA 重新扫描驱动器的方法。

于 2012-12-05T11:20:51.993 回答
2

我最近发现,如果媒体文件是硬链接,minidlna 不会更新数据库。如果您希望这些文件显示在数据库中,则需要进行完全重新扫描。

例如:如果您有文件 /home/movies/foo.mkv 和 /home/minidlna/video/foo.mkv 中的硬链接,其中“/home/minidlna”是您的 minidlna 共享,您将不得不重新扫描直到该文件出现在数据库中(随后出现在您的 dlna 客户端)中。

我仍在尝试找到解决此问题的方法。如果有人有任何意见,非常欢迎。

于 2015-01-21T19:43:51.780 回答
1

sourceforge 提供了 minidlna 源代码的补丁,它不会进行完全重新扫描,而是一种增量扫描。效果很好,但是在某些更高版本中,补丁已损坏。看这里链接到SF

问候格里

于 2017-05-03T10:07:12.397 回答
0

用 crontab root 解决

10 * * * * /usr/bin/minidlnad -r
于 2019-10-12T17:10:22.563 回答