Package Details: ffmpeg-cuda-full 2:8.1.1-2

Git Clone URL: https://aur.archlinux.org/ffmpeg-cuda-full.git (read-only, click to copy)
Package Base: ffmpeg-cuda-full
Description: Latest FFmpeg with CUDA/NVENC and all codecs including nonfree (libfdk-aac) - dynamically tracks upstream releases
Upstream URL: https://ffmpeg.org/
Licenses: custom:nonfree, GPL-3.0-only
Conflicts: ffmpeg
Provides: ffmpeg, libavcodec.so, libavdevice.so, libavfilter.so, libavformat.so, libavutil.so, libswresample.so, libswscale.so
Replaces: ffmpeg
Submitter: slyfox1186
Maintainer: slyfox1186
Last Packager: slyfox1186
Votes: 1
Popularity: 0.35
First Submitted: 2026-04-02 03:14 (UTC)
Last Updated: 2026-05-17 20:25 (UTC)

Required by (2403)

Sources (2)

Latest Comments

slyfox1186 commented on 2026-05-17 20:26 (UTC)

@jfk9w — thanks for the report and the diagnostic detail (the nvcc --help test was very helpful for narrowing this down).

Root cause: FFmpeg's configure sets the default --nvccflags to -gencode arch=compute_30,code=sm_30 -O2 (Kepler) and only falls back to compute_60 / compute_75 if nvcc's stderr contains the literal English word "unsupported". Current Arch ships CUDA 13.2, which dropped everything below sm_75 — so the fallback usually fires, but it's fragile: a non-English locale, an nvcc wrapper, or any future CUDA toolkit that rewords the error will break the probe, and configure then dies trying to compile the test kernel with an unbuildable arch. The script that does this probe is identical between n8.1 and n8.1.1, which is why a CUDA upgrade on your end between the two builds is the most likely trigger.

Fix in 2:8.1.1-2 (just pushed): query nvcc --list-gpu-arch for the lowest arch the installed toolkit actually supports and pass --nvccflags="-gencode arch=<arch>,code=<sm> -O2" to configure explicitly, bypassing the probe entirely. Falls back to compute_75 if the query fails. Please pull the update and let me know if it builds cleanly for you.

jfk9w commented on 2026-05-09 20:47 (UTC)

Thanks for the package!

I'm unable to build the latest version.

The error message says: "ERROR: failed checking for nvcc.". nvcc is present and located in /opt/cuda/bin. It also successfully prints help if I add "nvcc --help" directly below "export PATH=/opt/cuda/bin:$PATH" in PKGBUILD.

Previous version (2:8.1-1) was built without any issues and works fine. Help?

slyfox1186 commented on 2026-04-30 18:41 (UTC)

Thanks for the suggestion and for the well-formatted diff. It made this trivial to apply. Merged in 2:8.1-2, sourced exactly as you proposed with git apply -3 so it'll fall back to a 3-way merge if upstream FFmpeg shifts the surrounding code in a future release. b2sum verified against Arch's current pkgrel=3, so we're tracking their patch directly.

Good catch on the qt6-webengine breakage as this is exactly the kind of compatibility gap a replaces=ffmpeg package shouldn't introduce. Glad the package is useful to you!

galuise commented on 2026-04-17 04:38 (UTC)

Would you consider including the 0001-Add-av_stream_get_first_dts-for-Chromium.patch from the official arch package?

And the following change to PKGBUILD to incorporate it?:

diff --git a/PKGBUILD b/PKGBUILD
index d304bcc..1fb3f7e 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -121,8 +121,8 @@ conflicts=('ffmpeg')
 replaces=('ffmpeg')
 install=ffmpeg-cuda-full.install
 options=('!lto')
-source=("ffmpeg::git+https://git.ffmpeg.org/ffmpeg.git")
-b2sums=('SKIP')
+source=("ffmpeg::git+https://git.ffmpeg.org/ffmpeg.git" "0001-Add-av_stream_get_first_dts-for-Chromium.patch")
+b2sums=('SKIP' 'e5f7b79f7731be9ee5a7280a9221fb531ac5a2d9820fc5870b68b0eabea667dfbe8f39f41c1e1763a4c84982896afaa54c81ff57847d203b70afafd726689e5d')

 # Dynamically resolve the latest stable release tag from upstream.
 # This runs at build time so the package always tracks the newest FFmpeg.
@@ -149,6 +149,9 @@ prepare() {
     cd ffmpeg
     # Checkout the exact release tag determined by pkgver()
     git checkout "n${pkgver}" 2>/dev/null || true
+
+    # https://crbug.com/1251779
+    git apply -3 ../0001-Add-av_stream_get_first_dts-for-Chromium.patch
 }

 build() {

Without this patch things like qt6-webengine break as Chromium still relies on that dts call.

Thank you for this package!