jellyfin / jellyfin-androidtv

Android TV Client for Jellyfin
https://jellyfin.org
GNU General Public License v2.0
2.83k stars 481 forks source link

Force "direct play" in client #494

Open greymda opened 4 years ago

greymda commented 4 years ago

Describe the feature you'd like i would like an option in CLIENT settings to force direct play of media files. Additional context
Forcing meaning even if it's not possible, to get an error rather than automatically switching to transcoding.

alex9099 commented 4 years ago

What would be the use for this? If the client can't playback the video/audio/subtitles why not let it transcode?

viggy96 commented 4 years ago

This would be very useful for playback of HDR content, since the codecs that the Android TV app deems as "transcoding required" is hardcoded into the app at present. Until this logic is reworked, an option to force direct playback would allow playback of HDR content without having to constantly turn on and off transcoding for a user.

ErikUden commented 3 years ago

I would like this too! I have a great bandwidth but a very bad GPU (integrated). If I could just do direct play, then I could play the files without any issues.

nielsvanvelzen commented 3 years ago

Forcing direct play will not magically have all media work on the device. There is a reason it transcodes.

ErikUden commented 3 years ago

If I access the shared SMB drives and play my files with the VLC Media Player, even on my phone, they all play. I know this needs to be decided on a case-to-case basis, but I'd still find the feature important. Jellyfin has, in my opinion, the best media sorting and previewing any service has. The feature that allows me to edit metadata and also lets me insert IMDB IDs etc. is the best. I'd mostly just like my media to be sorted to get the streaming service experience, the cross-platform capability through transcoding is awesome, but in my opinion only needed in some cases.

build3r commented 3 years ago

We can always use an external media player as VLC which handle most of the media. Currently the client transcodes even when the external player can handle directplay. This leads to unnecessary load on server.

tuky commented 3 years ago

Currently the client transcodes even when the external player can handle directplay.

(How) can this be confirmed? I also have the feeling, that the server is too quick in deciding to transcode unnecessarily.

viggy96 commented 3 years ago

@tuky In the case of the Android TV app, the codecs that "require transcoding" are hardcoded into the app, so its not the server that decides. The app doesn't check what codecs the device is capable of handling. Actually, I don't believe the server ever decides when to transcode, its up to the client to ask the server to transcode.

Anyway, this behavior is eventually going to be reworked in the Android TV app.

ocervell commented 3 years ago

For local hosts (same network as the streaming device), this is a must. Personally I want to direct play files when playing on local hosts (if the device is compatible of course), and transcode when using remote hosts, when I'm travelling or abroad.

Ky-0 commented 2 years ago

+1 for this

I have tested and found the same issues whereby JF transcodes even when not required, tried multiple settings and the only way of enforcing direct play currently is to use external media player like VLC (which wont transcode unlike the JF libVLC) or the bodgy way I have done it is to prevent the user from transcoding media - this will enforce a direct play.

rikonor commented 2 years ago

Is this difficult to do from an implementation standpoint? This to me appears like a great feature to have as it allows ensuring that you're playing what you intended to play. If there's some concern about it being difficult for average users to grok, I could see this being hidden behind some "Advanced" flag in the settings, but either way, if it's feasible to implement, I don't understand why it shouldn't be.

vbaros commented 2 years ago

This feature is highly desirable when you have your movies in NFS paths. I've set up all my libraries like that. In return it creates much less strain on the hosting system instead of having Jellyfin server pass the path over http. That's the way Kodi plugin works and it works beautifully.

GlassedSilver commented 2 years ago

This morning my JF app on Android decided that suddenly my Tab S7+ isn't capable of direct playing 1080p HEVC content anymore that it had been playing fine for weeks now.

I noticed it got transcoded because after some minutes the video would freeze and idle with a loading circle.

My server is quite beefy, even with software encoding it should be capable to transcode, the issue is the quality loss, unnecessary power consumption and the freezing.

If I could ad hoc force direct play rather than setting a setting to disallow myself to transcode which I bet I'll have forgotten about by the time I actually need transcoding on another client, maybe not even one of my own devices... Yeah, well that would be cool. :)

physicalit commented 1 year ago

i understand the need for transcoding, but for my case i also want do disable it. I head disable it from Profile, and if i use lcoal ip it playes with direct play and if i use my domain that is external pointend to my external ip, it forces to transcode.. and can't find a way to disable this..

This should really be a user decision not something hardcoded..

mastan30 commented 1 year ago

Looking if there is a option we can directly stream and stop transcoding, For kodi direct stream works seamlessly on an Android device.

luifrancisco commented 1 year ago

Also interested in this feature. I sometimes get stuttering issues (getting this on Android TV) due to unnecessary transcoding, and when I play the file directly from other players like Kodi, playback works perfectly. Hope this reaches production.

passio777x commented 1 year ago

I have been looking for this solution for many years! Except for Infuse on iOS, it is absolutely impossible to use a decent media player with a media center (metadata reader/scraper). Plex, Ember, Jellyfin, all of them use unnecessary transcoding, wasting energy and computational power. We simply want a media player that can read and sort videos... But there is nothing on iOS or tvOS that can do it properly, except Infuse... Now it costs $100 for a lifetime subscription... I don't understand why Plex, Jellyfin, or others can't offer a PLAY DIRECT mode without transcoding. Trust me, when I play a 4K film hosted on my Odroid, the resource power consumption reaches 110% after 2 minutes... But, if I open it with Infuse (that I paid $1 for 1 month actually), it works perfectly... It also works perfectly on Kodi on tvOS... on my jailbroken Apple TV (that I can't reboot without losing the jailbreak)... Open Source Media center with DIRECT PLAY is the big missing thing on the apple OS.

TroyDL commented 9 months ago

Any update on this? I think this is still something a lot of us would like to see.

da-anda commented 8 months ago

I would also welcome this. Currently, even though I could play back the file in KODI just fine (as external player), the app won't let me play it because it can't handle it itself and I have disabled transcoding (because JF is running on a RPI). So I also would welcome to be able to force direct playback, along with a setting to entirely ignore evaluation if the file can be played when the default player is set to external (app can not know what the external player can handle, so just forward everything)