Doorgaan naar hoofdinhoud

Jellyfin Release - v10.6.0

· 12 minuten leestijd
Onofficiële Beta-vertaling

Deze pagina is vertaald door PageTurner AI (beta). Niet officieel goedgekeurd door het project. Een fout gevonden? Probleem melden →

Na maanden werk is hier weer een reusachtige release, dit keer met meer dan 30 grote verbeteringen en massa's fixes.

Met meer dan 500 pull requests samengevoegd tussen server en webclient, brengt Jellyfin 10.6.0 een ongelofelijk aantal nieuwe functies, verbeteringen en bugfixes. Het is een enorme release en we hebben veel te bespreken, dus laten we beginnen!

Andere diensten hebben recent verschillende manieren gelanceerd om samen met vrienden naar content te kijken. Gezien de huidige mondiale situatie is dat heel logisch, en Jellyfin blijft niet achter.

We zijn trots om de hoofdfeature van Jellyfin 10.6 aan te kondigen: SyncPlay.

SyncPlay laat je ruimtes aanmaken waar andere gebruikers of clients kunnen joinen voor een gedeelde kijkervaring. Er is geen limiet op het aantal gebruikers per ruimte, en je kunt met dezelfde gebruiker vanaf meerdere clients dezelfde ruimte joinen.

Dankzij eerstebijdrager OancaAndrei, die pull requests indiende voor zowel server als webclient (jf#2733, jf-web#1011) om de basis hiervoor te leggen, kun je nu samen films kijken met vrienden en familie, vanuit jullie eigen huiskamers.

De functie zal in toekomstige Jellyfin-versies verder verbeterd worden, maar is tijdens de ontwikkelingscyclus al door meerdere gebruikers getest, met slechts enkele milliseconden vertraging tussen clients.

Migratie naar Entity Framework Core

Dit lag al even op de plank, maar dankzij nieuw teamlid barronpm kunnen we eindelijk zeggen dat de herschrijving van ons databasemodel gestaag vordert!

Voorheen gebruikte Jellyfin een combinatie van SQLite-databases (ja, meerdere), XML-bestanden en C#-spaghetti voor databasebewerkingen. Informatie was verspreid over meerdere plekken, soms zelfs gedupliceerd, en werd doorgaans in C# gefilterd in plaats van de snellere verwerking van de database-engine te benutten.

Gedurende deze cyclus heeft barronpm deze chaos ontcijferd en ontward, en slaagde erin de ActivityDB (jf#2970) en UserDB (jf3148) naar EF Core te migreren.

Hoewel er nog werk aan de winkel is, moet EF Core snellere databasequery's, ondersteuning voor meerdere database-engines, schonere code en aanzienlijk lager geheugengebruik opleveren. Momenteel is er nog een brug nodig tussen de nieuwe EF Core-databases en bestaande code, wat later opgeruimd wordt.

Deel van het verbeterde geheugengebruik komt doordat onze huidige geërfde custom ORM alles in het geheugen cachet om traagheid te compenseren. Bij grote databases kon dit honderden megabytes geheugen kosten. Met EF Core laten we het zware werk over aan de database-engine, wat leidt tot betere responstijden en lager algemeen geheugengebruik.

Je databases worden automatisch gemigreerd bij de eerste start van Jellyfin 10.6. Hoewel het migratieproces de afgelopen maanden grondig getest is, kunnen zich problemen voordoen. Maak een backup van je bestaande gegevensbestanden vóórdat je met de migratie begint om gegevensverlies te voorkomen.

Een modernere webclient

Onze webclient heeft al lang te kampen gehad met een enorme technische schuld, omdat het project waarvan we hebben afgesplitst alleen geminificeerde versies van de broncode aanbood en verouderde webtechnologieën gebruikte. Sommige van deze oude technologieën verhinderden ons tot voor kort om moderne JavaScript-tooling te gebruiken, wat ons zou helpen de broncode aanzienlijk op te schonen.

Gelukkig is dit nu verleden tijd, dankzij MrTimscampi die heeft gewerkt aan een betere bouwmethode voor de webclient door Gulp te gebruiken voor diverse taken die nodig zijn om onze huidige codestructuur met moderne tools te bouwen (jf-web#862). Hierdoor kunnen we nu baanbrekende JavaScript gebruiken dankzij Babel, en wordt onze ondersteuning voor verouderde clients (met name vroege WebOS- en Tizen-versies) aanzienlijk vereenvoudigd.

Als voordeel van deze overstap naar Gulp voor het bouwen van de client, zijn we begonnen met de overgang van RequireJS naar standaard EcmaScript Modules, mede dankzij Camc314, cromefire, Delgan, dkanada, grafixeyehero, MrTimscampi, en sarab97.

Deze grote verandering zal, eenmaal voltooid, het bouwproces van de webclient vereenvoudigen, wat ons op zijn beurt in staat stelt te beginnen met onze migratie naar Vue en onze code aanzienlijk op te schonen. Dit zou ook merkbare prestatieverbeteringen voor de webclient moeten opleveren op termijn, omdat we technische schuld aanpakken en verouderde praktijken en bibliotheken uit de code verwijderen.

Serverprestaties, bugfixes en betere netwerkmogelijkheden

Onze vaste C#-prestatietovenaar Bond-009 zet zijn zoektocht voort om de serverbroncode van waarschuwingen te ontdoen en de serverprestaties over het algemeen te verbeteren, waarbij hij onderweg meerdere bugs oplost.

mark-monteiro werkte aan meerdere fixes voor 10.6, waaronder een herziening van de netwerkinstellingen die via het beheerdersdashboard toegankelijk zijn (jf#2774, jf-web#1140).

Teamlid nyanmisaka, met hulp van artiume, levert diverse verbeteringen voor transcoderen (jf#2809, jf-web#1046, jf#2821, jf#2715), met formaatschakelaars, opties om transcoderen voor HEVC- en 10-bit VP9-video's uit te schakelen voor oudere GPU's, ondersteuning voor VP8/VP9 QSV- en NVDEC-decoders in FFmpeg 4.3, betere ondersteuning voor UTF-16-ondertiteling en tal van andere verbeteringen.

Verdere wijzigingen aan de server omvatten fixes voor problemen met collectiemetadata (jf#3117), verbeteringen aan metadataproviders (jf#3071, jf#3056, jf#3289), en meer kernproviders die naar plugins zijn verplaatst (jf#3208).

Meer verbeteringen aan de webclient

Itegulov en dkanada hebben de ondersteuning voor ebooks verbeterd door een EPUB-reader toe te voegen, gebaseerd op epub.js (jf-web#1263). Ondersteuning voor meer formaten wordt ontwikkeld voor toekomstige versies, waaronder CBZ/CBR en PDF.

Tijdens het gebruik van het nieuwe detailscherm van 10.5 in de afgelopen maanden, merkten we enkele verbeterpunten op. Teamlid MrTimscampi, met input van de rest van het webteam en enkele gebruikers, heeft dit scherm nogmaals onder handen genomen (jf-web#949, jf-web#1206). Hierbij is het ontwerp aangescherpt en zijn visuele problemen opgelost. Delgan voegde de laatste finishing touch toe door te voorkomen dat de inhoud verspringt bij het renderen van spoorselectors op de pagina (jf-web#1406).

Teamlid ferferga en bijdrager samuel9554 hebben gewerkt aan een herontwerp van onze muziekervaring. Voor versie 10.6 hebben ze de interface van de mobiele muziekspeler ingrijpend vernieuwd en aanzienlijke wijzigingen aangebracht aan de mini-speler en de afstandsbedienings-UI (jf-web#1056, jf-web#1430).

MrTimscampi heeft ook het afbeeldingslaadsysteem herzien (jf-web#1065), waarbij visuele problemen zijn opgelost en het geheugengebruik is verbeterd door afbeeldingen buiten beeld te ontladen. Samen met deze verbetering hebben ferferga, GranPC, JustAMan en Bond-009 Blurhash-tijdelijke aanduidingsondersteuning geïmplementeerd op zowel de server als de webclient, wat verdere visuele verfijning aan de gebruikersinterface brengt.

JustAMan heeft ons nieuwe SSA/ASS-ondertitelingssysteem opnieuw bekeken en de prestaties aanzienlijk verbeterd voor ondertitelingen met zware effecten (jf-web#1144, jf-web#1095, jf-web#1048, jf-web#1005). Hoewel we deze functie nog als experimenteel beschouwen, zou deze nu de meeste ondertitelingen nauwkeurig en met correcte prestaties moeten kunnen weergeven.

Andere verbeteringen aan de webclient omvatten een herschreven afbeeldingenviewer (jf-web#967), een configuratieoptie voor het aantal items per pagina in bibliotheken (jf-web#983), een schakelaar voor de nightly-versie van de Chromecast-client (jf-web#1242), en ondersteuning voor meerdere plugin-repositories (jf-web#1393, jf#3244).

Patreons en GitHub Sponsors

Met de toegenomen activiteit in het project willen we graag aandacht geven aan manieren om de mensen te ondersteunen die dagelijks aan Jellyfin werken.

We willen benadrukken dat, hoewel sommige van onze bijdragers individueel financiële donaties accepteren, Jellyfin en zijn functies nooit achter een betaalmuur zullen worden geplaatst. Het financieel ondersteunen van de ontwikkelaars is volledig vrijwillig en geeft je geen exclusieve toegang tot functies of ondersteuning, noch verandert het de prioriteit van je functieverzoeken of problemen.

anthonylavado, onze geweldige PR- en ontwikkelaarsrelatiepersoon, accepteert donaties via Github Sponsors.

barronpm, die voornamelijk werkt aan de servercomponent van Jellyfin en de migratie naar EF Core leidt, heeft recent een Patreon-pagina geopend.

dkanada, wiens werk zich uitstrekt van server tot webclient, accepteert donaties via Github Sponsors

ferferga, webclient-bijdrager, localisatiefanaat en algeheel geweldig persoon, accepteert donaties via Github Sponsors.

nielsvanvelzen, die hard heeft gewerkt aan de Android TV-client, kan worden ondersteund via Github Sponsors.

MrTimscampi, wiens belangrijkste werk het opruimen en moderniseren van de webclient is, heeft ook recent een Patreon-pagina geopend.

oddstr13, een van de ontwikkelaars van Jellyfin voor Kodi, accepteert eveneens donaties via Github Sponsors.

thornbill die de iOS- en Android-clients beheert en ook bijdraagt aan de Android TV-client, kan worden ondersteund via Github Sponsors

Bijdragers

Tot slot willen we alle bijdragers bedanken die hebben meegewerkt om Jellyfin 10.6 mogelijk te maken: