retrohub-org / retrohub

Retrogaming library frontend, built to be a highly customizable platform.
https://retrohub-org.github.io/
MIT License
110 stars 6 forks source link

Investigate FFMPEG/godot-videodecoder backend alternative #361

Closed rsubtil closed 2 months ago

rsubtil commented 4 months ago

The godot-videodecoder addon for MP4 playback is pretty old, unmaintained, and extremely finicky to use. However, at the time, there were no better alternatives for Godot 4, thus the addon was manually ported by us.

Now, https://github.com/EIRTeam/EIRTeam.FFmpeg/ exists, and looks to be a much better alternative, and also maintained. Currently the main blockers to switch to this backend is the lack of support for macOS (https://github.com/EIRTeam/EIRTeam.FFmpeg/issues/1).

359 has now revealed that FFMPEG is broken on macOS, and I don't have any hardware to properly debug the issue, so changing the backend is more prioritary now. While this won't make it for v1.0.1, it should be considered for the next version.

rsubtil commented 3 months ago

Early testings show this variant of FFmpeg worked successfuly on an Intel macOS machine, so we're good to go to switch the backend.

An additional bonus is that this version uses openh264 instead of libx264. This no longer enforces a GPL3.0 license, but rather the LGPL3.0 one, which allows linking to the compiled library without enforcing its license. Thus, this allows for the app to be fully MIT, and no longer require the special GPL3.0 handling for compiled binaries.