Yellow-Dog-Man / Resonite-Issues

Issue repository for Resonite.
https://resonite.com
141 stars 2 forks source link

Youtube audio quality extremely low #3136

Open ko-tengu opened 1 month ago

ko-tengu commented 1 month ago

Describe the bug?

Today when I dropped a Youtube video into Resonite the audio quality was extremely low quality and made it difficult to watch the video.

To Reproduce

Attempt to listen to a youtube video.

Expected behavior

The audio quality to be normal.

Screenshots

Recording of issue: https://www.youtube.com/watch?v=kC8Z98Q09DE

example song, for completeness: https://www.youtube.com/watch?v=DzYp5uqixz0

Resonite Version Number

Beta 2024.10.23.15

What Platforms does this occur on?

Windows

What headset if any do you use?

Quest 3

Log Files

BUFU - 2024.10.23.15 - 2024-10-26 03_56_28.log

Additional Context

I don't really use Resonite for watching videos often, so I can't say for sure when this started.

Reporters

No response

ko-tengu commented 1 month ago

I have been informed that this is a side effect of https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/2749 but I think it's only tangentially related because libVLC should not sound this bad even if using it was intentional

shiftyscales commented 4 weeks ago

Is the video quality / resolution also low, @ko-tengu? This sounds like it could also possibly be related to #2584 / YouTube continuing to intentionally break things for third party video players / software used to watch YouTube videos off of YouTube as a platform.

shiftyscales commented 4 weeks ago

Scratch that actually- I downloaded a different variant with yt-dlp directly and imported it as a file directly in Resonite so it could use the Unity Native player, and there was a rather stark difference that was immediately noticeable as soon as I switched between the two players..

As covered in #2749 however- if a video won't load with Unity Native it's likely to be an unsupported codec responsible- we are also not too likely to spend any development resources fixing up the existing broken VLC implementation when we plan to switch to the updated libVLC implementation as covered by #1476.

ko-tengu commented 4 weeks ago

Why would the supported codecs have changed between updates though? I have a log from months ago when the Unity Player was working for youtube videos and the two lines do not speak to me of codec changes.

The current log:

3:58:32 AM.589 ( 75 FPS)    Codec none + none vs none + none. HasAudio: False, HasVideo: True, AudioOnly: False
3:58:32 AM.589 ( 75 FPS)    Codec none + none vs none + none. HasAudio: False, HasVideo: True, AudioOnly: False
3:58:32 AM.589 ( 75 FPS)    Codec none + none vs none + none. HasAudio: False, HasVideo: True, AudioOnly: False
3:58:32 AM.589 ( 75 FPS)    Codec avc1.4d400c + none vs none + none. HasAudio: False, HasVideo: True, AudioOnly: False
3:58:32 AM.589 ( 75 FPS)    Codec avc1.4d400c + mp4a.40.5 vs none + mp4a.40.5. HasAudio: True, HasVideo: True, AudioOnly: False
3:58:32 AM.589 ( 75 FPS)    Codec none + none vs avc1.4d400c + none. HasAudio: False, HasVideo: True, AudioOnly: False
3:58:32 AM.589 ( 75 FPS)    Codec avc1.4d4015 + none vs avc1.4d400c + none. HasAudio: False, HasVideo: True, AudioOnly: False
3:58:32 AM.589 ( 75 FPS)    Codec avc1.4d4015 + mp4a.40.5 vs avc1.4d400c + mp4a.40.5. HasAudio: True, HasVideo: True, AudioOnly: False
3:58:32 AM.589 ( 75 FPS)    Codec avc1.4d401e + none vs avc1.4d4015 + none. HasAudio: False, HasVideo: True, AudioOnly: False
3:58:32 AM.589 ( 75 FPS)    Codec avc1.4d401e + mp4a.40.2 vs avc1.4d4015 + mp4a.40.2. HasAudio: True, HasVideo: True, AudioOnly: False
3:58:32 AM.589 ( 75 FPS)    Codec avc1.42001E + mp4a.40.2 vs avc1.4d401e + mp4a.40.2. HasAudio: True, HasVideo: True, AudioOnly: False
3:58:32 AM.589 ( 75 FPS)    Codec avc1.4d401f + none vs avc1.4d401e + none. HasAudio: False, HasVideo: True, AudioOnly: False
3:58:32 AM.589 ( 75 FPS)    Codec avc1.4d401f + mp4a.40.2 vs avc1.4d401e + mp4a.40.2. HasAudio: True, HasVideo: True, AudioOnly: False
3:58:32 AM.589 ( 75 FPS)    Codec avc1.4d401f + none vs avc1.4d401f + none. HasAudio: False, HasVideo: True, AudioOnly: False
3:58:32 AM.589 ( 75 FPS)    Codec avc1.4d401f + mp4a.40.2 vs avc1.4d401f + mp4a.40.2. HasAudio: True, HasVideo: True, AudioOnly: False
3:58:32 AM.589 ( 75 FPS)    Best Format: Video: avc1.4d401f, Audio: mp4a.40.2, Container: , Size: 1280x720, Sample Rate: , Url:

versus a snippet from 07/22

11:37:13 AM.977 ( 35 FPS)   Codec none +  vs none + . HasAudio: False, HasVideo: False, AudioOnly: False
11:37:13 AM.977 ( 35 FPS)   Codec none + mp4a.40.5 vs none + mp4a.40.5. HasAudio: True, HasVideo: False, AudioOnly: False
11:37:13 AM.977 ( 35 FPS)   Codec none + mp4a.40.2 vs none + mp4a.40.2. HasAudio: True, HasVideo: False, AudioOnly: False
11:37:13 AM.977 ( 35 FPS)   Codec none + opus vs none + opus. HasAudio: True, HasVideo: False, AudioOnly: False
11:37:13 AM.977 ( 35 FPS)   Codec none + none vs none + none. HasAudio: False, HasVideo: True, AudioOnly: False
11:37:13 AM.977 ( 35 FPS)   Codec none + none vs none + none. HasAudio: False, HasVideo: True, AudioOnly: False
11:37:13 AM.977 ( 35 FPS)   Codec none + none vs none + none. HasAudio: False, HasVideo: True, AudioOnly: False
11:37:13 AM.977 ( 35 FPS)   Codec avc1.4D400C + none vs none + none. HasAudio: False, HasVideo: True, AudioOnly: False
11:37:13 AM.977 ( 35 FPS)   Codec avc1.4D400C + none vs none + none. HasAudio: False, HasVideo: True, AudioOnly: False
11:37:13 AM.977 ( 35 FPS)   Codec none + none vs none + none. HasAudio: False, HasVideo: True, AudioOnly: False
11:37:13 AM.977 ( 35 FPS)   Codec avc1.4D401E + none vs none + none. HasAudio: False, HasVideo: True, AudioOnly: False
11:37:13 AM.977 ( 35 FPS)   Codec avc1.4D401E + none vs none + none. HasAudio: False, HasVideo: True, AudioOnly: False
11:37:13 AM.977 ( 35 FPS)   Codec avc1.42001E + mp4a.40.2 vs none + mp4a.40.2. HasAudio: True, HasVideo: True, AudioOnly: False
11:37:13 AM.979 ( 35 FPS)   Codec vp09.00.21.08 + none vs avc1.42001E + none. HasAudio: False, HasVideo: True, AudioOnly: False
11:37:13 AM.979 ( 35 FPS)   Codec avc1.64001f + none vs avc1.42001E + none. HasAudio: False, HasVideo: True, AudioOnly: False
11:37:13 AM.979 ( 35 FPS)   Codec avc1.640020 + none vs avc1.42001E + none. HasAudio: False, HasVideo: True, AudioOnly: False
11:37:13 AM.979 ( 35 FPS)   Codec avc1.640020 + none vs avc1.42001E + none. HasAudio: False, HasVideo: True, AudioOnly: False
11:37:13 AM.979 ( 35 FPS)   Codec avc1.64002A + none vs avc1.42001E + none. HasAudio: False, HasVideo: True, AudioOnly: False
11:37:13 AM.979 ( 35 FPS)   Codec avc1.64002A + none vs avc1.42001E + none. HasAudio: False, HasVideo: True, AudioOnly: False
11:37:13 AM.979 ( 35 FPS)   Best Format: Video: avc1.42001E, Audio: mp4a.40.2, Container: , Size: 640x360, Sample Rate: 44100,

The exact profiles switched, which makes sense since back in June videos were stuck at the lowest resolution, but Unity should still be supporting any h264 video Youtube can throw it.

ko-tengu commented 4 weeks ago

For a bit more detail the avc1.42001E from 7/22 is AVC (H.264) Baseline Level 3, which is probably the most basic web video you can get, while the current day avc1.4d401f is AVC (H.264) High Level 3.1, which is the most common HD video format and what Youtube's been using for 720p video since they made the HTML5 switch 14 years ago.

If AVC High Profile support broke in the Unity Player, that's a pretty major regression.