Deze pagina is vertaald door PageTurner AI (beta). Niet officieel goedgekeurd door het project. Een fout gevonden? Probleem melden →
Probleemoplossing
Deze pagina beschrijft oplossingen voor veelvoorkomende problemen die beginners kunnen tegenkomen bij het draaien van een Jellyfin-server.
Afspeelproblemen
De eenvoudigste manier om problemen te controleren is door de logboeken te bekijken, die toegankelijk zijn via de console van de webclient of in de logmap op je server.
Als media niet kan worden getranscodeerd, controleer dan eerst de ffmpeg-logboeken.
Netwerkproblemen
Als je de webinterface via HTTP kunt bereiken maar niet via HTTPS, dan heb je waarschijnlijk een probleem met het certificaat. Jellyfin gebruikt een PFX-bestand voor HTTPS-verkeer. Als je het bestand met een wachtwoord hebt gemaakt, moet je deze waarde invoeren op de pagina Netwerken in de instellingen.
Als je de server lokaal kunt bereiken maar niet buiten je LAN, dan is er waarschijnlijk een probleem met de routerconfiguratie. Controleer de port forwarding-instellingen op je router om ervoor te zorgen dat de server zichtbaar is van buiten je lokale netwerk.
Als er helemaal geen logboeken zijn over webverkeer, zelfs niet via een LAN-verbinding, dan is de server nog helemaal niet bereikt. Dit duidt op een onjuist adres of een probleem elders in het netwerk.
Debug-logging
Debug-logging kan erg nuttig zijn bij het oplossen van problemen. Om debug-logging in te schakelen, moet je handmatig een configuratiebestand bewerken, omdat Jellyfin dit niet via de frontend UI regelt.
Logging-opties kunnen worden geconfigureerd in het bestand logging.json in de Jellyfin-configuratiemap. Op sommige platforms is er ook logging.default.json dat standaardwaarden biedt die kunnen worden overschreven door een aangepaste logging.json.
Het inschakelen van debug-logging produceert een enorme hoeveelheid uitvoer; alleen het laden van de startpagina genereert al meer dan 4000 regels logs met de onderstaande debug-configuratie. Het is niet aanbevolen om debug-logging langdurig ingeschakeld te laten op een productieve Jellyfin-installatie, en het moet alleen tijdens probleemoplossing worden gebruikt.
Als je wordt gevraagd om uitgebreide debug-logs te leveren (bijvoorbeeld meer dan een paar regels), comprimeer de resulterende logbestanden dan indien mogelijk, omdat ze anders erg groot worden.
Om debug-logging in te schakelen, maak je het logging.json bestand aan en voeg je de volgende inhoud toe:
{
"Serilog": {
"MinimumLevel": {
"Default": "Debug"
}
}
}
Als een logging.json bestand al bestaat, bewerk dan het Serilog MinimumLevel gedeelte om overeen te komen met bovenstaande, maar verander geen andere waarden in het bestand.
Debug-berichten verschijnen in het log met het label DBG voor elke regel, hoewel sommige componenten met deze configuratie ook extra details op INF niveau loggen.
Als het logging.json bestand bestond voor de laatste serverstart, laadt Jellyfin de nieuwe configuratie automatisch opnieuw zonder herstart nodig te hebben. Als het logging.json bestand na de laatste serverstart is gemaakt, is een serverherstart nodig voordat de wijzigingen voor debug-logging effectief worden.
Om normale logging te herstellen, kun je het override-bestand logging.json verwijderen (als je eerder een nieuw bestand hebt gemaakt) of het Serilog MinimumLevel gedeelte in logging.json terugzetten naar de standaardwaarden:
{
"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
}
}
}
Real-time monitoring
Hierdoor kan Jellyfin bibliotheken automatisch bijwerken wanneer bestanden worden toegevoegd of gewijzigd. Helaas wordt deze functie alleen ondersteund op bepaalde bestandssystemen.
Voor Linux-systemen gebeurt dit via inotify. NFS en rclone ondersteunen inotify niet, maar ondersteuning kan worden toegevoegd door een union-bestandssysteem zoals mergerfs te gebruiken met je netwerkbestandssystemen.
Door de grootte van de bibliotheek kun je een foutmelding krijgen zoals:
[2019-12-31 09:11:36.652 -05:00] [ERR] Error in Directory watcher for: "/media/movies" System.IO.IOException: The configured user limit (8192) on the number of inotify watches has been reached.
Als je Debian, RedHat of een vergelijkbare Linux-distributie gebruikt, voer dan het volgende uit in een terminal:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.d/40-max-user-watches.conf && sudo sysctl -p
Als je ArchLinux gebruikt, voer dan in plaats daarvan dit commando uit:
echo fs.inotify.max_user_watches=524288 | sudo tee /etc/sysctl.d/40-max-user-watches.conf && sudo sysctl --system
Plak het in je terminal en druk op Enter om het uit te voeren. Voor Docker moet dit op de host gebeuren, niet in de container.
Zie de Guard Listen README over het verhogen van inotify-watchers voor meer informatie.
Jellyfin verwijderen op macOS
Om alle gegevens van Jellyfin volledig van macOS te verwijderen, voer je deze commando's uit:
rm -Rfv ~/.config/jellyfin
rm -Rfv ~/.cache/jellyfin
rm -Rfv ~/.local/share/jellyfin
Geblokkeerd gebruikersaccount ontgrendelen
Wanneer het admin-account geblokkeerd is en de functie "Wachtwoord vergeten" niet werkt, moet je de gebruiker handmatig ontgrendelen.
Hiervoor moet je het jellyfin.db-bestand op je systeem vinden.
De standaardlocatie op Linux is: /var/lib/jellyfin/data/.
Voor paden in andere omgevingen, zie serverpaden.
Linux CLI
Zorg eerst dat sqlite3 geïnstalleerd is.
Als sqlite3 niet geïnstalleerd is, installeer het dan op Debian-gebaseerde systemen met apt install sqlite3.
Voer daarna deze commando's/SQL-query uit:
sqlite3 /PATH/TO/JELLYFIN/DB/jellyfin.db
UPDATE Users SET InvalidLoginAttemptCount = 0 WHERE Username = 'LockedUserName';
UPDATE Permissions SET Value = 0 WHERE Kind = 2 AND UserId IN (SELECT Id FROM Users WHERE Username = 'LockedUserName');
.exit
SQLiteBrowser
Je kunt ook SQLiteBrowser gebruiken op systemen met een desktopomgeving.
Start met het openen van de database in SQLite Browser.
Na het openen, navigeer naar het tabblad "Execute SQL" en voer deze query uit:
UPDATE Users SET InvalidLoginAttemptCount = 0 WHERE Username = 'LockedUserName';
UPDATE Permissions SET Value = 0 WHERE Kind = 2 AND UserId IN (SELECT Id FROM Users WHERE Username = 'LockedUserName');
Admin-gebruikersrechten herstellen
Als de rechten voor je admin-account beschadigd zijn, kun je ze herstellen met eenvoudige SQL-queries.
Handmatige wijzigingen aan de database kunnen je installatie onherstelbaar beschadigen. Maak voor de zekerheid een back-up:
cp /PATH/TO/JELLYFIN/DB/jellyfin.db /PATH/TO/JELLYFIN/DB/jellyfin.db.bck
Zorg eerst dat sqlite3 geïnstalleerd is.
Als sqlite3 niet geïnstalleerd is, installeer het dan op Debian-gebaseerde systemen met apt install sqlite3.
Voer daarna deze commando's/SQL-query uit:
Je vindt een lijst met standaardpaden in de configuratiedocumentatie.
sqlite3 /PATH/TO/JELLYFIN/DB/jellyfin.db
Overzicht bekijken
Om de huidige rechten voor alle gebruikers te zien, voer je deze query uit:
SELECT Permissions.Value,Permissions.Kind,Users.Username FROM Permissions INNER JOIN Users ON Permissions.UserID = Users.Id;
Om alleen de rechten van je admin-account te controleren, voer je deze query uit:
Vervang AdminUsername door de gebruikersnaam van je admin-account
SELECT Value,Kind FROM Permissions WHERE UserId IN (SELECT Id FROM Users WHERE Username = 'AdminUsername');
De eerste rij met een waarde van 1 of 0 toont of de rechten zijn toegekend. Voor een samenvatting van elk rechtstype, zie de PermissionKind-enum in de Jellyfin-broncode
Rechten herstellen
Niet alle rechten zijn nodig; je kunt later overbodige rechten verwijderen via de webinterface.
UPDATE Permissions SET Value = 1 WHERE (Kind = 0 OR Kind = 3 OR Kind = 4 OR Kind = 5 OR Kind = 6 OR Kind = 7 OR Kind = 8 OR Kind = 9 OR Kind = 10 OR Kind = 11 OR Kind = 12 OR Kind = 13 OR Kind = 14 OR Kind = 15 OR Kind = 16 OR Kind = 17 OR Kind = 18 OR Kind = 19 OR Kind = 20 OR Kind = 21) AND UserId IN (SELECT Id FROM Users WHERE Username = 'AdminUsername');
.exit
Tekst wordt niet correct weergegeven
Tekst kan verschijnen als vakjes ☐☐☐☐☐☐ als de benodigde lettertypen ontbreken. Installeer lettertypen voor de betreffende talen om dit op te lossen. Voor bibliotheekomslagafbeeldingen installeer je systeemlettertypen op de server. Voor ondertitels hangt de bron van lettertypen af van de client. Zie Lettertypen voor installatielocaties.
Actieve apparaten worden niet getoond
Als de sectie actieve apparaten in het dashboard de voortgang van afgespeelde content niet weergeeft, kan dit komen doordat uw systeemklok niet gesynchroniseerd is. Om dit op te lossen op Linux-systemen met systemd, kunt u de volgende opdracht uitvoeren om synchronisatie met een online NTP-server in te schakelen (hierdoor wordt de service chronyd of ntpd gestart en geactiveerd). Start daarna Jellyfin opnieuw op.
timedatectl set-ntp true
Database vergrendelingsfouten
Als je problemen tegenkomt met mislukte scans of inconsistente gegevens, controleer je logbestand(en) op fouten zoals "Database Locked". Als je deze tegenkomt, moet je eerst de limiet voor parallelle scantaken in je beheerdersdashboard controleren en deze lager instellen. Als deze op 0 staat, stel hem dan in op de helft van je aantal cores. Als dat niet helpt, kun je in plaats daarvan de vergrendelingsmodus instellen (houd de taaklimiet ook op een redelijk laag aantal).
Je hebt 3 opties voor de vergrendelingsmodus:
-
NoLock- Dit is de standaardmodus die voor de meeste gebruikers zou moeten werken -
Optimistic- Definieert dat alle schrijfacties worden geprobeerd en opnieuw worden geprobeerd als ze mislukken -
Pessimistic- Definieert een gedrag waarbij alle leesacties worden geblokkeerd zolang er ook maar één schrijfactie plaatsvindt
Stop je Jellyfin-server en navigeer naar de configuratiemap. Er zijn veel xml-bestanden - zoek het database.xml bestand en bewerk de LockingBehavior optie:
<?xml version="1.0" encoding="utf-8"?>
<DatabaseConfigurationOptions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DatabaseType>Jellyfin-SQLite</DatabaseType>
<LockingBehavior>Optimistic</LockingBehavior>
</DatabaseConfigurationOptions>
start daarna je Jellyfin-instantie opnieuw op. Als dit de problemen nog steeds niet oplost, kun je proberen de LockingBehavior in plaats daarvan op Pessimistic in te stellen. Dit heeft echter een aanzienlijke prestatie-impact en wordt daarom alleen aanbevolen wanneer Optimistic niet helpt bij de problemen.
Problemen specifiek voor LXC
Het team heeft gemerkt dat er specifieke problemen zijn met LXC. Als je dergelijke fouten tegenkomt op LXC na het instellen van de vergrendelingsmodus op Optimistic, raden we aan om te migreren naar volledige virtualisatie (virtuele machines) of Docker. Er zal waarschijnlijk niet snel een oplossing voor LXC komen en we kunnen geen ondersteuning bieden voor databasevergrendelingsproblemen op LXC.