我正在开发一个MiniDLNA服务器,通过WiFi流媒体.现有文件正确显示.但是,当我向媒体文件夹添加新文件时,MiniDLNA客户端不会更新更改.我也尝试重新启动服务器,但它没有反映出更改.
我改变了inotify_interval = 60但它还没有更新files.db哪个是MiniDLNA媒体列表数据库.如果我删除此数据库并重新启动服务器,则会显示更改.
有谁知道问题可能是什么?
Ser*_*ndt 41
总之,让MiniDLNA重新扫描所有媒体文件的最可靠方法是发出以下命令集:
$ sudo minidlnad -R
$ sudo service minidlna restart
Run Code Online (Sandbox Code Playgroud)
但是,MiniDLNA经常会在服务器上运行.以下是在此类服务器上请求重新扫描的客户端脚本:
#!/usr/bin/env bash
ssh -t server.on.lan 'sudo minidlnad -R && sudo service minidlna restart'
Run Code Online (Sandbox Code Playgroud)
uno*_*ode 29
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使用inotifyLinux内核中的一项功能,用于发现文件系统上特定文件和目录的更改.要使其工作,您需要在内核中启用inotify支持.
的notify_interval,如果你有残疾的inotify(注意缺乏领先的"I"),据我所知,只有使用.要使用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
Run Code Online (Sandbox Code Playgroud)
确保在内核中启用了inotify.
如果它未启用,并且您不想启用它,则强制重新扫描是强制MiniDLNA重新扫描驱动器的方法.
| 归档时间: |
|
| 查看次数: |
139023 次 |
| 最近记录: |