-
Notifications
You must be signed in to change notification settings - Fork 9
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
FFmpeg & FFprobe binarys segfault on Linux #28
Comments
I am making a lot of changes right now to the build and configs. I'll ask you to try again as soon as I have these changes merged. |
Please try the binaries from this workflow run and let me know if the issue is resolved for you: https://github.com/shaka-project/static-ffmpeg-binaries/actions/runs/6340785810 |
Still segfaulting on my Arch system, but tried them on Ubuntu and they worked :/ |
I wonder what the incompatibility is... I have seen an alternative to true static binaries, which we could try. We could bundle dynamic libraries with the executable, and use a script that sets the loader path to make sure those get used. This would be similar to what we do on Windows and macOS, except in those cases, the OS has stable libraries we can count on. Different Linux distributions can do things very differently. |
It's probably some FFmpeg bug or a problem with one of the features we enable. I need to re-compile with different configurations to see where the issue comes from. |
We've recently discovered that compiling against musl instead of glibc fixes the issue. Our latest Shaka Packager release (v3.0.0) is fully static on Linux. The same could work here. |
This uses an Alpine Linux container to build truly static Linux binaries that do not depend on glibc at runtime. Alpine uses musl instead of glibc, which enables this fully static build. With musl compiler wrappers in Ubuntu, you still end up importing glibc references through libstdc++. And since x265 uses C++, we can't eliminate these in Ubuntu without dropping HEVC support. Using Alpine, with its musl-native environment, allows us to avoid glibc and build fully static Linux binaries. Closes #28
This uses an Alpine Linux container to build truly static Linux binaries that do not depend on glibc at runtime. Alpine uses musl instead of glibc, which enables this fully static build. With musl compiler wrappers in Ubuntu, you still end up importing glibc references through libstdc++. And since x265 uses C++, we can't eliminate these in Ubuntu without dropping HEVC support. Using Alpine, with its musl-native environment, allows us to avoid glibc and build fully static Linux binaries. Closes #28
This uses an Alpine Linux container to build truly static Linux binaries that do not depend on glibc at runtime. Alpine uses musl instead of glibc, which enables this fully static build. With musl compiler wrappers in Ubuntu, you still end up importing glibc references through libstdc++. And since x265 uses C++, we can't eliminate these in Ubuntu without dropping HEVC support. Using Alpine, with its musl-native environment, allows us to avoid glibc and build fully static Linux binaries. Closes #28
This uses an Alpine Linux container to build truly static Linux binaries that do not depend on glibc at runtime. Alpine uses musl instead of glibc, which enables this fully static build. With musl compiler wrappers in Ubuntu, you still end up importing glibc references through libstdc++. And since x265 uses C++, we can't eliminate these in Ubuntu without dropping HEVC support. Using Alpine, with its musl-native environment, allows us to avoid glibc and build fully static Linux binaries. Closes #28
This uses an Alpine Linux container to build truly static Linux binaries that do not depend on glibc at runtime. Alpine uses musl instead of glibc, which enables this fully static build. With musl compiler wrappers in Ubuntu, you still end up importing glibc references through libstdc++. And since x265 uses C++, we can't eliminate these in Ubuntu without dropping HEVC support. Using Alpine, with its musl-native environment, allows us to avoid glibc and build fully static Linux binaries. Closes #28
If you want to run workflows with jobs that inside containers, you need support for nested containers. This is now possible with a little bit of configuration. To make this work, we need to synchronize a few important folders between the host and the main container so that they can be forwarded on correctly to nested containers. Part of the solution to shaka-project/static-ffmpeg-binaries#28
System information:
The output of running ffprobe on
vid.mp4
:Tried multiple other videos and facing the same issue.
The text was updated successfully, but these errors were encountered: