Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Suggestion] add ffmpeg as part of the runtime #727

Open
baptisterajaut opened this issue Dec 17, 2024 · 1 comment
Open

[Suggestion] add ffmpeg as part of the runtime #727

baptisterajaut opened this issue Dec 17, 2024 · 1 comment

Comments

@baptisterajaut
Copy link

baptisterajaut commented Dec 17, 2024

Greetings.

Not a bug report, just a small suggestion.
A small game (Your only move is hustle) has a mod (YomiRecord) that requires access to a binary form of ffmpeg to create video replay files. As the runtime sandboxes the binaries, if a game requires one that is not included in the runtime, you just can't access it (as a workaround, the legacy runtime 1.0 seems not to have this feature)
I know the native steam replay feature may be the reason ffmpeg is not included (anymore? yomirecord broke quite recently) but it could be useful still for such a common program to be included in the standard runtime.

Feel free to lock this issue if it doesn't fit the tracker CoC or if you deem this suggestion is invalid.

Have a wonderful day.

EDIT : wait, am i even at the right place to ask this? Or shall i go to the steamos gitlab?

@smcv
Copy link
Contributor

smcv commented Dec 18, 2024

This is the correct place to suggest additions to the runtime.

However, I don't think we are likely to add the ffmpeg(1) executable or the avcodec/ffmpeg libraries to the runtime, because we can't know which audio/video codecs would be needed by any given game (or mod), and indiscriminately adding all of them would take up a lot of space, likely add a lot of security vulnerabilities, and require a lot of legal checking.

It is technically possible for a game or mod to launch arbitrary commands outside the Steam Linux Runtime container, with no compatibility guarantees at all (this is very much on an "if it works, it works" basis). #717 has some more details of the mechanism that the mod author could use to run ffmpeg on the user's system outside the container, if they want to support that use-case. However, if they do this, they need to be aware that Steam will no longer be giving them any help with portability.

as a workaround, the legacy runtime 1.0 seems not to have this feature

Yes, the purpose of the legacy runtime is that it keeps your host OS's libraries and executables available and maybe-working (not necessarily fully working, but no worse than they were before the introduction of the container runtime!) so that if a game or a mod makes assumptions about the facilities that the OS will provide, there is a possibility that it might work.

As the runtime sandboxes the binaries

A correction to this: when we say sandboxing we usually mean a security boundary, but the Steam Linux Runtime container is a compatibility mechanism, not a security mechanism. The game is still just as trusted as it always was, it can "escape" and run code outside the container if it wants to, and that is not considered to be a security vulnerability.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants