4 ms·
Sorry for the rant, but as someone who has used Jellyfin and similar apps like Kodi, I have to say I find their code quality and general software architecture t
by mrb 3y ago
Sorry for the rant, but as someone who has used Jellyfin and similar apps like Kodi, I have to say I find their code quality and general software architecture to be crap. I wish there was a good alternative. A few examples:
I have installed the Jellyfin server on a Linux box, and the Jellyfin app on a playback device (Google Chromecast with Google TV, GCCWGTV). When the app detects the playback device or TV doesn't support, say, the 7.1 Dolby audio stream in the media file being played, it asks the server to transcode the media to something it supports (eg. stereo audio). But while doing so, it transcodes both video and audio, forcibly, even though it's only the audio track that's causing the problem. The server is forced to transcode on-the-fly a perfectly supported H.264 stream to... another H.264 stream of the same bitrate, while this could be avoided... facepalm In theory this is rather simple to fix, as the Jellyfin server is built on ffmpeg, and ffmpeg is perfectly capable of leaving the video stream unmodified while transcoding only the audio stream. But the fact the developer(s) chose to implement it this inefficiently doesn't give me much confidence in the rest of their architectural choices. Maybe this inefficiency was inherited when they forked Emby, so in that case redirect my rant toward Emby :-)
Another issue with Jellyfin is it is incapable of DTS 5.1 passthrough. DTS stereo passthrough works. Dolby 5.1 passthrough works. But not DTS 5.1 passthrough. At least on GCCWGTV. That boggles my mind, given DTS 5.1 is so ubiquitous. So because Jellyfin doesn't do DTS 5.1 passthrough, I must transcode to stereo. And because it must transcode the audio, it must also transcode the video (see above), taxing heavily my server CPU whenever it's playing media.
I have also experimented with Kodi. Something in the scrapers breaks every 6 months. And for everyone who knows the scrapers are primordial in a nice user experience in Kodi. But for some reason, in Kodi, scrapers are not first-party components. They are third-party poorly-maintained junk that seems developed by random people exchanging source code patches on the kodi web forums. Like the Universal Movie Scraper code trying to pull the movie title and description and actors from IMDB. Guess how this is implemented? By some hot garbage of XML file hundreds of lines long, containing regexes that have to be entity-encoded by hand when edited. What is this? The 2000s? I get it, that IMDB disallows "scraping" in their ToS, so Kodi doesn't want to include scraping code in their codebase, but that doesn't justify the low code quality found in scrapers. Use an actual language (Python, C#, anything) with an HTML parsing library, not some junk regexes.
I hate to sound so negative, in the end I'm still grateful for these apps which are open source and free, developed by unpaid volunteers. So, thanks, but man, I get frustrated with low code quality.
- deleted 3y ago[deleted]
- hotnfresh 3y agoNot sure about code quality (what I’ve seen of Jellyfin seems fine-ish?) but I can attest that I tried probably a half-dozen times over a span of years (from when it was still XBMC, up to about 3-4 years ago) to use Kodi, and I don’t think my watching:screwing-with-the-system ratio ever got much better than 1:1, and nobody else around would use it, after perhaps a tentative and disastrous initial attempt. I’ve been using Jellyfin for about three years. Spouse, kids, and friends use it without difficulty. My watching:working ratio is probably like 50:1 (mine personally, not combined for all users) or better, and I don’t do it all on easy mode (I’m including time learning and administrating ZFS pools, for instance)
- mrb 3y agoI agree, Kodi requires constant maintenance and tweaking. Jellyfin seems better overall(?) But I'm really frustrated with this transcoding issue. Or the fact it's incapable of DTS 5.1 passthrough on GCCWGTV (even their site https://jellyfin.org/docs/general/clients/codec-support/ https://jellyfin.org/docs/general/clients/codec-support/ says Jellyfin has been tested with DTS mono only, not DTS 5.1).
- hotnfresh 3y agoI do kinda cheat by ensuring I never need to transcode. Clients are AppleTV or iOS devices, mostly, and support every video or audio codec I’ve got. My server’s too weak to transcode more than about DVD resolution videos at live-video speeds, is why I have to do it that way.
- mrb 3y agoDo you have media with DTS (not Dolby) 5.1 audio tracks, and can Jellyfin pass it through from the AppleTV to your TV or A/V receiver?