ffmpeg für Avxsynth oder UltraStar Deluxe kompilieren

Ausgehend von https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu verwendete ich

sudo apt-get install yasm libgnutls-dev libpulse-de libass-dev libfdk-aac-dev libmp3lame-dev libopus-devv libtheora-dev libvorbis-dev libx264-dev libx265-dev libopenmpt-dev libva-dev libvdpau-dev

und danach

./configure \
--prefix=/opt/ffmpeg/$(cat RELEASE) \
--enable-gpl --enable-nonfree --enable-version3 \
--enable-libass --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libopus --enable-libfdk-aac --enable-libx265 --enable-libopenmpt \
--enable-x11grab --enable-zlib --enable-pthreads --enable-postproc --enable-avresample --enable-gnutls --enable-libfreetype \
--disable-librtmp --disable-libopencv --disable-libopenjpeg \
--enable-libpulse --enable-vaapi --enable-vdpau --enable-avisynth \
--arch=amd64 --disable-shared --enable-static --disable-doc --extra-cflags=--static --extra-libs="-ldl" \
--disable-outdev=alsa --disable-outdev=oss --disable-outdev=v4l2 --disable-outdev=sndio \
--disable-indev=alsa --disable-indev=oss --disable-indev=sndio --disable-indev=dv1394 --disable-indev=jack \
--disable-ffserver

zum Konfigurieren von ffmpeg. Dieses Kompilat hat Unterstützung für avxsynth Scripte. avxsynth ist unter Windows unter dem Namen avisynth bekannter. Damit ffmpeg tatsächlich avxsynth Scripte verarbeiten kann, muss avxsynth installiert sein, denn selbst ein statisch gelinktes ffmpeg lädt libavxsynth.so. Da sehr viele Multimedia-Anwendungen auf ffmpeg bzw. libav zurückgreifen, empfehle ich wärmstens, ffmpeg (wie oben beschrieben) statisch zu bauen. Es ist dann unabhängig von den Systembibliotheken und muss nicht einmal installiert werden. Avxsynth wiederum kann gegen die Systembibliotheken gelinkt werden, dann kann auch ffms2 aus den Repositories verwendet weredn.

Die oben genannte Konfiguration ist nicht minimal. Daher ist die Liste an Entwicklungspaketen auch recht lang. Beispielsweise sind der libx264 Encoder für h264 Video und der libfdk Encoder für gutes aac Audio mit dabei. Diese beiden Kompressoren verwende ich gerne. Ich verwende für Audioein- und -ausgabe ausschließlich pulseaudio, weswegen ich alle anderen Module abgeschaltet habe. Für ffplay muss bei der Konfiguration die Option --enable-sdl aktiviert werden. Diese braucht dann noch sudo apt-get install libsdl1.2-dev.

Zuletzt getestet am 2018-08-24, davor am 2016-11-20, davor am 2015-11-21.

Das Debian Paket erstellte ich mit

sudo checkinstall --pkgname="ffmpeg-$(cat RELEASE)" --pkgversion="$(cat RELEASE)~git$(git rev-parse --short HEAD)" --backup=no --deldoc=yes --fstrans=no --default

Dieses Paket kollidiert nicht mit dem ffmpeg, welches in den Repositories zu finden ist.