On 8/12/2017 4:27 PM, Moritz Barsnick wrote:
On Fri, Aug 11, 2017 at 16:27:16 -0700, tlum wrote:

Wow, how did you manage to compose this email? See here, this is what
the users get:

I can see it here though:
Yea... terribly sorry about that. First time using that gateway... I had no I idea it was going to munge it like that. Promise I won't do that again.

I'm having trouble adding OpenJPEG to my ffmpeg build. I'm doing a static
build, still I'm getting:

ffmpeg: error while loading shared libraries: libopenjp2.so.7: cannot open 
shared object file: No such file or directory
So apparently, ffmpeg isn't static after all.
Well, in one sense it is, because most of the other libraries don't even build shared versions, so I know it does link and work with the static libraries. In another sense it's not, because C and C++ programs with dependencies on glibc aren't really static. My limited understanding is that it's kind of a hybrid.

ffmpeg is being configured like so:

PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure 
--prefix="$HOME/ffmpeg_build" \
--extra-ldflags="-L$HOME/ffmpeg_build/lib -ldl" \
   --bindir="$HOME/bin" --pkg-config-flags="--static" \
   --enable-gpl \
   --enable-libfdk_aac \
   --enable-libfreetype \
   --enable-libmp3lame \
   --enable-libopus \
   --enable-libvorbis \
   --enable-libvpx \
   --enable-libx264 \
   --enable-libx265 \
   --enable-nonfree \
   --enable-libvidstab \
   --enable-libfontconfig \
   --enable-libfribidi \
   --enable-libass \
configure confirms:

configure confirms:

static                    yes
shared                    no
Well, either something is going wrong during the configure or linking
process, or you are not using that ffmpeg binary.

What does
$ which ffmpeg
$ file ffmpeg
$ ldd ffmpeg
and finally
$ ffmpeg
I'm sure there is only one copy of all the executables. They are actually deployed to /root/bin so they're kept highly isolated from the rest of the system. Since I've had so many problems with duplicate dependencies, combing the system for them is one of the first troubleshooting steps. I'm not opposed to shared libraries, what I'm opposed to is installing a shared library that didn't come from a repository in an rpm using yum. Otherwise, I find you tend to end up with a lot of stray, unmanaged, dependencies causing conflicts, and it makes it difficult to deploy applications when dependencies aren't readily available. When I'm forced to, I'll do an rpmbuild and drop them on the local repository so they're at least managed, deconflicted, and easy to deploy, but I'd rather manage one build than one build + a bunch of single use dependent libraries... economies of scale come from actually sharing shared objects.

So, we have:

[root@san1srvp01 ~]# which ffmpeg

[root@san1srvp01 ~]# file /root/bin/ffmpeg
/root/bin/ffmpeg: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=293e48bcdcde80eed190f5514bde9862cc3a6195, stripped

[root@san1srvp01 ~]# ldd /root/bin/ffmpeg
        linux-vdso.so.1 =>  (0x00007ffe29370000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007ff19d75e000)
        libass.so.5 => /lib64/libass.so.5 (0x00007ff19d534000)
        libm.so.6 => /lib64/libm.so.6 (0x00007ff19d231000)
libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007ff19cff4000)
        libfribidi.so.0 => /lib64/libfribidi.so.0 (0x00007ff19cddb000)
        libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007ff19cb34000)
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007ff19c82b000)
        librt.so.1 => /lib64/librt.so.1 (0x00007ff19c623000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff19c406000)
        libgomp.so.1 => /lib64/libgomp.so.1 (0x00007ff19c1e0000)
        liblzma.so.5 => /lib64/liblzma.so.5 (0x00007ff19bfba000)
        libz.so.1 => /lib64/libz.so.1 (0x00007ff19bda3000)
        libc.so.6 => /lib64/libc.so.6 (0x00007ff19b9e2000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ff19d96d000)
        libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007ff19b789000)
        libexpat.so.1 => /lib64/libexpat.so.1 (0x00007ff19b55e000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007ff19b348000)
        libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007ff19b010000)
        libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007ff19ade3000)

I am using some shared libraries:

fribidi-0.19.4-6.el7.x86_64 : Library implementing the Unicode Bidirectional Algorithm
Repo        : @base
Matched from:
Filename    : /usr/lib64/libfribidi.so.0
Filename    : /usr/lib64/libfribidi.so.0.3.3

fribidi-devel-0.19.4-6.el7.x86_64 : Libraries and include files for FriBidi
Repo        : @base
Matched from:
Filename    : /usr/lib64/libfribidi.so

fontconfig-2.10.95-10.el7.x86_64 : Font configuration and customization library
Repo        : @base
Matched from:
Filename    : /usr/lib64/libfontconfig.so.1.7.0
Filename    : /usr/lib64/libfontconfig.so.1

fontconfig-devel-2.10.95-10.el7.x86_64 : Font configuration and customization library
Repo        : @base
Matched from:
Filename    : /usr/lib64/libfontconfig.so

freetype-2.4.11-12.el7.x86_64 : A free and portable font rendering engine
Repo        : @base
Matched from:
Filename    : /usr/lib64/libfreetype.so.6.10.0
Filename    : /usr/lib64/libfreetype.so.6

freetype-devel-2.4.11-12.el7.x86_64 : FreeType development libraries and header files
Repo        : @base
Matched from:
Filename    : /usr/lib64/libfreetype.so

libass-0.13.4-1.el7.x86_64 : Portable library for SSA/ASS subtitles rendering
Repo        : @epel
Matched from:
Filename    : /usr/lib64/libass.so.5.3.2
Filename    : /usr/lib64/libass.so.5

libass-devel-0.13.4-1.el7.x86_64 : Development files for libass
Repo        : @epel
Matched from:
Filename    : /usr/lib64/libass.so
Filename    : /usr/lib64/pkgconfig/libass.pc

Right now, it's compiled without --enable-libopenjpeg because I needed to get some work done. Otherwise you wouldn't even get the header (see below), you'd just get the missing library error.

[root@san1srvp01 ~]# ffmpeg
ffmpeg version N-86964-gf357104 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-11)
configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags='-L/root/ffmpeg_build/lib -ldl' --bindir=/root/bin --pkg-config-flags=--static --enable-gpl --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree --enable-libvidstab --enable-libfontconfig --enable-libfribidi --enable-libass
  libavutil      55. 73.100 / 55. 73.100
  libavcodec     57.102.100 / 57.102.100
  libavformat    57. 76.100 / 57. 76.100
  libavdevice    57.  7.100 / 57.  7.100
  libavfilter     6. 98.100 /  6. 98.100
  libswscale      4.  7.102 /  4.  7.102
  libswresample   2.  8.100 /  2.  8.100
  libpostproc    54.  6.100 / 54.  6.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

ffmpeg-user mailing list

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

ffmpeg-user mailing list

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to