Jellyfin Forum
Universal 'force direct play' setting - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Development (https://forum.jellyfin.org/f-development)
+--- Forum: Client Development (https://forum.jellyfin.org/f-client-development)
+---- Forum: Roku Development (https://forum.jellyfin.org/f-roku-development)
+---- Thread: Universal 'force direct play' setting (/t-universal-force-direct-play-setting)



Universal 'force direct play' setting - oopsmybad - 2023-12-21

Is it possible to add a universal feature to force direct play in every circumstance? I.e., something like Settings / Playback / Direct Play / Force Direct Play = Enable/Disabled?

Here's the reason I ask: I have an Atmos/DTS-X capable receiver with 5.1 speakers. If I try to play a movie with 'TrueHD Atmos 7.1' audio, Jellyfin will transcode that into 6 channel AAC, and I lose my Atmos/DTS-X. (That's if it works at all. A lot of times, the stream crashes and Jellyfin app returns to the movies page immediately without an on-screen error, and without any obvious errors in the log_* and ffmpeg logfiles.)

On the other hand, if the 7.1 audio was passed through, my receiver would downmix it to 5.1 and preserve the Atmos/DTS-X features. This is what Plex does if I try to play the same movie there. And if I don't want to use Plex (and I don't), the only other way I've found to 'direct play' media like this is to use the 'Roku Media Player' app with a (non-Jellyfin) DNLA server.

And that works, but I'd rather have all my media playable with full-features in Jellyfin. While I can keep all the file locations and permutations straight in my own head, other members of my family have no interest in anything other than hitting a 'play' button and getting the best possible experience.

A universal 'force direct play' feature would also simplify the video aspects of playing a remux. I have to enable mpeg-2 direct play, then disable the maximum bandwidth setting to keep the video from being transcoded. It would be simplier to just have one setting that always forces direct play.

The last thing I would mention is that my living room setup (where 'force direct play' would be used) can and will support all possible video and audio formats, and bypassing the transcoding logic completely can help me avoid any unintentional issues/bugs in the future related to that logic in the Jellyfin app.

Thanks for the consideration!


RE: Universal 'force direct play' setting - TheDreadPirate - 2023-12-21

Does the Roku client have a setting to passthrough Dolby and DTS? I don't have a Roku to check, but the Android TV client has those settings.


RE: Universal 'force direct play' setting - oopsmybad - 2023-12-21

(2023-12-21, 06:40 PM)TheDreadPirate Wrote: Does the Roku client have a setting to passthrough Dolby and DTS?  I don't have a Roku to check, but the Android TV client has those settings.

Unfortunately, no. In the Jellyfin 2.0.0 Roku client, the only audio-related setting I see is:

"Force all transcodes to use DTS instead of EAC3" = (Enabled/Disabled)

My receiver supports DTS, and with this set to 'enabled', FFmpeg still streams the audio in AAC... i.e.:

Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (truehd (native) -> aac (libfdk_aac))

And I also have an Atmos-only (non DTS) receiver in my game room, and even if this 'transcode to DTS' feature worked properly (not sure that it does?), the 'force transcodes to DTS' wouldn't apply in that setup.

If there was an audio passthrough feature (like you describe) in the Roku client, that would also work - though I'd still vote for a global 'direct play' feature too as I would like to direct play all the video streams in every case.


RE: Universal 'force direct play' setting - zlane - 2023-12-21

I agree, I have a similar challenge where on Android TV (Sony X80K) it appears my TV always transcodes TrueHD audio to AAC (which my sound bar confirms that this audio is no longer atmos although the source it, and a similar thing appears to happen when I use Kodi or VLC, transcoding to AAC rather than passing through) like you're mentioned and during the process this loses atmos. Is this intended? Just of note I have both bitstream audio settings selected.

Any help on this would be greatly appreciated as a force direct stream would be great because even the bitstream settings aren't working for me apparently.

EDIT: Starting to believe this may be an issue related to Sony TVs apparently because Atmos works fine on streaming services and is recognized by my soundbar however perhaps the passthrough on my Sony tv is not functioning properly


RE: Universal 'force direct play' setting - neil - 2023-12-21

The Roku client queries the number of channels available from the Roku OS. If your receiver is reporting 8 (for 7.1) the that’s what’s passed to the server, and assuming the codecs are supported it will be passed through without transcoding.

It’s possible that your receiver is not reporting the correct information to the Roku OS, or something else has gone wrong.

It would be possible to override what’s Roku reported to us within the user settings. And even allow the user to select what codecs their receiver supports rather than relying on the reported support.  Plenty of opportunity for a user to mess things up and get no sound with that, however - so if it was implemented I suspect it would have to go under an advanced option.