ffmpeg libz.so依赖

时间:2012-04-30 10:36:56

标签: ffmpeg zlib libz

我们正在尝试在RH Linux服务器上安装ffmpeg。

麻烦的是,它不是在另一个上工作,我们不知道为什么。工作和非工作服务器具有相同的配置信息:


    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

我们得到的错误是:


    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

我使用ldd查看了依赖库,并找到了一个差异。库libz.so没有在系统中监听不起作用。即


    /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)

而不是


    /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)

我想问一下这是否与问题有关。在我试图找出libz.so如何出现在一个列表而不是另一个列表之前。

btw ld.so.conf文件是相同的。

1 个答案:

答案 0 :(得分:0)

一个版本没有引用zlib而另一个版本没有引用zlib有点不寻常。但是,除非您使用依赖于zlib的格式(多个容器和编解码器),否则这不会导致问题。不是在这种情况下。

错误文本中列出了具体问题:

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

FFmpeg和libvpx没有相处。

看起来你自己从最新的源代码编译了FFmpeg。 libvpx来自哪里?从Red Hat RPM安装?或编译自己?您是否在其中一个RH框上编译,然后将二进制文件移动到另一个?