我们正在尝试在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文件是相同的。
答案 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框上编译,然后将二进制文件移动到另一个?