Ubuntu 20.04 (Focal) wie ffmpeg selbst anpassen & installieren?

  • Hallo,


    wenn ich apt-get install ffmpeg ausführe, wird ffmpeg:amd64 (7:4.2.4-1ubuntu0.1) mit Abhängigkeiten installiert.

    Für meine Zwecke fehlt: --enable-vaapi


    Also selbst kompilieren. Dazu habe habe ich mich an diesem Faden orientiert: https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

    Es ist auch ein aktuelles ffmpeg erstellt & installiert worden. Wenn ich ffmpeg ausführe, kommt dieser Fehler:

    Code
    1. ffmpeg: symbol lookup error: ffmpeg: undefined symbol: av_opt_child_class_iterate, version LIBAVUTIL_56

    libavutil.so.56 ist da:

    Code
    1. root@vdr1:/bin# ldd ffmpeg
    2. linux-vdso.so.1 (0x00007ffe3168b000)
    3. libavdevice.so.58 => /lib/x86_64-linux-gnu/libavdevice.so.58 (0x00007f225a784000)
    4. libavfilter.so.7 => /lib/x86_64-linux-gnu/libavfilter.so.7 (0x00007f225a404000)
    5. libavformat.so.58 => /lib/x86_64-linux-gnu/libavformat.so.58 (0x00007f225a18c000)
    6. libavcodec.so.58 => /lib/x86_64-linux-gnu/libavcodec.so.58 (0x00007f2258bcf000)
    7. ...

    und auch hier:

    Dann habe ich apt-get remove ffmpeg ausgeführt und nochmal kompiliert & installiert. Der Fehler bleibt.


    Wie kompiliere & installiere ich ein aktuelles ffmpeg richtig?


    Danke schonmal.

  • Post by kfb77 ().

    This post was deleted by the author themselves: wird nicht helfen ().
  • Mich würde die vollständige Ausgabe von ldd interessieren.


    Führe mal ldconfig aus.


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Mich würde die vollständige Ausgabe von ldd interessieren.


    Führe mal ldconfig aus.

    Musste ich in dem ersten Beitrag kürzen, weil er sonst >10.000 Zeilen gewesen wäre.


    Geht nur über Anhang.


    ldconfig ist ausgeführt, aber ohne Rückmeldung.

    Files

    • ldd_ffmpeg.txt

      (16.09 kB, downloaded 25 times, last: )
  • ldconfig ist ausgeführt, aber ohne Rückmeldung.

    Das ist normal, hast Du danach nochmal getestet?


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Ja

    Code
    1. root@vdr1:/home/rossi# ldconfig
    2. root@vdr1:/home/rossi# ffmpeg
    3. ffmpeg: symbol lookup error: ffmpeg: undefined symbol: av_opt_child_class_iterate, version LIBAVUTIL_56
  • Bei der Anleitung sind Pakete dabei, die Du nicht brauchst und instabil sein können, nimm mal folgende Pakete raus:


    libaom

    libsvtav1

    libdav1d

    libvmaf


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Also, wenn du "nur" --enable-vaapi ergänzen möchtest, und nicht das neueste ffmpeg brauchst:


    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.4x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • Danke für die Anleitung.


    Musste erst in /etc/apt/sources.listalle deb-src auskommentieren + apt-get update. Dann ging es weiter.

    Stehe jetzt an dem Punkt -> vi Makefile


    Wo setze ich da --enable-vaapi ? bzw. auch die anderen Optionen? Welche bereits in der installierten Version gesetzt sind:


    Makefile im Anhang.

    Files

    • Makefile.txt

      (5.63 kB, downloaded 14 times, last: )
  • Bin jetzt ein kleines Stück weiter.


    Vor dem compilieren habe ich configure aufgerufen:

    es kommt am Ende

    Code
    1. ...
    2. --enable-vaapi \Unknown option "".
    3. See ./configure --help for available options.

    wenn ich ./configure --help aufrufe ist nur --disable-vaapi aufgelistet.


    Warum kann ich in ffmpeg-4.2.4 vaapi nur disablen und nicht enablen?

    Files

  • Der \zeigt an, dass noch eine Zeile folgt, warum hast Du am Ende der letzten Zeit ein \?


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Unwissenheit.


    Habe jetzt configure incl. Variablen in einem Stück ausgeführt -> configure_aufruf.txt


    Dann

    Danach habe ich dpkg-source --commitprobiert - gleiches Ergebnis.

    Files

  • Entweder sind die Quellen kaputt, oder Du hast da irgendetwas verändert.


    Warum --enable-nvenc? --enable-omx?


    Du hast da viel zu viel drin.


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Ok, die Variablen habe ich Stück für Stück der original Konfiguration entnommen. Bzw. auch was von Deiner Konfig ergänzt.

    Aber auch mit abgespeckter Konfig bricht er ab...

  • Hast Du Dir denn die Datei /tmp/ffmpeg_4.2.4-1ubuntu0.1.diff.jl8Fqcmal angeschaut?


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Ja, aber da werde ich nicht "schlau" draus.

  • Da ich mich mit dem ganzen debian, bzw. ubuntu-Kram nicht auskenne, würde ich auf dem ffmpeg git aufsetzen.


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Gut, probiere ich:

    dann

    Code
    1. root@vdr1:/home/rossi/ffmpeg_sources# tar xjvf ffmpeg-snapshot.tar.bz2
    2. ...

    weiter

    Code
    1. root@vdr1:/home/rossi/ffmpeg_sources# cd ffmpeg

    und wieder

    Code
    1. root@vdr1:/home/rossi/ffmpeg_sources/ffmpeg# ./configure --prefix=/usr --extra-version=1ubuntu0.2 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared --enable-nonfree --enable-vaapi --disable-vdpau --cpu=x86-64 --disable-doc --disable-htmlpages --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-neon --disable-vfp --disable-vfpv3 --disable-armv8 --disable-mipsdsp --disable-mipsdspr2 --disable-mipsfpu --disable-altivec --disable-vsx --disable-power8 --disable-amd3dnow --disable-amd3dnowext
    2. Unknown option "--enable-avresample".
    3. See ./configure --help for available options.

    Jetzt mag er Unknown option "--enable-avresample"nicht.

  • @vdr_rossi

    Warum kann ich in ffmpeg-4.2.4 vaapi nur disablen und nicht enablen?

    da vaapi autodedect!

    --disable-vaapi disable Video Acceleration API (mainly Unix/Intel) code [autodetect]


    Gruss

    Wolfgang

    TT S2-6400 - saa716x kompilieren unter 20.04(Focal)

  • @vdr_rossi

    da vaapi autodedect!

    --disable-vaapi disable Video Acceleration API (mainly Unix/Intel) code [autodetect]

    D.h. es muss nicht zwingend --enable-vaapi drin sein? Das soll per autodetect funktionieren?