jellyfin / jellyfin-webos

WebOS Client for Jellyfin
https://jellyfin.org
Mozilla Public License 2.0
647 stars 68 forks source link

WebOS app plays wrong audio language stream #118

Closed dewijones92 closed 1 year ago

dewijones92 commented 1 year ago

Hello
First I need to thank the devs for such an amazing app :) I do however have a problem I have a cat video that contains 2 audio streams - English and french The TV always plays the French audio stream - despite choosing English. FYI I don't encounter this on my Android phone client - which leads me to think it's a bug with the WebOS Jellyfin app?

Server logs

[07:25:13] [INF] [48] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app Jellyfin Web 10.8.5 playing The cat_video. Stopped at 693035 ms
[07:25:17] [INF] [82] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for dewi. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[07:25:17] [INF] [82] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile=Anonymous Profile, Path=/data/movies/The.cat_video.2009.2160p.HDR.WEBRip.TrueHD.5.1.x265-GASMASK/The.cat_video.2009.2160p.HDR.WEBRip.TrueHD.5.1.x265-GASMASK.mkv, AudioStreamIndex=1, SubtitleStreamIndex=-1 ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) media:/videos/9f692eda-a606-1c8f-8ef2-aad75fcaeeeb/stream.mkv?MediaSourceId=9f692edaa6061c8f8ef2aad75fcaeeeb&Static=true&VideoCodec=hevc&AudioCodec=truehd&AudioStreamIndex=1&api_key=<token>&SubtitleMethod=Encode&Tag=24b91ee6969527236c579606c97c44e1

ffprobe

ffprobe version 4.3.4-0+deb11u1+rpt3 Copyright (c) 2007-2021 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/usr --extra-version=0+deb11u1+rpt3 --toolchain=hardened --incdir=/usr/include/aarch64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-mmal --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --enable-sand --libdir=/usr/lib/aarch64-linux-gnu --arch=arm64 --enable-pocketsphinx --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
[matroska,webm @ 0x559249d890] Could not find codec parameters for stream 3 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x559249d890] Could not find codec parameters for stream 4 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, matroska,webm, from 'The.cat_video.2009.2160p.HDR.WEBRip.TrueHD.5.1.x265-GASMASK.mkv':
  Metadata:
    encoder         : libebml v1.3.6 + libmatroska v1.4.9
    creation_time   : 2015-03-12T01:57:27.000000Z
  Duration: 01:39:42.73, start: 0.000000, bitrate: 28443 kb/s
    Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x1600 [SAR 1:1 DAR 12:5], 23.98 fps, 23.98 tbr, 1k tbn, 23.98 tbc (default)
    Metadata:
      BPS-eng         : 26327805
      DURATION-eng    : 01:39:42.727000000
      NUMBER_OF_FRAMES-eng: 143442
      NUMBER_OF_BYTES-eng: 19689008963
      _STATISTICS_WRITING_APP-eng: mkvmerge v27.0.0 ('Metropolis') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2015-03-12 01:57:27
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
    Stream #0:1(eng): Audio: truehd, 48000 Hz, 5.1(side), s32 (24 bit) (default)
    Metadata:
      BPS-eng         : 1375217
      DURATION-eng    : 01:39:41.666000000
      NUMBER_OF_FRAMES-eng: 7177856
      NUMBER_OF_BYTES-eng: 1028261788
      _STATISTICS_WRITING_APP-eng: mkvmerge v27.0.0 ('Metropolis') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2015-03-12 01:57:27
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
    Stream #0:2(fre): Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s
    Metadata:
      title           : VFQ
      BPS-eng         : 640000
      DURATION-eng    : 01:39:41.664000000
      NUMBER_OF_FRAMES-eng: 186927
      NUMBER_OF_BYTES-eng: 478533120
      _STATISTICS_WRITING_APP-eng: mkvmerge v27.0.0 ('Metropolis') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2015-03-12 01:57:27
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
    Stream #0:3(eng): Subtitle: hdmv_pgs_subtitle
    Metadata:
      BPS-eng         : 46532
      DURATION-eng    : 01:39:03.229000000
      NUMBER_OF_FRAMES-eng: 3306
      NUMBER_OF_BYTES-eng: 34569438
      _STATISTICS_WRITING_APP-eng: mkvmerge v27.0.0 ('Metropolis') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2015-03-12 01:57:27
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
    Stream #0:4(fre): Subtitle: hdmv_pgs_subtitle
    Metadata:
      BPS-eng         : 31331
      DURATION-eng    : 01:38:54.345000000
      NUMBER_OF_FRAMES-eng: 3016
      NUMBER_OF_BYTES-eng: 23241331
      _STATISTICS_WRITING_APP-eng: mkvmerge v27.0.0 ('Metropolis') 64-bit
      _STATISTICS_WRITING_DATE_UTC-eng: 2015-03-12 01:57:27
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES

jellyfin version

"Entrypoint": [
    "/init"
],
"OnBuild": null,
"Labels": {
    "build_version": "Linuxserver.io version:- 10.8.5-1-ls183 Build-date:- 2022-10-20T06:07:49+02:00",
    "com.docker.compose.config-hash": "db1d5a1256976ab08294438e5753b8290ed2ac85c9b32456538ac983772eb2fd",
    "com.docker.compose.container-number": "1",
    "com.docker.compose.oneoff": "False",
    "com.docker.compose.project": "bin",
    "com.docker.compose.project.config_files": "docker-compose.yml",
    "com.docker.compose.project.working_dir": "/home/pi/code/dot-files/serverconfig/code/server_docker/bin",
    "com.docker.compose.service": "jellyfin",
    "com.docker.compose.version": "1.29.2",
    "maintainer": "thelamer",
    "org.opencontainers.image.authors": "linuxserver.io",
    "org.opencontainers.image.created": "2022-10-20T06:07:49+02:00",
    "org.opencontainers.image.description": "[Jellyfin](https://jellyfin.github.io/) is a Free Software Media System that puts you in control of managing and streaming your media. It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps. Jellyfin is descended from Emby's 3.5.2 release and ported to the .NET Core framework to enable full cross-platform support. There are no strings attached, no premium licenses or features, and no hidden agendas: just a team who want to build something better and work together to achieve it.",
    "org.opencontainers.image.documentation": "https://docs.linuxserver.io/images/docker-jellyfin",

    "org.opencontainers.image.revision": "59e1abd8f1f73b5d13829f853f3e1d2e2b427c05",
    "org.opencontainers.image.source": "https://github.com/linuxserver/docker-jellyfin",
    "org.opencontainers.image.title": "Jellyfin",
    "org.opencontainers.image.url": "https://github.com/linuxserver/docker-jellyfin/packages",
    "org.opencontainers.image.vendor": "linuxserver.io",
    "org.opencontainers.image.version": "10.8.5-1-ls183"
}

workSettings": {
"Bridge": "",
"SandboxID": "c9007d05f9bb71b0645c42b5c005180b85256ce42d18c8ddfe3f6a7925f17829",
anthonylavado commented 1 year ago

Does it work on the computer if you try in browser? I think this is something we have solved on the next version of the web interface/server, where we send the wrong track index (it's off by one).

dewijones92 commented 1 year ago

@anthonylavado my ras pi is far too slow to encode it - required to play on firefox. Sorry It's work correctly on my jellyfin android app - plays the correct language

tomikaka22 commented 1 year ago

Same issue as mine: #85

andreastheodor commented 1 year ago

I experience the same problem on the most recent version on WebOS. Even in spite of me manually changing the audio and subtitle track to a different language.

tomikaka22 commented 1 year ago

Does it work on the computer if you try in browser? I think this is something we have solved on the next version of the web interface/server, where we send the wrong track index (it's off by one).

https://github.com/jellyfin/jellyfin/pull/8298 Is this the PR that solves it?

EDIT: From the looks of it no. Updated to the latest version and still no change.

dewijones92 commented 1 year ago

Does it work on the computer if you try in browser? I think this is something we have solved on the next version of the web interface/server, where we send the wrong track index (it's off by one).

jellyfin/jellyfin#8298 Is this the PR that solves it?

EDIT: From the looks of it no. Updated to the latest version and still no change.

@tomikaka22 I think it is a webos client issue rather than a server side issue. As my android jellyfin client works correctly

tomikaka22 commented 1 year ago

The WebOS client is a wrapper around the webUI. The android client is it's own thing with a separate codebase, and separate developers.

@anthonylavado mentioned in #85 too, that something is wrong with the track indexes, and that it'll be fixed with an update to the webUI (Which WebOS is also using).

Andrea3000 commented 1 year ago

As far as I know, in WebOS 3.x and below the WebOS player can only reproduce the first audio track of a media file. If the file is re-muxed (because of incompatible container, for example) only the chosen audio track is included in the media stream and track selection works fine. However, for direct stream, the player reproduces always the first track, no matter which one gets selected before or during the playback. Could this be the issue you are seing?

With Emby, if the client is WebOS and the user selects an audio track that isn’t the first, the stream gets re-muxed instead of directly streamed. Is it possible to implement the same in Jellyfin?

Otako77 commented 1 year ago

I have the same problem on my C1 playing 4K HDR directly. Reported to Jellyfin Bug Report.

https://github.com/jellyfin/jellyfin/issues/8769

Eniff commented 1 year ago

I have same problem on C1 with dolby tracks

Otako77 commented 1 year ago

Everything works fine using WebOS Browser on my C1. HEVC is playing directly and Dolby Atmos is transcoded to AAC. Perfekt. I donnot use Jellyfin App anymore.

image image

Sh4d commented 1 year ago

I'm running into this on 10.8.9, it shows playing the default audio track but instead I always get some other language.

Only way ive found around it is turning on subtitles. This seems to work every time.

Cyberbeni commented 1 year ago

I just installed Jellyfin on my webOS 4 TV and happened to me with one specific show where the audio I wanted was DTS, so I just added supportsDts: false here and it seems to be working fine now.

It seems like jellyfin-web is only saying not supported on webOS 5+: source code

This might be totally unrelated to DTS support as I think there would be no audio otherwise.

Other shows/movies that have been digitalized with a different configuration, using a different audio codec and they seem to be working fine.

dmitrylyzo commented 1 year ago

This might be totally unrelated to DTS support as I think there would be no audio otherwise.

From observation, if the first audio track is selected, Jellyfin plays the first supported one. So if the first one is not supported, you could hear the second one.

I just installed Jellyfin on my webOS 4 TV

Self-built? AFAIK, we don't have a webOS 4 app in the store.

tomikaka22 commented 1 year ago

I think it still happens regardless of DTS support.

There's a script that enables regular DTS files to be down mixed to stereo and be output to the speakers. For this reason I have a fork of Jellyfin-web that disables the WebOS 5+ check, and it still sometimes switches up the audio tracks.

Cyberbeni commented 1 year ago

I just installed Jellyfin on my webOS 4 TV

Self-built? AFAIK, we don't have a webOS 4 app in the store.

At first I installed the one that dev manager offers by default then self built after I modified it.

Edit: it's a 32LM6300PLA, which should have DTS support according to LG's site.

colemar commented 1 year ago

I can confirm this issue is still present with Jellyifin app version 1.1.2 on WebOS 5.4.2-2601. No problem using WebOS browser. No problem using Edge browser on Windows.

fgardt commented 9 months ago

I experienced the same issue on a LG OLED55A19LA. But I can reproduce it using the WebOS browser aswell!

Seems like its an issue with direct media playback since as soon as I get Jellyfin to start transcoding the content the issue is no longer existent (which makes sense since only the selected audio track will be kept when transcoding). I could not reproduce it yet on any other device since all of them require transcoding right now and getting anything to direct play is surprisingly difficult.

Jellyfin Server: 10.8.13 Jellyfin WebOS App: ? not sure, installed from WebOS Appstore on 2. Jan 2024 WebOS: not sure where I can find it, TV says Software Version 03.40.70 (nothing about a WebOS version anywhere)

Ge082 commented 3 months ago

I have the same issue on a LG Oled C2 using the latest 1.2.2 version of Jellyfin. Thing is, there is the exact same issue on Emby so there's a flaw somewhere when indexing the audio track