WiFi経由でメディアをストリーミングするMiniDLNAサーバーを開発しています。既存のファイルは適切に表示されます。ただし、新しいファイルをメディアフォルダーに追加すると、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分ごとに1回アナウンスすることを意味します。つまり、クライアントはサーバーを見つけるのに最大15分必要です。ネットワーク内のクライアントのボラティリティに応じて、個人的に1〜5分を使用します。
追加されたファイルを検索するためにminidlnaを取得するという点では、2つのオプションがあります。
files.db
を削除することと同等で、-R
引数を渡しながらminidlnaを再起動することで、完全な再スキャンを強制し、データベースをゼロから構築します。バージョン1.2.0以降、再構築アクションを実行する-r
引数もあります。これにより、既存のデータベースが保持され、古いレコードと新しいレコードがそれぞれ削除および追加されます。inotify=yes
を設定してminidlnaを再起動することにより、inotify
イベントに依存することです。 inotify
が=no
に設定されている場合、ファイルデータベースを更新する唯一のオプションは強制完全再スキャンです。さらに、inotify
を機能させるために、ファイルシステムはinotify
イベントをサポートする必要がありますが、これはほとんどのリモートファイルシステムには当てはまりません。 NFS上でminidlnaを実行している場合、クライアントではなくサーバー側で生成されるため、inotifyイベントは表示されません。
最後に、inotify
が機能し、ファイルシステムでサポートされている場合でも、minidlnaを実行しているユーザーはファイルを読み取れる必要があります。そうしないと、必要なメタデータを取得できません。この場合、ログファイル(通常は/var/log/minidlna.log
)に有用な情報が含まれている必要があります。
MiniDLNAは、Linuxカーネル内の機能であるinotify
を使用します。これは、ファイルシステム上の特定のファイルおよびディレクトリの変更を検出するために使用されます。動作させるには、カーネルで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共有の場合、再スキャンを実行する必要がありますそのファイルは、db(およびそれに続くdlnaクライアント)に表示されます。
私はまだこれを回避する方法を探しています。誰でも何か入力があれば、それは大歓迎です。
Sourceforgeにはminidlnaのソースコード用のパッチがあり、完全な再スキャンではなく、一種のインクリメンタルスキャンを行います。それはうまくいきましたが、それ以降のバージョンではパッチが壊れています。こちらをご覧ください SFへのリンク
よろしくジェリー