Package Details: ffmpeg-full 4.2.1-1

Git Clone URL: https://aur.archlinux.org/ffmpeg-full.git (read-only)
Package Base: ffmpeg-full
Description: Complete solution to record, convert and stream audio and video (all possible features including nvenc, qsv and libfdk-aac)
Upstream URL: https://www.ffmpeg.org/
Keywords: audio codec convert cuda cuvid decklink encoder fdk-aac fdkaac ffmpeg hwaccel intel-svt libnpp media nvenc qsv quicksync svt vaapi video
Licenses: custom: nonfree and unredistributable
Conflicts: ffmpeg
Provides: ffmpeg, libavcodec.so, libavdevice.so, libavfilter.so, libavformat.so, libavresample.so, libavutil.so, libpostproc.so, libswresample.so, libswscale.so
Submitter: rpolzer
Maintainer: dbermond
Last Packager: dbermond
Votes: 78
Popularity: 0.355192
First Submitted: 2013-01-24 11:17
Last Updated: 2019-09-13 02:53

Dependencies (104)

Required by (928)

Sources (7)

Latest Comments

1 2 3 4 5 6 ... Next › Last »

dbermond commented on 2019-08-22 17:31

@ganthore

1) hm is not a dependency for ffmpeg-full, so it's not needed here. vmaf and blackmagic-decklink-sdk are already in makedepends.

pocketsphinx currently builds fine for me. If you have any concerns about pocketsphinx please direct it to its package maintainer.

2) nvcc path is not missing, this was already answered. Please see the 2 comments from 2019-06-11. In short: nvcc path is handled by makepkg because it automatically sources the profile file when pulling and installing cuda.

ffmpeg-full is building fine in a chroot with devtools so it builds fine in a fresh Arch install.

ganthore commented on 2019-08-22 15:48

There are two problems that need to be corrected with the PKGBUILD.

1) Missing or broken deps

On a fresh install of arch, the PKGBUILD building phase will fail due to the following packages not being set as dependencies:

hm (required for kvazaar to build) vmaf blackmagic-decklink-sdk

Also note that the pocketsphinx PKGBUILD is broken, so it may be better to use the pocketsphinx-git package as a workaround.

2) nvcc is missing

The build process will fail because you're assuming people have /opt/cuda/bin in their system or root shell path. An easy workaround is to export this into the PATH during the build phase: "export PATH=$PATH:/opt/cuda/bin"

craeckie commented on 2019-08-13 10:29

strange, I had intel-svt-hevc installed at 1.4.0-1. Still, after rebuilding and installing it, I was able to build ffmpeg.

dbermond commented on 2019-08-12 19:15

@craeckie Package is building fine. Please make sure that you have an updated intel-svt-hevc (currently at 1.4.0-1).

craeckie commented on 2019-08-12 09:19

I'm getting this error when building:

CC      libavcodec/libtheoraenc.o
libavcodec/libsvt_hevc.c: In function ‘config_enc_params’:
libavcodec/libsvt_hevc.c:140:14: error: ‘EB_H265_ENC_CONFIGURATION’ {aka ‘struct EB_H265_ENC_CONFIGURATION’} has no member named ‘encoderColorFormat’
  140 |         param->encoderColorFormat = EB_YUV420;
      |              ^~
libavcodec/libsvt_hevc.c:140:37: error: ‘EB_YUV420’ undeclared (first use in this function)
  140 |         param->encoderColorFormat = EB_YUV420;
      |                                     ^~~~~~~~~
libavcodec/libsvt_hevc.c:140:37: note: each undeclared identifier is reported only once for each function it appears in
libavcodec/libsvt_hevc.c:143:14: error: ‘EB_H265_ENC_CONFIGURATION’ {aka ‘struct EB_H265_ENC_CONFIGURATION’} has no member named ‘encoderColorFormat’
  143 |         param->encoderColorFormat = EB_YUV422;
      |              ^~
libavcodec/libsvt_hevc.c:143:37: error: ‘EB_YUV422’ undeclared (first use in this function)
  143 |         param->encoderColorFormat = EB_YUV422;
      |                                     ^~~~~~~~~
libavcodec/libsvt_hevc.c:145:14: error: ‘EB_H265_ENC_CONFIGURATION’ {aka ‘struct EB_H265_ENC_CONFIGURATION’} has no member named ‘encoderColorFormat’
  145 |         param->encoderColorFormat = EB_YUV444;
      |              ^~
libavcodec/libsvt_hevc.c:145:37: error: ‘EB_YUV444’ undeclared (first use in this function)
  145 |         param->encoderColorFormat = EB_YUV444;
      |                                     ^~~~~~~~~
libavcodec/libsvt_hevc.c:154:15: error: ‘EB_H265_ENC_CONFIGURATION’ {aka ‘struct EB_H265_ENC_CONFIGURATION’} has no member named ‘encoderColorFormat’
  154 |     if ((param->encoderColorFormat >= EB_YUV422) &&
      |               ^~
libavcodec/libsvt_hevc.c: In function ‘read_in_data’:
libavcodec/libsvt_hevc.c:232:15: error: ‘EB_H265_ENC_CONFIGURATION’ {aka ‘struct EB_H265_ENC_CONFIGURATION’} has no member named ‘encoderColorFormat’
  232 |     if (config->encoderColorFormat == EB_YUV420)
      |               ^~
libavcodec/libsvt_hevc.c:232:39: error: ‘EB_YUV420’ undeclared (first use in this function)
  232 |     if (config->encoderColorFormat == EB_YUV420)
      |                                       ^~~~~~~~~
libavcodec/libsvt_hevc.c:234:20: error: ‘EB_H265_ENC_CONFIGURATION’ {aka ‘struct EB_H265_ENC_CONFIGURATION’} has no member named ‘encoderColorFormat’
  234 |     else if (config->encoderColorFormat == EB_YUV422)
      |                    ^~
libavcodec/libsvt_hevc.c:234:44: error: ‘EB_YUV422’ undeclared (first use in this function)
  234 |     else if (config->encoderColorFormat == EB_YUV422)
      |                                            ^~~~~~~~~
make: *** [ffbuild/common.mak:59: libavcodec/libsvt_hevc.o] Error 1
make: *** Waiting for unfinished jobs....
==> ERROR: A failure occurred in build().
    Aborting...
Finished with result: exit-code
Main processes terminated with: code=exited/status=4
Service runtime: 6min 47.295s

Maybe a version mismatch with the HEVC codec?

dbermond commented on 2019-06-18 15:23

@nicoulaj This is a issue with the cuda package. May be fixed soon.

https://bugs.archlinux.org/task/62931?project=5&string=cuda

nicoulaj commented on 2019-06-18 12:39

Looks like build is broken because latest CUDA 10.1.168 blacklists gcc>8 ?

In file included from /opt/cuda/bin/../targets/x86_64-linux/include/cuda_runtime.h:83,
                 from <command-line>:
/opt/cuda/bin/../targets/x86_64-linux/include/crt/host_config.h:129:2: error: #error -- unsupported GNU version! gcc versions later than 8 are not supported!
  129 | #error -- unsupported GNU version! gcc versions later than 8 are not supported!
      |  ^~~~~
CC      libavfilter/vf_scale_npp.o
CC      libavfilter/vf_scale_qsv.o
make: *** [ffbuild/common.mak:95: libavfilter/vf_scale_cuda.ptx] Error 1

dbermond commented on 2019-06-12 01:54

@reddraggone9 This is true for installing cuda package directly with pacman. But when installing cuda as a missing dependency for this package with makepkg, '/etc/profile.d/cuda.sh' will be automatically sourced as I explained in the previous comment, and there is no need for any fix.

The only way I can see where this error can occur is if the user do something like running 'pacman -Syu cuda' and only after this execute 'makepkg'. But in this case, the user will be already informed by the cuda install script that he needs to relogin in order for nvcc to appear in the PATH. In this case, it will be not an issue, but an user fault.

dbermond commented on 2019-06-12 01:53

@G216 This error should not happen. makepkg automatically sources '/etc/profile' after installing the missing dependencies (cuda in this case), as you can see here:

https://git.archlinux.org/pacman.git/tree/scripts/makepkg.sh.in?h=v5.1.3#n280

'/etc/profile', by its turn, sources all scripts that are in '/etc/profile.d/':

https://git.archlinux.org/svntogit/packages.git/tree/trunk/profile?h=packages/filesystem&id=789ae7d4319a08908fa521bfeef47f663ec101d2#n26

This means that nvcc will be in PATH when installing cuda through makepkg, because the file '/etc/profile.d/cuda.sh' will be automatically sourced before building. This file sets the PATH variable to include the nvcc binary directory. The package builds fine in a chroot with devtools, and nvcc is found in PATH for the building process.

Are you using an AUR helper?

reddraggone9 commented on 2019-06-08 21:16

@G216 The nvcc command comes from the cuda dependency. Since that package (for whatever reason) installs to /opt, its binaries won't be in your existing PATH. As it mentions, logging out and back in (or rebooting for that matter) will add the new bin to your PATH variable.

Alternatively, you can source /etc/profile.d/cuda.sh and rerun the build for ffmpeg-full in the same terminal. I'm not sure what the proper fix for this would look like though...