[FFmpeg-user] how to rename libx264 shared library(libx264.so.152) in FFmpeg

Moritz Barsnick barsnick at gmx.net
Thu Oct 10 19:10:31 EEST 2019


On Thu, Oct 10, 2019 at 17:45:15 +0200, Carl Eugen Hoyos wrote:
> Am Do., 10. Okt. 2019 um 16:45 Uhr schrieb Moritz Barsnick <barsnick at gmx.net>:
> > In other words:
> > - Rename libx264.so.XYZ
>
> > - Change the dependency on the depending component of ffmpeg using "patchelf
> >  -replace-needed" (no copies needed as in my proof of concept)
>
> As long as FFmpeg is open-source software:
> Isn't it much easier to link again?

That defeats the quick hack: During build-time linking, the linker
takes the referenced dynamic library's "SONAME" and uses that for the
resulting binary's "NEEDED". This means you would need to modify
libx264.so's SONAME as well[*]. Sure, you can also do that with
patchelf. But you're suggesting the actual sources - the proper,
"clean" way -  so you would need to:

- modify libx264's build scripts to use a different target file name
- modify libx264's build scripts to use a different target soname
  - and rebuild libx264 thus
- possibly modify libx264's pkgconfig file (assuming ffmpeg uses that)
- build ffmpeg against the modified pkgconfig file, or have it refer to
  the modified library name

That may be the proper way, especially if you want to build more than
one competing library (like for experiments with various
optimizations). But we don't know the intent of the original poster, so
that might be going too far.

[*] You would also need to provide a modified symlink libx264.so ->
libx264_modified.so.15x.

Moritz


More information about the ffmpeg-user mailing list