ffmpeg libz.so dependency

1.8k Views Asked by At

we are trying to install ffmpeg on our RH linux servers.

Trouble is that it works on one not on the other and we have no idea why. The working and the non working server have the same config information:


    ffmpeg version 0.10.2 Copyright (c) 2000-2012 the FFmpeg developers
    built on Apr 19 2012 14:00:25 with gcc 4.1.2 20080704 (Red Hat 4.1.2-51)
    configuration: --enable-gpl --enable-version3 --enable-shared --enable-nonfree --enable-postproc --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib
    libavutil      51. 35.100 / 51. 35.100
    libavcodec     53. 61.100 / 53. 61.100
    libavformat    53. 32.100 / 53. 32.100
    libavdevice    53.  4.100 / 53.  4.100
    libavfilter     2. 61.100 /  2. 61.100
    libswscale      2.  1.100 /  2.  1.100
    libswresample   0.  6.100 /  0.  6.100
    libpostproc    52.  0.100 / 52.  0.100
    Hyper fast Audio and Video encoder

The error we are getting is:


    ffmpeg version 0.10.2 Copyright (c) 2000-2012 the FFmpeg developers
      built on Apr 19 2012 14:00:25 with gcc 4.1.2 20080704 (Red Hat 4.1.2-51)
      configuration: --enable-gpl --enable-version3 --enable-shared --enable-nonfree --enable-postproc --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib
    libavutil      51. 35.100 / 51. 35.100
    libavcodec     53. 61.100 / 53. 61.100
    libavformat    53. 32.100 / 53. 32.100
    libavdevice    53.  4.100 / 53.  4.100
    libavfilter     2. 61.100 /  2. 61.100
    libswscale      2.  1.100 /  2.  1.100
    libswresample   0.  6.100 /  0.  6.100
    libpostproc    52.  0.100 / 52.  0.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '4598_Testvideo_MP4-H264-6MBit_AAC-44KHz-192KBit_720p.mp4':
      Metadata:
        major_brand     : mp42
        minor_version   : 0
        compatible_brands: mp42mp41
        creation_time   : 2012-01-25 10:58:21
      Duration: 00:02:13.56, start: 0.000000, bitrate: 5472 kb/s
        Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 5280 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc
        Metadata:
          creation_time   : 2012-01-25 10:58:21
          handler_name    : Mainconcept MP4 Video Media Handler
        Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 189 kb/s
        Metadata:
          creation_time   : 2012-01-25 10:58:21
          handler_name    : Mainconcept MP4 Sound Media Handler
    [buffer @ 0x3160ea0] w:1280 h:720 pixfmt:yuv420p tb:1/1000000 sar:1/1 sws_param:
    [scale @ 0x31629a0] w:1280 h:720 fmt:yuv420p -> w:480 h:270 fmt:yuv420p flags:0x4
    [libvpx @ 0x314ab40] v0.9.6
    [libvpx @ 0x314ab40] Failed to initialize encoder: ABI version mismatch
    Output #0, webm, to 'outputvideo.webm':
      Metadata:
        major_brand     : mp42
        minor_version   : 0
        compatible_brands: mp42mp41
        creation_time   : 2012-01-25 10:58:21
        Stream #0:0(eng): Video: vp8, yuv420p, 480x270 [SAR 1:1 DAR 16:9], q=-1--1, 2500 kb/s, 90k tbn, 25 tbc
        Metadata:
          creation_time   : 2012-01-25 10:58:21
          handler_name    : Mainconcept MP4 Video Media Handler
        Stream #0:1(eng): Audio: none, 44100 Hz, stereo, s16, 128 kb/s
        Metadata:
          creation_time   : 2012-01-25 10:58:21
          handler_name    : Mainconcept MP4 Sound Media Handler
    Stream mapping:
      Stream #0:0 -> #0:0 (h264 -> libvpx)
      Stream #0:1 -> #0:1 (aac -> libvorbis)
    Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

I've looked at the dependent libraries using ldd and did find one differenct. the library libz.so was not listet in the system that doesn't work. ie


    /lib64/ld-linux-x86-64.so.2 (0x00000035a9000000)
    libavcodec.so.53 => /usr/local/lib/libavcodec.so.53 (0x00002ae5189a8000)
    libavdevice.so.53 => /usr/local/lib/libavdevice.so.53 (0x00002ae518204000)
    libavfilter.so.2 => /usr/local/lib/libavfilter.so.2 (0x00002ae51840e000)
    libavformat.so.53 => /usr/local/lib/libavformat.so.53 (0x00002ae51869c000)
    libavutil.so.51 => /usr/local/lib/libavutil.so.51 (0x00002ae519e17000)
    libc.so.6 => /lib64/libc.so.6 (0x00000035a9400000)
    libfaac.so.0 => /usr/lib64/libfaac.so.0 (0x0000003407800000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00000035ac000000)
    libmp3lame.so.0 => /usr/lib64/libmp3lame.so.0 (0x0000003407000000)
    libm.so.6 => /lib64/libm.so.6 (0x00000035aa000000)
    libogg.so.0 => /usr/local/lib/libogg.so.0 (0x00002ae51b35b000)
    libopencore-amrnb.so.0 => /usr/lib64/libopencore-amrnb.so.0 (0x0000003409800000)
    libopencore-amrwb.so.0 => /usr/lib64/libopencore-amrwb.so.0 (0x0000003407c00000)
    libpostproc.so.52 => /usr/local/lib/libpostproc.so.52 (0x00002ae5197ba000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00000035a9c00000)
    libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000035aa400000)
    libswresample.so.0 => /usr/local/lib/libswresample.so.0 (0x00002ae5199c6000)
    libswscale.so.2 => /usr/local/lib/libswscale.so.2 (0x00002ae519bce000)
    libtheoradec.so.1 => /usr/local/lib/libtheoradec.so.1 (0x00002ae51b141000)
    libtheoraenc.so.1 => /usr/local/lib/libtheoraenc.so.1 (0x00002ae51af05000)
    libvorbisenc.so.2 => /usr/lib64/libvorbisenc.so.2 (0x00002ae51a8fe000)
    libvorbis.so.0 => /usr/lib64/libvorbis.so.0 (0x00002ae51acd9000)
    libvpx.so.0 => /usr/lib64/libvpx.so.0 (0x00002ae51a687000)
    libx264.so.120 => /usr/local/lib/libx264.so.120 (0x00002ae51a320000)
    libxvidcore.so.4 => /usr/lib64/libxvidcore.so.4 (0x00002ae51a03a000)
    linux-vdso.so.1 =>  (0x00007ffff63f6000)

as opposed to


    /lib64/ld-linux-x86-64.so.2 (0x0000003074c00000)
    libavcodec.so.53 => /usr/local/lib/libavcodec.so.53 (0x00002b2038eeb000)
    libavdevice.so.53 => /usr/local/lib/libavdevice.so.53 (0x00002b2038746000)
    libavfilter.so.2 => /usr/local/lib/libavfilter.so.2 (0x00002b2038950000)
    libavformat.so.53 => /usr/local/lib/libavformat.so.53 (0x00002b2038bdf000)
    libavutil.so.51 => /usr/local/lib/libavutil.so.51 (0x00002b203a368000)
    libc.so.6 => /lib64/libc.so.6 (0x0000003075000000)
    libfaac.so.0 => /usr/lib64/libfaac.so.0 (0x00002b203bcef000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003003400000)
    libmp3lame.so.0 => /usr/lib64/libmp3lame.so.0 (0x000000310ae00000)
    libm.so.6 => /lib64/libm.so.6 (0x0000003075c00000)
    libogg.so.0 => /usr/lib64/libogg.so.0 (0x00002b203bf01000)
    libopencore-amrnb.so.0 => /usr/lib64/libopencore-amrnb.so.0 (0x00002b203bac1000)
    libopencore-amrwb.so.0 => /usr/lib64/libopencore-amrwb.so.0 (0x00002b203b8ab000)
    libpostproc.so.52 => /usr/local/lib/libpostproc.so.52 (0x00002b2039d0b000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003075800000)
    libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x000000360ea00000)
    libswresample.so.0 => /usr/local/lib/libswresample.so.0 (0x00002b2039f18000)
    libswscale.so.2 => /usr/local/lib/libswscale.so.2 (0x00002b203a11f000)
    libtheoradec.so.1 => /usr/local/lib/libtheoradec.so.1 (0x00002b203b693000)
    libtheoraenc.so.1 => /usr/local/lib/libtheoraenc.so.1 (0x00002b203b457000)
    libvorbisenc.so.2 => /usr/lib64/libvorbisenc.so.2 (0x00002b203ae50000)
    libvorbis.so.0 => /usr/lib64/libvorbis.so.0 (0x00002b203b22a000)
    libvpx.so.0 => /usr/lib64/libvpx.so.0 (0x00002b203abd9000)
    libx264.so.120 => /usr/local/lib/libx264.so.120 (0x00002b203a871000)`enter code here`
    libxvidcore.so.4 => /usr/lib64/libxvidcore.so.4 (0x00002b203a58c000)
    libz.so.1 => /lib64/libz.so.1 (0x0000003076000000)
    linux-vdso.so.1 =>  (0x00007fff6adfd000)

I wanted to ask whether this has something to do with the problem. before i try to figure out how come the libz.so appears i nthe one list and not the other.

btw the ld.so.conf files are identical.

1

There are 1 best solutions below

0
On

It is a bit unusual that one version is not referencing zlib while the other is not. However, this should not cause a problem unless you are using a format that relies on zlib (several containers and codecs do). Not in this case.

The specific problem is spelled out in the error text:

[libvpx @ 0x314ab40] v0.9.6
[libvpx @ 0x314ab40] Failed to initialize encoder: ABI version mismatch

FFmpeg and libvpx aren't getting along.

It looks like you compiled FFmpeg yourself from the latest source. Where did libvpx come from? Installed from a Red Hat RPM? Or compiled yourself? Did you compile on one of these RH boxes and then move the binary to the other one?