jellyfin / jellyfin-androidtv

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

android client side decode #1776

Open nie11kun opened 2 years ago

nie11kun commented 2 years ago

Describe the feature you'd like

hi, recently i installed jellyfin server on ubuntu, and for some reason i can't setting hardware transcode, because GPU is inaccessible. i installed jellyfin client on my android tv, for 4K video it's lagging much and cpu usage is up to 95%, so if there's any method to make server side stream directly to client?

MovieWiz commented 2 years ago

I'm able to do this on my FireSticks by disabling the allow transcoding/remuxing for the user on the server options. This worked great for me when using the 10.7 Jellyfin server (Windows). However, this strategy no longer worked when I upgraded to 10.8, In fact, I was unable to find a way at all to play Hevc Main10 video to my 1080p TV reliably. So I went back to using the 10.7 server and 12.3 AndroidTV app. With that combination, my FireSticks are able to direct play pretty much all the formats I have.

My main FIreStick is connected to my AV receiver. So my sound (pretty much always AC3 or EAC3) passes through to the receiver. Video formats are pretty much always either MPEG2 (recorded TV), h264 or x265. The firestick can decode and play both the 8bit and 10bit color variants of h264 and h265. My server almost never needs to transcode (just one older TV series in an older/unusual video format).

nie11kun commented 2 years ago

I'm able to do this on my FireSticks by disabling the allow transcoding/remuxing for the user on the server options.

i haven't found those options in setting. i am using docker version on ubuntu server. both 10.7 and 10.8.

MovieWiz commented 2 years ago

On the Windows server, I go to the Dashboard. "Users" appears two lines below Dashboard on the left bar. Click Users and then pick the user for which you want to disable transcoding. On the settings for the user, under "Media Playback", I hope you see:

Media playback: Allow media playback Allow audio playback that requires transcoding Allow video playback that requires transcoding Allow video playback that requires conversion without re-encoding Force transcoding of remote media sources such as Live TV

I turn off the two transcoding options and also turn off "Allow video playback that requires conversion without re-encoding". Basically, this makes my server just serve the files to my clients and it's up to the clients to decode/play them. I created a 2nd user with these options turned on for the rare occasion that transcoding is required -- so far, I've only found one old tv series where that is necessary.

As I said, this approach works fantastically for me but, unfortunately, no longer works with the 10.8 server. It seems that there is more checking/negotiation between client/server in 10.8 and the server incorrectly decides NOPE. that format is not valid and I'm not sending it. So, obviously, I much prefer the "Hey client, you figure it out" approach in 10.7.

nie11kun commented 2 years ago

On the Windows server, I go to the Dashboard. "Users" appears two lines below Dashboard on the left bar. Click Users and then pick the user for which you want to disable transcoding. On the settings for the user, under "Media Playback", I hope you see:

Media playback: Allow media playback Allow audio playback that requires transcoding Allow video playback that requires transcoding Allow video playback that requires conversion without re-encoding Force transcoding of remote media sources such as Live TV

I turn off the two transcoding options and also turn off "Allow video playback that requires conversion without re-encoding". Basically, this makes my server just serve the files to my clients and it's up to the clients to decode/play them. I created a 2nd user with these options turned on for the rare occasion that transcoding is required -- so far, I've only found one old tv series where that is necessary.

As I said, this approach works fantastically for me but, unfortunately, no longer works with the 10.8 server. It seems that there is more checking/negotiation between client/server in 10.8 and the server incorrectly decides NOPE. that format is not valid and I'm not sending it. So, obviously, I much prefer the "Hey client, you figure it out" approach in 10.7.

thanks for your help, i test on 10.8 and get error when play 10bit h.265 videos. h264 videos working fine but DTS audio has no sound. i will downgrade to 10.7 and test again.