jeffvli / feishin

A modern self-hosted music player.
https://feishin.vercel.app
GNU General Public License v3.0
1.99k stars 78 forks source link

Chromium web player won't play flacs with bad MIME type #635

Closed dolceAlka closed 3 weeks ago

dolceAlka commented 3 weeks ago

Expected Behavior

ignores metadata and plays content as expected

Current Behavior

Stops at 0:00, no audio

Steps to Reproduce

Remove mime data or edit it to be "nonstandard" -> (likely extended utf8 characters, needs to be checked) if its done correctly ffprobe <filename> should say "Could not read mimetype from an attached picture."

Possible Solution

This is likely an upstream issue, because it persists across both sonixd and feishin and moosync issue 308, but they propose that it is a chromium issue which is way upstream.

Evidence from the webapp being able to play tracks that don't have a valid mime type on firefox but not chrome/chromium seems to corroborate the theory, may elevate if i'm able to isolate

Context

No response

Application version

0.71

Operating System and version

Windows 11, the electron app and the webapp running on a chromium based browser

Server and Version

Navidrome 0.52.5

Node Version (if developing locally)

No response

dolceAlka commented 3 weeks ago

it does seem like there is no good way of doing this other than either fixing upstream chromium or major changes to codebase a reasonable solution could be handling playback outside of react-audio-player

kgarner7 commented 3 weeks ago

Does playing the track in chromium itself work? If not, then this issue is well beyond the scope of this project.

dolceAlka commented 3 weeks ago

Nope, it almost certainly seems like an issue with either chromium implementing demuxing or with ffmpeg within their pipeline but since it appears that firefox uses ffmpeg too (need to look at docs) its probably with chromium. yup, its wayyy too far up to deal with, I guess the only reasonable fix would be to handle playback with mpv so it doesn't go through electron chromium.

dolceAlka commented 3 weeks ago

If there are any consideration of doing a project-specific workaround to get it working like doing playback over something else other than the html player I'll keep it open, but else i'll close this

kgarner7 commented 3 weeks ago

I'd argue the correct thing to do is just fix the mime type/file itself. Regardless, this issue (at least for web player) is not something this project can resolve. If there isn't a bug, I would also recommend filing the a bug with Chromium itself.