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

feat: Separate Linux static from hardware encoding #48

Merged
merged 1 commit into from
Oct 11, 2024

Conversation

joeyparrish
Copy link
Member

@joeyparrish joeyparrish commented Oct 10, 2024

Hardware acceleration for Linux is too wrapped up in dynamic libraries and drivers, so from now on, builds for Linux that support hardware encoding will be dynamic and will only run on Ubuntu. For use in every other Linux distribution, fully static builds will be done with musl in Alpine Linux.

This also updates to the latest release, FFmpeg n7.1.

Closes #10

Hardware acceleration for Linux is too wrapped up in dynamic libraries and
drivers, so from now on, builds for Linux that support hardware encoding will
be dynamic and will only run on Ubuntu.  For use in every other Linux
distribution, fully static builds will be done with musl in Alpine Linux.
Copy link
Member

@mariocynicys mariocynicys left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice, the ubuntu built versions don't segfault locally now (even though they still have some dynamic libs).

also tried to encode using nvidia and that works locally as well :)

Comment on lines +35 to +36
# OS distribution.
PLATFORM_CONFIGURE_FLAGS="--enable-vaapi --enable-nvenc"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

interesting...
didn't nvenc use to be gpl incompatible and thus not re-distributable?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are only compiling against these headers from ffmpeg: https://github.com/FFmpeg/nv-codec-headers/blob/master/include/ffnvcodec/nvEncodeAPI.h

So we don't directly link against anything from Nvidia AFAICT.

@joeyparrish joeyparrish merged commit d0c07e8 into shaka-project:main Oct 11, 2024
7 checks passed
@joeyparrish joeyparrish deleted the split-builds branch October 11, 2024 15:39
@github-actions github-actions bot added the status: archived Archived and locked; will not be updated label Dec 17, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Dec 17, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
status: archived Archived and locked; will not be updated
Projects
None yet
Development

Successfully merging this pull request may close these issues.

FFmpeg missing vaapi support on Linux
2 participants