Jellyfin Forum
Implement true 'Direct Play' when using 'External Player' to reduce network routing - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: Implement true 'Direct Play' when using 'External Player' to reduce network routing (/t-implement-true-direct-play-when-using-external-player-to-reduce-network-routing)

Pages: 1 2 3 4


RE: Implement true 'Direct Play' when using 'External Player' to reduce network routing - zaudio - 2023-10-13

Personally I want to be able to use the Jellyfin client. It is well designed, simple to use, and so easy to set up on various devices.
I read various blogs where there are performance issues discussed relating to streaming on networks. In my opinion adding this option to the Jellyfin Android TV client would add another tool to help with such problems; it would help me for sure!


RE: Implement true 'Direct Play' when using 'External Player' to reduce network routing - zaudio - 2023-10-13

(2023-10-13, 12:07 AM)mcarlton00 Wrote: This feature already exists in the jellyfn-kodi addon.  It's called native mode.  On the Kodi side, we all genuinely hate that it exists, and any issues that come in related to it usually wind up sitting for a while because nobody wants to deal with it.  I would guess that most of the other client devs aren't particularly interested in implementing it.

Ignoring whether they want to, most other clients can't make use of this feature.  As far as I know, the native android tv player cannot, so now it only works with a third party app that we don't control.  And each external app has it's own quirks and requires special code handling them.  Maybe some of them support NFS but not SMB, or vice versa.  Same with android (mobile).  Basically impossible on iOS.  Impossible on Roku.  Impossible in a browser.  So by definition, it's an extremely niche feature that is only functional in a very small minority of cases, and in 95% of use cases where people are already using native mode in the kodi addon it's completely pointless and provides no benefit over normal http streaming.  Basically the only cases where it would be even remotely useful is if the storage is local and the server is remote (on a VPS or something), or when the network is being a potato and can't keep up (what sounds like is happening here).  My guess is that your NAS simply doesn't have the power necessary to process that data being transmitted fast enough, which is unfortunately one of the side effects of using a NAS as a server.

hmm... I have something else to try. I had my Docker managing resources for my Jellyfin container. I'll try it tonight with manually allocating High CPU and 2Gb of RAM. I had thought with direct play it did not need much (indeed container resource monitor shows only about 3% cpu during playback); but maybe these occasional glitches I get will go away with forced higher resources. Do we know if the server buffers much data for the direct play stream it provides ? I am assuming it is doing something to provide the http steam...


RE: Implement true 'Direct Play' when using 'External Player' to reduce network routing - zaudio - 2023-10-16

(2023-10-13, 06:41 PM)zaudio Wrote: hmm... I have something else to try. I had my Docker managing resources for my Jellyfin container. I'll try it tonight with manually allocating High CPU and 2Gb of RAM. I had thought with direct play it did not need much (indeed container resource monitor shows only about 3% cpu during playback); but maybe these occasional glitches I get will go away with forced higher resources. Do we know if the server buffers much data for the direct play stream it provides ? I am assuming it is doing something to provide the http steam...

I have exhausted every option to try... nothing helped. Increasing ram allocation did not help.
So I still think a true Direct play option that would just pass the actual network share path to the external player would be a great idea, and a huge benefit to me. I just cannot play higher bit rate movies using Jellyfin from my external shares without interruptions. So annoying!
Developers, please strongly consider adding this feature; it looks like that was always the intent anyway.


RE: Implement true 'Direct Play' when using 'External Player' to reduce network routing - TheDreadPirate - 2023-10-16

Check out this person's post.

https://forum.jellyfin.org/t-solved-directplay-directstream-constant-buffering?pid=6000#pid6000

Sounds a bit like yours. They had to make a config change on their server hosting the SMB share.

https://askubuntu.com/questions/1163520/find-extremely-slow-on-cifs-share


RE: Implement true 'Direct Play' when using 'External Player' to reduce network routing - zaudio - 2023-10-17

(2023-10-16, 04:21 PM)TheDreadPirate Wrote: Check out this person's post.

https://forum.jellyfin.org/t-solved-directplay-directstream-constant-buffering?pid=6000#pid6000

Sounds a bit like yours.  They had to make a config change on their server hosting the SMB share.

https://askubuntu.com/questions/1163520/find-extremely-slow-on-cifs-share

hmmm interesting. Checking the output from 'mount' in my debian terminal for the Jellyfin server container, my cifs shares report as cache=strict. I'll have to see if I can edit what got setup in there to make that loose and see if it helps. Certainly something else to try! Hopefully I can mod this, as those shares must have been copied over from the Synology mount points... i guess that is how Jellyfin makes use of them.


RE: Implement true 'Direct Play' when using 'External Player' to reduce network routing - zaudio - 2023-10-17

So far no luck figuring out if and where I can edit settings for the CIFS mounts created my Synology filestation and utilized by the Jellyfin docker container... poking around in etc conf files failed to find where they are set up. I can see Debian (Jellyfin container) reporting the mounts if I type
mount
in the bash terminal...
but etc/fstab does not have these mounts... it just has a comment about the base system.
I'm lost for now... kind of wanted to change this... but only at the debian container level, as that just reads the shares. Any idea how to do that?


RE: Implement true 'Direct Play' when using 'External Player' to reduce network routing - TheDreadPirate - 2023-10-17

The user for the post I linked had their network share hosted on a Linux machine and that is where they made the change.

You would need to look on your Synology for any SMB/CIFS configs you can change. Not on the system mounting the share.


RE: Implement true 'Direct Play' when using 'External Player' to reduce network routing - Deleted User - 2023-10-17

here's a thought

if smb/cifs is limited to v1 when served by synology
+ and you can direct mount drives to a docker on that same synology
+ and jellyfin is running in docker on that synology
+ and jellyfin's container is ubuntu

what would prevent you from installing samba in the jf container and having smbv2,v3 or at minimum be able to change that config you are trying to


RE: Implement true 'Direct Play' when using 'External Player' to reduce network routing - zaudio - 2023-10-17

The container is Debian... so ubuntu. Not sure about your first '+'; do you mean direct mount within the Docker?
I believe CIFS is always SMB1... on contacting Synology about improving the protocol they never suggested anything else.
I've looked in the jf container for configs I could change... nothing has those shares it uses... they must be copied over somehow via the container configuration that has them, and all that config does is point to the Synology mounted shares...
It might be possible to install samba in the container and set up new mounts, and then use those for jf.... unsure how to actually do that and make it 'stick' across reboots of the container and even upgrades of the container. For the later I have to do everything via the container config files... how would I set up samba, and mount it as required in there? I've searched for links on how to do this already, but it's hard to find anything promising


RE: Implement true 'Direct Play' when using 'External Player' to reduce network routing - Deleted User - 2023-10-17

yes cifs is v1 but i dont see the requirement on android

you have synology hosting docker, in a container there is jellyfin, jellyfin tells the client to open smb://file

then jellyfin androidtv on shield opens external player with smb://host/file

there shouldn't be a requirement for cifs in that chain

what i was thinking is hosting samba inside a container, jellyfin or a new one, and disabling the lower version that synology has

then you wouldn't be stuck on an older version