Topic: my ffmpeg pkgbuild for x86_64 to remove further neural net issues
# Maintainer (Arch): Maxime Gauduin <alucryd@archlinux.org>
# Contributor (Arch): Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor (Arch): Ionut Biru <ibiru@archlinux.org>
# Contributor (Arch): Tom Newsom <Jeepster@gmx.co.uk>
# Contributor (Arch): Paul Mattal <paul@archlinux.org>
# Maintainer: André Silva <emulatorman@hyperbola.info>
# Contributor: Tobias Dausend <throgh@hyperbola.info>
# edit by irina, take 5. lv2, glslang, rubberband, flite don't work. update to 4.4.5. avcodfec-arm pre-patch
pkgname=ffmpeg
pkgver=4.4.5
pkgrel=1
epoch=2
pkgdesc='Complete solution to record, convert and stream audio and video'
arch=(x86_64)
url=https://ffmpeg.org/
license=(GPL-3)
depends=(
alsa-lib
aribb24
avisynthplus
bzip2
celt
fontconfig
frei0r-plugins
freetype2
fribidi
gmp
lame
ladspa
libass
libavc1394
libbluray
libbs2b
libcaca
libcdio
libcdio-paranoia
libdc1394
libdrm
libgme
libiec61883
libmodplug
libomxil-bellagio
libopenmpt
libraw1394
librsvg-legacy
libsoxr
libtheora
libvorbis
libx11
libxcb
libxext
libxml2
libxv
mesa
openal
opencore-amr
openjpeg2
sdl2
speex
twolame
v4l-utils
vid.stab
vmaf
x264
x265
xcb-util-cursor
xcb-util-image
xvidcore
xz
zimg
zlib
zvbi
)
makedepends=(
clang
nasm
quilt
)
source=(
"https://ffmpeg.org/releases/ffmpeg-${pkgver}.tar.xz"
"0001-libavutil-clean-up-unused-FF_SYMVER-macro.patch"
"0001-ffbuild-libversion.sh-add-shebang.patch"
"vmaf-model-path.patch"
)
sha512sums=('70df4e63ef507a7ec76da34438142499139769728fd5130d9cf48d56c110ec82c3d6a7e6d1622da03c70167fa861d901d016bbe52c21d2b284b8a0d9f30811dc'
'1047a23eda51b576ac200d5106a1cd318d1d5291643b3a69e025c0a7b6f3dbc9f6eb0e1e6faa231b7e38c8dd4e49a54f7431f87a93664da35825cc2e9e8aedf4'
'38443b570cf32b2ba8ffa9ecc5480425c7da9f93f9773fbb3f9ec5f603b369b6225f4329a1b1f34d0ef30b2c9730f25ff9cff31315ed0a89a600df8e53bd54bf'
'd3675fdba67f91c7af7a891f98e5284986107acc333ac29512d4797ca42cf7ebd99025df3a91c76a3f4325d806f94a63ba6ffb1a2edf80bf9ce09c350b3cd06e')
prepare() {
cd ffmpeg-${pkgver}
patch -Np1 -i "${srcdir}"/0001-libavutil-clean-up-unused-FF_SYMVER-macro.patch
patch -Np1 -i "${srcdir}"/0001-ffbuild-libversion.sh-add-shebang.patch
patch -Np1 -i "${srcdir}"/vmaf-model-path.patch
}
build() {
cd ffmpeg-${pkgver}
if [[ $CARCH = i686 ]]; then
EXTRAOPTS="--disable-lto --disable-libvmaf --enable-pic --disable-asm"
else
EXTRAOPTS="--enable-xlib --enable-zlib"
fi
./configure \
--prefix=/usr \
--disable-debug \
--disable-static \
--disable-stripping \
--fatal-warnings \
--toolchain=hardened \
--enable-alsa \
--disable-amf \
--disable-appkit \
--enable-asm \
--disable-audiotoolbox \
--disable-avfoundation \
--enable-avisynth \
--disable-bsf=av1_frame_merge \
--disable-bsf=av1_frame_split \
--disable-bsf=av1_metadata \
--disable-bsf=opus_metadata \
--enable-bzlib \
--disable-chromaprint \
--disable-coreimage \
--disable-cuda-llvm \
--disable-cuda-nvcc \
--disable-cuvid \
--disable-d3d11va \
--disable-decklink \
--disable-decoder=av1 \
--enable-decoder=libvorbis \
--disable-decoder=opus \
--disable-decoder=vorbis \
--disable-decoder=vp8 \
--disable-decoder=vp8_v4l2m2m \
--disable-decoder=vp9 \
--disable-decoder=vp9_v4l2m2m \
--disable-decoder=webp \
--disable-demuxer=av1 \
--disable-demuxer=obu \
--disable-demuxer=webm_dash_manifest \
--disable-demuxer=image_webp_pipe \
--disable-dxva2 \
--enable-encoder=libvorbis \
--disable-encoder=opus \
--disable-encoder=vorbis \
--disable-encoder=vp8_v4l2m2m \
--disable-ffnvcodec \
--disable-filter=arnndn \
--disable-filter=derain \
--disable-filter=dnn_processing \
--disable-filter=nnedi \
--disable-filter=sr \
--enable-frei0r \
--disable-gcrypt \
--enable-gmp \
--disable-gnutls \
--enable-gpl \
--enable-hardcoded-tables \
--enable-iconv \
--disable-jni \
--enable-ladspa \
--disable-libaom \
--enable-libaribb24 \
--enable-libass \
--enable-libbluray \
--enable-libbs2b \
--enable-libcaca \
--enable-libcdio \
--enable-libcelt \
--disable-libcodec2 \
--disable-libdav1d \
--disable-libdavs2 \
--enable-libdc1394 \
--enable-libdrm \
--disable-libfdk-aac \
--disable-libflite \
--enable-libfontconfig \
--enable-libfreetype \
--enable-libfribidi \
--disable-libglslang \
--enable-libgme \
--disable-libgsm \
--enable-libiec61883 \
--disable-libilbc \
--disable-libjack \
--disable-libklvanc \
--disable-libkvazaar \
--disable-liblensfun \
--disable-libmfx \
--enable-libmodplug \
--enable-libmp3lame \
--disable-libmysofa \
--disable-libnpp \
--enable-libopencore_amrnb \
--enable-libopencore_amrwb \
--disable-libopencv \
--disable-libopenh264 \
--enable-libopenjpeg \
--enable-libopenmpt \
--disable-libopenvino \
--disable-libopus \
--disable-libpulse \
--disable-librabbitmq \
--disable-librav1e \
--disable-librist \
--enable-librsvg \
--disable-librtmp \
--disable-librubberband \
--disable-libshine \
--disable-libsmbclient \
--disable-libsnappy \
--enable-libsoxr \
--enable-libspeex \
--disable-libsrt \
--disable-libssh \
--disable-libsvtav1 \
--disable-libtensorflow \
--disable-libtesseract \
--enable-libtheora \
--disable-libtls \
--enable-libtwolame \
--disable-libuavs3d \
--enable-libv4l2 \
--enable-libvidstab \
--enable-libvmaf \
--disable-libvo_amrwbenc \
--enable-libvorbis \
--disable-libvpx \
--disable-libwebp \
--enable-libx264 \
--enable-libx265 \
--disable-libxavs \
--disable-libxavs2 \
--enable-libxcb \
--enable-libxcb-shm \
--enable-libxcb-xfixes \
--enable-libxcb-shape \
--enable-libxml2 \
--enable-libxvid \
--enable-libzimg \
--disable-libzmq \
--enable-libzvbi \
--enable-lto \
--disable-lv2 \
--enable-lzma \
--disable-mbedtls \
--disable-mediacodec \
--disable-mediafoundation \
--disable-mmal \
--disable-muxer=opus \
--disable-muxer=webm \
--disable-muxer=webm_chunk \
--disable-muxer=webm_dash_manifest \
--disable-muxer=webp \
--disable-network \
--disable-nvdec \
--disable-nvenc \
--enable-omx \
--disable-omx-rpi \
--enable-openal \
--disable-opencl \
--enable-opengl \
--disable-openssl \
--disable-parser=av1 \
--disable-parser=opus \
--disable-parser=vp8 \
--disable-parser=vp9 \
--disable-parser=webp \
--disable-pocketsphinx \
--disable-rkmpp \
--disable-schannel \
--enable-sdl2 \
--disable-securetransport \
--enable-shared \
--disable-sndio \
--disable-vaapi \
--disable-vapoursynth \
--disable-vdpau \
--enable-version3 \
--disable-videotoolbox \
--disable-vulkan \
--disable-w32threads \
$EXTRAOPTS \
make
make tools/qt-faststart
make doc/ff{mpeg,play}.1
}
package() {
cd ffmpeg-${pkgver}
make DESTDIR="${pkgdir}" install install-man
install -Dm 755 tools/qt-faststart "${pkgdir}"/usr/bin/
install -Dm 644 COPYING.GPLv3 "${pkgdir}"/usr/share/licenses/${pkgname}/COPYING.GPLv3
}I looked through all of the interior FFmpeg options and tried to suss out enabling/disabling stuff to explicitly deny neural net code/opus/webp/vp8/vp9 and related kinda stuffs, also removing jack going for pure ALSA, while also enabling some thing i remember being not included in Hyperbola's ffmpeg such as celt, caca, and such. those could be re-disabled to bring in line with stable Hyperbola, but I'm proud of all the explicit enable/disable options ^^ I wanted my ffmpeg to be made completely free of AI type code and to report on all options when called with "ffmpeg -v"
i think i did this before 4.4.5 came out for Hyperbola? so wonder if i'm missing a patch or something from there, too.
compared against: https://git.hyperbola.info:50100/packag … g/PKGBUILD
mostly i believe options such as
--disable-filter=arnndn \
--disable-filter=derain \
--disable-filter=dnn_processing \
--disable-filter=nnedi \and related settings are my primary contributions that could possibly be added to the baseline FFmpeg, maybe?
I'm aware i could clean up that pkgbuild and will later once i manage to get Hyperbola reinstalled... i ignored i686 options but could rewrite it so that they can cleanly be parsed again. maybe could install a 32bit version on my 64bit laptop to see afterwards too. a primary goal was keeping the options alphabetized for easier reading
https://www.deviantart.com/miwakomi