Jellyfin is an open source media server, similar to Plex and Emby. The server runs on Windows, macOS, Linux or in a Docker container and there are clients for any OS, as well as media players, TVs and mobile devices. Where Plex and Emby are basically free, you have to pay for so-called premium features. Jellyfin is a fork of Emby before it became closed source, but has remained completely open source. A few days ago version 10.6.0 of Jellyfin was released and the release notes for that release look like this:
Other services have recently launched various ways to view your content together with friends. With the current global situation, it makes a lot of sense, and Jellyfin isn’t lagging behind. We’re proud to announce Jellyfin 10.6’s headline feature: SyncPlay.
SyncPlay allows you to create rooms that other users or clients can join in order to share a common viewing experience. There is no limit on the number of users in a room and you are free to join the same room with the same user from multiple clients as well.
Thanks to first time contributor OancaAndreic, who submitted pull requests to both the server and the web client (jf#2733, jf-web#1011) in order to lay out the foundations for this, you can now watch movies together with friends and family, from the comfort of your respective homes.
The feature is expected to be improved in future versions of Jellyfin, but has already been used by multiple users during the development cycle, with a delay between clients of only a couple of milliseconds.
Migration to Entity Framework Core
It’s been on our plate for a while, but thanks to new team member barronpm, we can finally say that the rewrite of our database model is progressing at a steady pace!
Previously, Jellyfin used a combination of SQLite databases (yes, multiple ones), XML files and C# spaghetti to perform database operations. Information was split in multiple places, sometimes even duplicated and generally filtered in C# instead of using the database engine’s faster processing.
While there is still a ways to go, EF Core should bring faster database queries, support for multiple database engines, cleaner code, and significantly reduced memory usage. Currently, there is still a bridge to make the link between the new EF Core databases and the existing code, which will be cleaned up down the line.
Part of the improved memory usage is due to our current inherited custom ORM caching everything in memory to make up for its slowness. For large databases, this could result in hundreds of megabytes of memory lost to caching. With EF Core, however, we leave the heavy lifting to the database engine, leading to better response times and less memory usage overall.
Your databases will be automatically migrated when you first launch Jellyfin 10.6. While the migration process has been well tested over the past few months, issues may arise during the migration process. To prevent any data loss, please backup your existing data files before starting the migration process.
A more modern web client
Among the benefits of this move to Gulp for building the client, we have started moving away from RequireJS and towards using standard EcmaScript Modules, thanks to camc314, cromefire, Delgan, dkanada, grafixeyehero, MrTimscampi, and sarab97.
This massive change, once it is complete, will allow us to simplify the web client build process, which will in turn allow us to start our migration to Vue and significantly clean up our code. This should also bring some noticeable performance improvements to the web client down the line, as we tackle technical debt and remove deprecated practices and libraries from the code.
Server performance, bug fixes and better networking
Our resident C# performance wizard, bond-009 continues his quest to rid the server source of warnings and generally improve server performance, fixing multiple bugs in the process.
Team member nyanmisaka, with some help from artiume, brings a number of improvements to transcoding (jf#2809, jf-web#1046, jf#2821, jf#2715), with format toggles, options for toggling transcoding for HEVC and 10-bit VP9 videos off for older GPUs, providing support for the VP8/VP9 QSV and NVDEC decoders in FFmpeg 4.3, better support for UTF-16 subtitles and a host of other improvements.
Further changes to the server include fixes for collection metadata issues (jf#3117), improvements to the metadata providers (jf#3071, jf#3056, jf#3289), and more core providers moved to plugins (jf#3208).
More web client improvements
Itegulov and dkanada have improved support for ebooks by adding an EPUB reader based on epub.js (jf-web#1263). Reader support for more formats is in progress for future versions, including CBZ/CBR and PDF.
As we used the new 10.5 details screen over the last few months, we noticed some improvements we could make to the experience. Team member MrTimscampi, along with input from the rest of the web team and some of our users, did a second pass on that screen (jf-web#949, jf-web#1206), tightening the design and cleaning some visual issues along the way. Delgan put in the final touches to the page by avoiding a jump in the content when rendering the track selectors on the page (jf-web#1406)
Team member ferferga and contributor samuel9554 have been working on redesigning our music experience. For 10.6, they overhauled our mobile music player interface and made significant changes to the mini player and the remote player UI (jf-web#1056, jf-web#1430).
MrTimscampi also reworked the image loading system (jf-web#1065), fixing some visual issues and improving memory usage by unloading out of view images. along with this improvement, ferferga, GranPC, justAman and bond-009 have implemented Blurash placeholder support on both the server and the web client, which brings further visual refinement to the user interface.
justAman went back over our new SSA/ASS subtitle rendering system and significantly improved performance for subtitles with heavy effects (jf-web#1144, jf-web#1095, jf-web#1048, jf-web#1005). While we still consider the feature experimental, it should now be able to render most subtitles accurately and with correct performance.
Other improvements to the web client include a rewritten image viewer (jf-web#967), a configuration option for the number of items per page in libraries (jf-web#983), a toggle for the nightly version of the Chromecast client (jf-web#1242), and support for multiple plugin repositories (jf-web#1393, jf#3244).
|Operating systems||Windows 7, Linux, macOS, Windows 8, Windows 10|