jellyfin / jellyfin-webos

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

LG G3 playing the incorrect audio tracks #240

Open POD319 opened 1 month ago

POD319 commented 1 month ago

I have an LG C1 and an LG G3, oddly the G3 is playing incorrect audio tracks at times. The settings, including fMP4 are all identical that I've found.

However, the G3 will not play the same audio tracks that the C1 does. For example, a Dolby Digital track (#2 in the list of 4), is playing track #3 -- a commentary track. On the LG C1, the correct Dolby Digital track plays.

I am on the latest version, both devices use the web player through my local network and are accessing the same video source. Please let me know what else I can provide to help.

dmitrylyzo commented 1 month ago

I suppose, this only happens when video is direct playing, right? If so, it is because the first track is unsupported but was not skipped during enumeration on the client.

Could you provide full media info of file?

POD319 commented 1 month ago

I suppose, this only happens when video is direct playing, right? If so, it is because the first track is unsupported but was not skipped during enumeration on the client.

Could you provide full media info of file?

That is correct, the video I have tested with is a direct play.

Let me know if anything is missing from this that you need. image

dmitrylyzo commented 1 month ago

It is little cut off. Is the first audio track TrueHD?

There's an option Settings / Playback / Enable TrueHD to control TrueHD support status. In your case it should probably be disabled - if your TV doesn't support TrueHD (otherwise, enable it).

POD319 commented 1 month ago

It is little cut off. Is the first audio track TrueHD?

There's an option Settings / Playback / Enable TrueHD to control TrueHD support status. In your case it should probably be disabled - if your TV doesn't support TrueHD (otherwise, enable it).

It is indeed image

POD319 commented 1 month ago

It is little cut off. Is the first audio track TrueHD?

There's an option Settings / Playback / Enable TrueHD to control TrueHD support status. In your case it should probably be disabled - if your TV doesn't support TrueHD (otherwise, enable it).

Yeah turning off TrueHD / DTS support checkboxes fixed my issue 100%. I had planned to connect my receiver to the G3 and eventually get TrueHD and DTS support there, so I left those on initially. There does seem to be a bug that it's not enumerating as you said, which causes the audio tracks to be incorrectly displayed. Let me know if you think I should close this out or keep it open for that issue.

So does this mean now that when a video has a TrueHD / DTS track, Jellyfin has to process it somehow to be compatible?

dmitrylyzo commented 1 month ago

There does seem to be a bug that it's not enumerating as you said, which causes the audio tracks to be incorrectly displayed. Let me know if you think I should close this out or keep it open for that issue.

In your case, there's nothing we can do. It is more a user issue: we can't reliably detect TrueHD support, so it is up to the user to configure the device profile correctly (with those options). The description for those options states that they may cause playback issues.

So does this mean now that when a video has a TrueHD / DTS track, Jellyfin has to process it somehow to be compatible?

Yes, unsupported tracks are transcoded to a supported format.

POD319 commented 1 month ago

There does seem to be a bug that it's not enumerating as you said, which causes the audio tracks to be incorrectly displayed. Let me know if you think I should close this out or keep it open for that issue.

In your case, there's nothing we can do. It is more a user issue: we can't reliably detect TrueHD support, so it is up to the user to configure the device profile correctly (with those options). The description for those options states that they may cause playback issues.

So does this mean now that when a video has a TrueHD / DTS track, Jellyfin has to process it somehow to be compatible?

Yes, unsupported tracks are transcoded to a supported format.

Thanks, I think I will close this out then.

One last question -- The reason I had TrueHD enabled in the first place was because I have my TV connected to my receiver, which should support TrueHD. When I disable TrueHD with some files, I get frame stuttering during the transcode. I've troubleshot this a ton and my best course of action was going to be passing TrueHD to the receiver and let that downmix it to my proper amount of speakers.

How is Jellyfin detecting if TrueHD is supported or not? With my receiver connected and eARC enabled, it doesn't seem to allow the TrueHD audio track.

dmitrylyzo commented 1 month ago

One last question -- The reason I had TrueHD enabled in the first place was because I have my TV connected to my receiver, which should support TrueHD. When I disable TrueHD with some files, I get frame stuttering during the transcode. I've troubleshot this a ton and my best course of action was going to be passing TrueHD to the receiver and let that downmix it to my proper amount of speakers.

You may need to set the "pass-through" mode in the sound settings on your TV. But in general, if the TV doesn't support (can't decode) the format, it cannot be passed through from apps. These unsupported audio tracks are just invisible to the app (at least to HTML Video Player). That's why the indices are shifted during enumeration and wrong track is playing.

Did you have "frame stuttering" when only audio was transcoded? Audio transcoding is not that difficult compared to video transcoding. There was a bug with HEVC HDR to HEVC/H264 SDR transcoding when audio track wasn't supported, but it has been fixed.

How is Jellyfin detecting if TrueHD is supported or not? With my receiver connected and eARC enabled, it doesn't seem to allow the TrueHD audio track.

As I said, we can't reliably detect TrueHD support - Enable TrueHD checkbox is our "detection". So if your TV supports TrueHD (can pass through it) and your receiver supports TrueHD, you can enable TrueHD with the mentioned option.

POD319 commented 1 month ago

Did you have "frame stuttering" when only audio was transcoded? Audio transcoding is not that difficult compared to video transcoding. There was a bug with HEVC HDR to HEVC/H264 SDR transcoding when audio track wasn't supported, but it has been fixed.

Any idea how recent this was? I had the issue just a few weeks ago, and I believe I was on the latest version then. It was very specifically anything that had to transcode the TrueHD, but if I ran Jellyfin Media Player it would be fine.

dmitrylyzo commented 1 month ago

Any idea how recent this was?

The bug I mentioned has been fixed in 10.9.0 (https://github.com/jellyfin/jellyfin/pull/9121).

It was very specifically anything that had to transcode the TrueHD

Was the video also transcoded? Or just the audio?

Also, what was the reason for transcoding? It can be found in Playback Info (in the player during playback) or in the Dashboard ((i) button).

POD319 commented 1 month ago

Any idea how recent this was?

The bug I mentioned has been fixed in 10.9.0 (jellyfin/jellyfin#9121).

It was very specifically anything that had to transcode the TrueHD

Was the video also transcoded? Or just the audio?

Also, what was the reason for transcoding? It can be found in Playback Info (in the player during playback) or in the Dashboard ((i) button).

Just audio, it said the video file was fully compatible but had incompatible audio stream.

dmitrylyzo commented 1 month ago

Just audio, it said the video file was fully compatible but had incompatible audio stream.

Could you post ffmpeg log?

POD319 commented 1 month ago

I just tested it on my web browser, as that one shows dropped frames. The LG player unfortunately doesn't show dropped frames, but I could see them happening there as well.

I started to play the video from the start, and within 15 seconds I had 3 dropped frames. There is a steady singular frame drop every ~6 seconds or so, even after the audio transcode is complete.

image

ffmpeg direct stream log: https://pastebin.com/NEYhNmKH

dmitrylyzo commented 1 month ago

I started to play the video from the start, and within 15 seconds I had 3 dropped frames. There is a steady singular frame drop every ~6 seconds or so, even after the audio transcode is complete.

Network speed is probably insufficient. How is the TV connected to the network?

ffmpeg direct stream log:

Could you try disable Settings / Playback / Prefer fMP4-HLS Media Container on the TV? fMP4 may cause a number of problems such as long startup or inability to seek. But currently, it would probably require video transcoding because Dolby Vision is disallowed on webOS for all containers except MP4. So you might want to wait for the next release. Or you can in addition disable video transcoding for TV user in the Dashboard (Users / <user> / Allow video playback that requires transcoding).

shlajin commented 1 month ago

I'm having the exact same issue, but I don't see the option of enabling/disabling TrueHD. How do I find one? I'm running Version: 10.8.13

dmitrylyzo commented 1 month ago

I'm having the exact same issue, but I don't see the option of enabling/disabling TrueHD. How do I find one? I'm running Version: 10.8.13

You need to update Jellyfin server - it was added in 10.9. UPD: FYI, TrueHD is disabled in 10.8. It will only cause problems if your TV supports TrueHD.

POD319 commented 1 month ago

I started to play the video from the start, and within 15 seconds I had 3 dropped frames. There is a steady singular frame drop every ~6 seconds or so, even after the audio transcode is complete.

Network speed is probably insufficient. How is the TV connected to the network?

Gigabit LAN, I've run tests to ensure both my hard drive read speed and my network bandwidth is sufficient. I am able to play a multitude of other 4k videos at maximum bitrate (120mbps) without any issue if they are direct plays. It seems this issue is specific to this file and the transcode.

ffmpeg direct stream log:

Could you try disable Settings / Playback / Prefer fMP4-HLS Media Container on the TV? fMP4 may cause a number of problems such as long startup or inability to seek. But currently, it would probably require video transcoding because Dolby Vision is disallowed on webOS for all containers except MP4. So you might want to wait for the next release. Or you can in addition disable video transcoding for TV user in the Dashboard (Users / <user> / Allow video playback that requires transcoding).

Dolby Vision is disallowed on webOS for all containers except MP4

This might be a very key point here. A lot of my videos are Dolby Vision, so what would happen if I disable that setting and try to play Dolby Vision? To note, I did already have this setting disabled as well -- was a recent change for another issue I faced.

Or you can in addition disable video transcoding for TV user in the Dashboard (Users / / Allow video playback that requires transcoding).

What would this do if a video required a transcode, just not play it at all?

dmitrylyzo commented 1 month ago

Gigabit LAN, I've run tests to ensure both my hard drive read speed and my network bandwidth is sufficient. I am able to play a multitude of other 4k videos at maximum bitrate (120mbps) without any issue if they are direct plays. It seems this issue is specific to this file and the transcode.

I am out of ideas. According to your logs, it transcodes with at least 18x rate.

This might be a very key point here. A lot of my videos are Dolby Vision, so what would happen if I disable that setting and try to play Dolby Vision? To note, I did already have this setting disabled as well -- was a recent change for another issue I faced.

It will require remuxing to TS instead of fMP4 (since DoVi is blocked for MKV and fMP4 option is disabled). Currently, DoVi is only allowed in MP4/fMP4, so for TS it will require to transcode the video. With disabled video transcoding, it will try to copy video stream with no modification.

What would this do if a video required a transcode, just not play it at all?

Yes, if video codec is not supported and video transcoding is not allowed, playback fails.