Vraag Waarom wordt de minidlna-database niet vernieuwd?


Ik ontwikkel een MiniDLNA-server om media via WiFi te streamen. Bestaande bestanden worden correct weergegeven. Wanneer ik echter nieuwe bestanden aan mediamappen toevoeg, worden de wijzigingen niet bijgewerkt in MiniDLNA-clients. Ik heb ook geprobeerd om de server opnieuw te beginnen maar het geeft de veranderingen niet weer.

ik ben veranderd inotify_interval = 60 maar het werkt nog steeds niet files.db wat de MiniDLNA-medialijst-database is. Als ik deze database verwijder en de server opnieuw start, worden de wijzigingen weergegeven.

Weet iemand wat het probleem zou kunnen zijn?


31
2018-03-03 11:56


oorsprong


antwoorden:


Samenvattend, de meest betrouwbare manier om MiniDLNA alle mediabestanden opnieuw te laten scannen, is door de volgende reeks commando's uit te geven:

$ sudo minidlnad -R
$ sudo service minidlna restart

Client-side script om de server opnieuw te scannen

Echter, om de zoveel tijd zal MiniDLNA op een server draaien. Hier is een client-side script om opnieuw te kunnen scannen op zo'n server:

#!/bin/bash
ssh -t server.on.lan 'sudo minidlnad -R && sudo service minidlna restart'

30
2018-05-07 01:41



AzP heeft al de meeste informatie verstrekt, maar een deel is onjuist.

Allereerst is er geen dergelijke optie inotify_interval. De enige beschikbare optie is notify_interval en heeft niets te maken met inotify.

Dus om te verduidelijken, notify_interval bepaalt hoe vaak de (mini) dlna-server zichzelf in het netwerk aankondigt. De standaardwaarde van 895 betekent dat deze ongeveer elke 15 minuten wordt aangekondigd, wat betekent dat clients maximaal 15 minuten nodig hebben om de server te vinden. Persoonlijk gebruik ik 1-5 minuten, afhankelijk van de klantvolatiliteit in het netwerk.

In termen van het krijgen van minidlna om bestanden te vinden die zijn toegevoegd, zijn er twee opties:

  • De eerste is gelijk aan het verwijderen van het bestand files.db en bestaat uit het herstarten van minidlna tijdens het passeren van de -R argument, dat een volledige rescan afdwingt en de database helemaal opnieuw opbouwt. Sinds versie 1.2.0 is er nu ook het -r argument dat een rebuild-actie uitvoert. Hiermee wordt elke bestaande database behouden en worden respectievelijk oude en nieuwe records verwijderd en toegevoegd.
  • De tweede is om op te vertrouwen inotify evenementen door in te stellen inotify=yes en herstart minidlna. Als inotify ingesteld op =no, de enige optie om de bestandsdatabase bij te werken is de geforceerde volledige rescan.

Bovendien om te hebben inotify werken, het bestandssysteem moet ondersteunen inotify gebeurtenissen, wat niet het geval is in de meeste externe bestandssystemen. Als u minidlna over NFS uitvoert, worden er geen inotify -gebeurtenissen weergegeven, omdat deze aan de serverzijde en niet op de client worden gegenereerd.

Eindelijk, zelfs als inotify werkt en wordt ondersteund door het bestandssysteem, de gebruiker waaronder minidlna wordt uitgevoerd, moet het bestand kunnen lezen, anders kan het de benodigde metagegevens niet ophalen. In dit geval is het logbestand (meestal /var/log/minidlna.log) moet nuttige informatie bevatten.


25
2018-04-20 21:05



MiniDLNA gebruikt inotify, wat een functionaliteit is binnen de Linux-kernel, die wordt gebruikt om wijzigingen in specifieke bestanden en mappen in het bestandssysteem te ontdekken. Om dit te laten werken, moet u ondersteuning voor in uw kernel ingeschakeld inschakelen.

De notify_interval (merk op dat het ontbreken van een leidende 'i'), voor zover ik weet, alleen wordt gebruikt als je niet-geınactiveerd hebt. Om de te gebruiken notify_interval(dwz. zorg dat de server het bestandssysteem 'peilt' voor wijzigingen in plaats van automatisch op de hoogte te worden gebracht), dan moet je de inotify functionaliteit.

Dit is hoe het eruitziet in mijn /etc/minidlna.conf:

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

Zorg ervoor dat inotify is ingeschakeld in uw kernel.

Als het niet is ingeschakeld en u wilt het niet inschakelen, is een gedwongen opnieuw scannen de manier om MiniDLNA te dwingen de schijf opnieuw te scannen.


4
2017-12-05 11:20



Ik heb onlangs ontdekt dat minidlna de database niet bijwerkt als het mediabestand een hardlink is. Als u wilt dat deze bestanden worden weergegeven in de database, is een volledige scan vereist.

ex: Als je een bestand /home/movies/foo.mkv hebt en een hardlink in /home/minidlna/video/foo.mkv, waar '/ home / minidlna' jouw minidlna-share is, zul je een rescan moeten doen tot dat bestand verschijnt in de db (en vervolgens uw dlna-client).

Ik probeer nog steeds een manier te vinden om dit te omzeilen. Als iemand input heeft, is het van harte welkom.


2
2018-01-21 19:43



Er is een patch voor de broncode van minidlna bij sourceforge beschikbaar die geen volledige scan uitvoert, maar een soort incrementele scan. Dat werkte prima, maar met een latere versie is de patch verbroken. Kijk hier Link naar SF

vriendelijke groeten Gerry


1
2018-05-03 10:07