我正在开发一个 MiniDLNA 服务器来通过 WiFi 流媒体。现有文件正确显示。但是,当我将新文件添加到媒体文件夹时,MiniDLNA 客户端之间的更改不会更新。我也尝试重新启动服务器,但它没有反映更改。
我改变了inotify_interval = 60
,但它仍然没有更新files.db
哪个是 MiniDLNA 媒体列表数据库。如果我删除此数据库并重新启动服务器,它会显示更改。
有谁知道问题可能是什么?
我正在开发一个 MiniDLNA 服务器来通过 WiFi 流媒体。现有文件正确显示。但是,当我将新文件添加到媒体文件夹时,MiniDLNA 客户端之间的更改不会更新。我也尝试重新启动服务器,但它没有反映更改。
我改变了inotify_interval = 60
,但它仍然没有更新files.db
哪个是 MiniDLNA 媒体列表数据库。如果我删除此数据库并重新启动服务器,它会显示更改。
有谁知道问题可能是什么?
总之,让 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'
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
)应该包含有用的信息。
MiniDLNA 使用inotify
Linux 内核中的一项功能,用于发现文件系统上特定文件和目录的更改。为了让它工作,你需要在你的内核中启用 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 重新扫描驱动器的方法。
我最近发现,如果媒体文件是硬链接,minidlna 不会更新数据库。如果您希望这些文件显示在数据库中,则需要进行完全重新扫描。
例如:如果您有文件 /home/movies/foo.mkv 和 /home/minidlna/video/foo.mkv 中的硬链接,其中“/home/minidlna”是您的 minidlna 共享,您将不得不重新扫描直到该文件出现在数据库中(随后出现在您的 dlna 客户端)中。
我仍在尝试找到解决此问题的方法。如果有人有任何意见,非常欢迎。
sourceforge 提供了 minidlna 源代码的补丁,它不会进行完全重新扫描,而是一种增量扫描。效果很好,但是在某些更高版本中,补丁已损坏。看这里链接到SF
问候格里
用 crontab root 解决
10 * * * * /usr/bin/minidlnad -r