Author Topic: x264 core erneuern  (Read 1915 times)

treki

  • Newbie
  • *
  • Posts: 18
Re: x264 core erneuern
« Reply #15 on: May 02, 2018, 10:50:23 AM »
Habe gestern Abend die gleiche Prozedur am anderen Rechner gemacht (für den es eigentlich vorgesehn war).
Es verhielt sich anders. Beim compilieren suchte er immer in /usr/lib/x86_64-linux-gnu nach der libx264.so und übersah diese in usr/lib.
Darauf hin kopierte ich diese in dieses Verzeichnis.
Jetzt nahm es die lib beim compilieren.
Avidemux funzt, aber dafür kann mpv und vlc keine h264 Videos mehr abspielen.
Auf dem ersten PC war automatisch ein Symlink zur libx265.so.155 drin. Hier nicht. Also hab ich diesen Symlink selber angelegt.
Jetzt meldet mpv aber, dass in der libavcodec-ffmpeg-56 etwas wie x264-encoder-148 nicht gefunden werden kann.
Kann heute Abend dann noch genauere Angaben dazu machen.

Edit:
Habe die libx264.so.148 und die libx264.so.155 vom ersten PC nach /usr/lib/x86_64-linux-gnu kopiert.
Nun zappeln auch die beiden Player wieder.
Trotzdem interessant, dass VLC doch nicht ganz unabhängig von den Linux Libs ist!
« Last Edit: May 02, 2018, 04:15:10 PM by treki »

treki

  • Newbie
  • *
  • Posts: 18
Re: x264 core erneuern
« Reply #16 on: May 02, 2018, 09:30:22 PM »
Lieber eumagga0x2a
Weisst Du, warum keine Revision angezeigt wird sondern nur der Core?

eumagga0x2a

  • Hero Member
  • *****
  • Posts: 2191
Re: x264 core erneuern
« Reply #17 on: May 02, 2018, 10:14:31 PM »
Beim compilieren suchte er immer in /usr/lib/x86_64-linux-gnu nach der libx264.so und übersah diese in usr/lib.

Welche Distribution ist auf dem anderen Rechner installiert? Die nicht von der Paketverwaltung stammende x264-Version gehört nicht nach /usr sondern nach /usr/local. Du hast wahrscheinlich Fehler bei der Konfiguration von x264 gemacht.

Quote
Trotzdem interessant, dass VLC doch nicht ganz unabhängig von den Linux Libs ist!

Wie denn auch? VLC setzt auf das ffmpeg des Systems auf, das seinerseits auch Encoder wie x264 und x265 einbindet. Ist ffmpeg durch das Fehlen einer Library, gegen sie es gelinkt ist, lahmgelegt, läuft keine Software wie mpv und VLC mehr, die auf ffmpeg zur Dekodierung von Audio und Video zurückgreift. Avidemux bringt eine eigene, gepatchte ffmpeg-Version, was ihm bei Linux-Distributionen schiefe Blicke einbringt.

Quote
Weisst Du, warum keine Revision angezeigt wird sondern nur der Core?

Von libx264? Wurde libx264 auf einem System konfiguriert, auf dem git installiert ist? version.sh, aufgerufen durch configure, holt sich die Build-Version wie 155 aus x264.h, für die Revision wird git benötigt.

treki

  • Newbie
  • *
  • Posts: 18
Re: x264 core erneuern
« Reply #18 on: May 03, 2018, 07:00:15 AM »
git ist auf beiden Systemen drauf. Auf beiden läuft ein LM 18.3 mate 64bit.
Habe x264 wie folgt compiliert:
Code: [Select]
git -C x264 pull 2> /dev/null || git clone --depth 1 https://git.videolan.org/git/x264 && \
cd x264 && \
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --enable-shared --enable-pic && \
PATH="$HOME/bin:$PATH" make && \
make install
[code]

eumagga0x2a

  • Hero Member
  • *****
  • Posts: 2191
Re: x264 core erneuern
« Reply #19 on: May 03, 2018, 09:27:26 AM »
Habe x264 wie folgt compiliert:
Code: [Select]
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build"
[code]

Wenn ~/ffmpeg_build/lib nicht im Suchpfad für Libraries ist wird keine dagegen gelinkte Anwendung libx264 ohne Sondermaßnahmen finden. Warum nicht wie empfohlen --prefix=/usr/local benutzen?

treki

  • Newbie
  • *
  • Posts: 18
Re: x264 core erneuern
« Reply #20 on: May 03, 2018, 09:36:46 AM »
Ah, habe den Standard nach dem Tut genommen und am Schluss den Content von ffmpeg_build in /usr kopiert. Mit sudo cp -R ffmpeg_build/* /usr/
Hätte ich mit sudo cp -R ffmpeg_build/* /usr/local/  sollen?
Muss ich PATH="$HOME/bin:$PATH" und --bindir="$HOME/bin" dann auch was anpassen, wenn ich --prefix=/usr/local hinschreibe?
Sorry, hab ich nicht erwähnt. Bin momentan nicht zuhause und schreibe aus dem Gedächtnis ^^
« Last Edit: May 03, 2018, 10:50:36 AM by treki »

eumagga0x2a

  • Hero Member
  • *****
  • Posts: 2191
Re: x264 core erneuern
« Reply #21 on: May 03, 2018, 10:55:53 AM »
Tutorial dient nur der Installation einer vom System isolierten aktuellen Version von ffmpeg.

Bitte configure nur als

Code: [Select]
./configure --prefix=/usr/local --enable-shared --enable-pic
ausführen, keine weiteren Argumente (eventuell auch PIC weglassen). PATH ergänzt man nur dann, wenn man z.B. einen anderen Compiler an einem nicht standardmäßigen Ort installiert hat.

Sollten danach manche Anwendungen libx264.so.148 meinen, jedoch libx264.so suchen, sollte das Löschen des Symlinks /usr/local/lib/libx264.so (bzw. in /usr/local/lib64) die eigene x264-Installation vor solchen Anwendungen verstecken.
« Last Edit: May 03, 2018, 11:02:41 AM by eumagga0x2a »

treki

  • Newbie
  • *
  • Posts: 18
Re: x264 core erneuern
« Reply #22 on: May 03, 2018, 11:50:33 AM »
Ok. Werde heute abend mal testen. Sollte dies dann auch das Problem der Revision (wird nicht angezeigt mit MediaInfo) lösen?

eumagga0x2a

  • Hero Member
  • *****
  • Posts: 2191
Re: x264 core erneuern
« Reply #23 on: May 03, 2018, 12:45:38 PM »
Das weiß ich noch nicht. Versuch macht klug :-D

treki

  • Newbie
  • *
  • Posts: 18
Re: x264 core erneuern
« Reply #24 on: May 03, 2018, 01:01:18 PM »
Muss ich hachher Avidemux immer neu compilieren?
Werde auf jeden Fall dann berichten.

eumagga0x2a

  • Hero Member
  • *****
  • Posts: 2191
Re: x264 core erneuern
« Reply #25 on: May 03, 2018, 02:09:38 PM »
--rebuild sollte genügen.

treki

  • Newbie
  • *
  • Posts: 18
Re: x264 core erneuern
« Reply #26 on: May 04, 2018, 06:01:20 AM »
$ x264 --version
x264 0.155.x
built on May  2 2018, gcc: 5.4.0 20160609
x264 configuration: --chroma-format=all
libx264 configuration: --chroma-format=all
x264 license: GPL version 2 or later




Unglaublich. Auf dem ersten (test) PC läuft alles, wie es soll.
Code: [Select]
Writing library : x264 core 155 r2901 7d0ff22Auf dem Hauptrechner will es einfach nicht, obschon dort genau das
gleiche OS drauf ist.
Wenn ich libx264-dev und x264 deinstalliere kommt immer noch bei x264 --Version
Code: [Select]
x264 0.155.xMittlerweilen kann ich nichtmal mehr compilieren.
Code: [Select]
sudo apt remove x264 libx264-dev
git -C x264 pull 2> /dev/null || git clone --depth 1
https://git.videolan.org/git/x264
cd x264
./configure --prefix=/usr/local --enable-shared --enable-pic
$ make
cat common/opencl/x264-cl.h common/opencl.....
.
.
.
gcc -Wno-maybe-uninitialized -Wshadow -O3 -......
filters/video/resize.c: In function ‘pick_closest_supported_csp’:
filters/video/resize.c:215:30: error: ‘AVComponentDescriptor {aka const
struct AVComponentDescriptor}’ has no member named ‘depth’
         if( pix_desc->comp[i].depth > 8 )
                               ^
Makefile:277: die Regel für Ziel „filters/video/resize.o“ scheiterte
make: *** [filters/video/resize.o] Fehler 1
Irgendwelche Ideen?

eumagga0x2a

  • Hero Member
  • *****
  • Posts: 2191
Re: x264 core erneuern
« Reply #27 on: May 04, 2018, 06:36:55 PM »
Mittlerweilen kann ich nichtmal mehr compilieren.
Code: [Select]
sudo apt remove x264 libx264-dev

Warum denn das?

Quote
Code: [Select]
git -C x264 pull 2> /dev/null || git clone --depth 1 https://git.videolan.org/git/x264

Was ist mit dem vorherigen checkout passiert? Wozu erneut klonen und die Infrastruktur belasten?

Wenn der Ordner x264 dagegen nicht geleert war, befinden sich noch die (Zwischen-) Produkte der vorherigen Kompilierungen darin. Du hättest in dem Ordner

Code: [Select]
make distclean
ausführen sollen.

Quote
Code: [Select]
cd x264
./configure --prefix=/usr/local --enable-shared --enable-pic
$ make
cat common/opencl/x264-cl.h common/opencl.....
.
.
.
gcc -Wno-maybe-uninitialized -Wshadow -O3 -......
filters/video/resize.c: In function ‘pick_closest_supported_csp’:
filters/video/resize.c:215:30: error: ‘AVComponentDescriptor {aka const
struct AVComponentDescriptor}’ has no member named ‘depth’
         if( pix_desc->comp[i].depth > 8 )
                               ^
Makefile:277: die Regel für Ziel „filters/video/resize.o“ scheiterte
make: *** [filters/video/resize.o] Fehler 1

Das dürfte daran liegen, dass x264 optional auf die von ffmpeg (libavformat, libswscale usw.) bereitgestellten Funktionen zurückgreift, und die zu Ubuntu 16.04 gehörende ffmpeg-Version steinalt ist. Du könntest versuchen, die Optionen

Code: [Select]
--disable-swscale --disable-lavf --disable-ffms
zu den configure-Optionen hinzuzufügen oder ffmpeg systemweit aktualisieren. Am Ende landet man bei einem halben LFS (Linux from scratch) ;-D

Warum nicht auf eine aktuelle Linux-Distribution umsteigen?

treki

  • Newbie
  • *
  • Posts: 18
Re: x264 core erneuern
« Reply #28 on: May 04, 2018, 07:13:11 PM »
Mit der aktuellen Dist hast natürlich recht.
Aber Linux Mint 19 mate kommt ende Mai/anfangs Juni raus.
Somit läuft im Moment noch 18.3 (ist ein Ubuntu 17.10).
Im Moment ist es so, dass sh version.sh
Code: [Select]
#define X264_REV 2901
#define X264_REV_DIFF 0
#define X264_VERSION " r2901 7d0ff22"
#define X264_POINTVER "0.155.2901 7d0ff22"
ausgibt.
x264 --version jedoch
Code: [Select]
x264 0.155.x
built on May  2 2018, gcc: 5.4.0 20160609
x264 configuration: --chroma-format=all
libx264 configuration: --chroma-format=all
x264 license: GPL version 2 or later
Ich denke, wenn ich Avidemux nun compiliere, wird der Output dann auch wieder nur core 155 ausgeben.
Das versuche ich aber jetzt mal.

Edit:
Jeah, es geht.
Code: [Select]
Writing library : x264 core 155 r2901 7d0ff22
« Last Edit: May 04, 2018, 07:23:18 PM by treki »

eumagga0x2a

  • Hero Member
  • *****
  • Posts: 2191
Re: x264 core erneuern
« Reply #29 on: May 04, 2018, 08:44:11 PM »
Somit läuft im Moment noch 18.3 (ist ein Ubuntu 17.10).

Nein, Ubuntu 16.04.3.