jarnedemeulemeester / findroid

Third-party native Jellyfin Android app
GNU General Public License v3.0
2.5k stars 153 forks source link

External audio track(s) of one video is missing #249

Open MeguMario opened 1 year ago

MeguMario commented 1 year ago

Describe the bug To put it simply, Findroid did not detect if that video (movie or TV show) has external audio track(s) at all and render those track(s) unselectable.

To Reproduce Steps to reproduce the behavior:

  1. Play any TV Show or Movie that has external audio track
  2. Click on the speaker to change tracks
  3. See error

Expected behavior See option to switch to external audio tracks (see below)

Screenshots Jellyfin for Android (and Web browser) Screenshot_20230127-194439_Jellyfin Findroid (MPV) Screenshot_20230127-194337_Findroid Findroid (exoplayer) Screenshot_20230127-200339_Findroid

Device info (please complete the following information):

Additional context I know I can remux those files into one but i would rather not do that for my entire library.

jarnedemeulemeester commented 1 year ago

Oh external audio tracks are a thing, I didn't know haha :sweat_smile: I will take a look at this soon

jarnedemeulemeester commented 1 year ago

Could you check if the external audio tracks show up in ExoPlayer in the official Jellyfin app? I have a feeling they are only supported in the web player. I may be able to add them to mpv in a pretty ugly way (code). But I'm unsure about ExoPlayer.

MeguMario commented 1 year ago

Could you check if the external audio tracks show up in ExoPlayer in the official Jellyfin app? I have a feeling they are only supported in the web player. I may be able to add them to mpv in a pretty ugly way (code). But I'm unsure about ExoPlayer.

Sure enough. It still showed up tho. Screenshot_20230128-083416_Jellyfin

jarnedemeulemeester commented 1 year ago

Okay I'll take a look at how the official app implements it thanks!

jarnedemeulemeester commented 1 year ago

I think that the server is remuxing the external audio tracks inside the container. @MeguMario Could you verify that for me? You should be able to see that when pressing the little info icon in the player (or in the server dashboard)

MeguMario commented 1 year ago

I think that the server is remuxing the external audio tracks inside the container. @MeguMario Could you verify that for me? You should be able to see that when pressing the little info icon in the player (or in the server dashboard)

Sure enough, here you go

Web player (Jellyfin Android) - Transcode audio but direct playing video: image

exoplayer (Jellyfin Android) - Transcode video but direct playing audio(??): image

As a bonus, here some more screenshot on other clients & platforms, for reference:

Google Chrome on Android (same as the Android client, should be expected) image

Windows client (mpv) - Properly remuxing the container: image

jarnedemeulemeester commented 1 year ago

Okay I see, thanks for all the screenshots!

Right now Findroid requests the file directly, no transcoding or remuxing. To support external audio tracks I will first need to add support for transcoding and remuxing. And that's already on the do-to list :)