Skip to content

Update ffmpeg to latest 8.1#3250

Open
eyJhb wants to merge 3 commits intoalvr-org:masterfrom
eyJhb:ffmpeg-linux-bump
Open

Update ffmpeg to latest 8.1#3250
eyJhb wants to merge 3 commits intoalvr-org:masterfrom
eyJhb:ffmpeg-linux-bump

Conversation

@eyJhb
Copy link
Copy Markdown
Contributor

@eyJhb eyJhb commented Apr 1, 2026

I tried to bump ffmpeg from version 6 to version 7, which removes some of the patches and keeps linux + windows somewhat inline. I've tested running ffmpeg 7 with these patches, and it seems to run fine. I've however not tested building ffmpeg using the dependencies.rs.

It would be nice with some input, and if this is even a wanted change.

@eyJhb eyJhb changed the title update linux ffmpeg from 6 to 7 + updated patches WIP: update linux ffmpeg from 6 to 7 + updated patches Apr 1, 2026
@eyJhb eyJhb marked this pull request as draft April 1, 2026 09:39
@zmerp
Copy link
Copy Markdown
Member

zmerp commented Apr 1, 2026

ALVR uses only the self-build ffmpeg, so you should test with that.

@eyJhb eyJhb changed the title WIP: update linux ffmpeg from 6 to 7 + updated patches WIP: update linux ffmpeg from 6.0 to 8.1 + updated patches Apr 1, 2026
@eyJhb eyJhb force-pushed the ffmpeg-linux-bump branch 3 times, most recently from f5f4c7b to 7464001 Compare April 2, 2026 09:03
@eyJhb eyJhb changed the title WIP: update linux ffmpeg from 6.0 to 8.1 + updated patches Updated ffmpeg to latest 8.1 Apr 2, 2026
@eyJhb eyJhb changed the title Updated ffmpeg to latest 8.1 Update ffmpeg to latest 8.1 Apr 2, 2026
@eyJhb eyJhb marked this pull request as ready for review April 2, 2026 09:10
@eyJhb
Copy link
Copy Markdown
Contributor Author

eyJhb commented Apr 2, 2026

It compiles now after I added the vulkan headers, and removed a configure flag. I updated ffmpeg for Windows as well. If someone could test this besides me, it would be awesome! :) I'll do some additional testing as well. I'll only be testing with AMD GPU and Q3 :)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think this patch is no longer required since commit d0facac679faf45d3356dff2e2cb382580d7a521 (present since ffmpeg 8.0).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

That commit doesn't seem to be 1:1 the same. There are some additional things defined in this patch as well. But I'm not sure of the actual real-world benefits of it.

I've currently tested that ALVR works with these patches on 20.14.1, and it seems to work just fine.

I build them using the release pipeline here https://github.com/eyJhb/ALVR/releases/tag/v20.14.1-ffmpeg8 , for easy testing.

@eyJhb eyJhb force-pushed the ffmpeg-linux-bump branch 4 times, most recently from 7311d5e to ad508b8 Compare April 2, 2026 21:14
ports patches from 6.0 to 8.1
downloads latest vulkan header for compiling ffmpeg
updated prepare-release linux builder to ubuntu 24.04
fixed wrong vaapi arguments being used, which cased popup errors
@eyJhb eyJhb force-pushed the ffmpeg-linux-bump branch from ad508b8 to bb8f3f7 Compare April 3, 2026 13:59
@eyJhb
Copy link
Copy Markdown
Contributor Author

eyJhb commented Apr 3, 2026

I've tested this using the release I made https://github.com/eyJhb/ALVR/releases/tag/v20.14.1-ffmpeg8 , which has the changes from this PR, but just on 20.14.1. I've tested the changes both on NixOS, Bazzite and Wndows 11, and it seems to work just fine.

the talking TATO on Discord has also tested these changes out, and it works for them as well. So I think it should be somewhat good to go. It would be nice if others could test as well, and look for any things I might have missed.

So I guess, open for review :) The worst changes are most likely the API changes to alvr/server_openvr/cpp/platform/linux/EncodePipelineVAAPI.cpp, but that should schematically be the same, but just with up-to-date usage.

zmerp
zmerp previously approved these changes Apr 3, 2026
Copy link
Copy Markdown
Member

@zmerp zmerp left a comment

Choose a reason for hiding this comment

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

Alright, LGTM. Maybe @The-personified-devil and @Vixea can give a final review, as I don't really use Linux

@eyJhb
Copy link
Copy Markdown
Contributor Author

eyJhb commented Apr 4, 2026

Please do a basic performance test as well. I've done my best to gauge the performance on my machine, but it's quite some time since I last used VR :) But it should be somewhat the same performance, or better :)

@eyJhb
Copy link
Copy Markdown
Contributor Author

eyJhb commented Apr 5, 2026

I added using the vulkan headers in server_openvr/build.rs as well, as otherwise it would fail on check_linux_old when merging, which meant it was mismatching the vulkan headers. Should be good now :)

@The-personified-devil
Copy link
Copy Markdown
Collaborator

The-personified-devil commented Apr 15, 2026

Since you updated the release runner to 24.4 we don't need the linux_old runner anymore since we just don't support 20.4 (i.e. old glibc) anymore. So please open up a PR to remove the runner and then you can remove the workaround for it here.

@zmerp
Copy link
Copy Markdown
Member

zmerp commented Apr 15, 2026

@The-personified-devil Should we maybe the use Ubuntu 22.4 as the "new" linux_old?

@The-personified-devil
Copy link
Copy Markdown
Collaborator

@zmerp I typo'd, linux_old is already 22.4, we only need to reconsider when 26.something actually becomes available on gh actions, which will be a while

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

Successfully merging this pull request may close these issues.

4 participants