Hi to all,

for a project, I'd like to bundle ffmpeg statically. The project itself is cross-platform, which is proving to be a challenge.

For this, I'd like to build ffmpeg statically and link in libx264 and libx265 so that I only have to link my library in turn to ffmpeg and be done with it. I started to experiment with this on Linux. In order to achieve that, I compiled both libx264 and libx265 statically with --enable-pic (my distro only ships static libs with -fPIE :( ).

I then build ffmpeg with the following flags:
$ ./configure --prefix=/tmp/master-x264-x265-minimal --enable-static --enable-pic --disable-everything --disable-programs --enable-libx264 --enable-libx265 --enable-gpl

When running "make V=1" and inspecting the gcc calls, I can however not see where both libx26* are linked into ffmpeg. I also inspected libavcodec, but couldn't find any (undefined) symbols of h264 or h265. I only saw
$ nm *.a | egrep -i "(264|hevc)"
                 U ff_h264_profiles
                 U ff_hevc_profiles
0000000000000340 D ff_h264_profiles
00000000000002e0 D ff_hevc_profiles
...

The pkgconfig files generated however contain direct references to "-lx26?". Excuse me if I am overseeing something obvious. I tried this with master from 10minutes ago and 3.0.2

So my question is, how can I link x264 and x265 into libavcodec so that symbols/objects from these dependencies are imported into libav* completely?
Best,
Peter
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to