MediaView

External Video Decoder - Linux 32-bit Compatibility

External Video Decoder - Linux 32-bit Compatibility

Previous topic Next topic No expanding text in this topic  

External Video Decoder - Linux 32-bit Compatibility

Previous topic Next topic JavaScript is required for expanding text JavaScript is required for the print function  

If you are running mencoder on a 64-bit Linux platform, you may encounter run-time failures.  These problems may also present themselves when running other 32-bit video decoder programs, such as ffmpeg.  There is no compile-time solution for these problems; they can only be fixed by installing additional packages in the Linux operating system.  These packages are generally referred to as "32-bit compatibility libraries” or “multi-arch support”, and the exact number and names of the required libraries may vary depending on the brand of Linux you are using.

Diagnosis

On the 64-bit Linux platform, if you attempt to load a video and you have to use the external decoder and it fails, determine if your Linux platform needs patching by running 32-bit mencoder or other video decoders.

 

To test for this problem:

1.Go to the root of your Altair HyperWorks installation, then go to the hw/examples/video/bin/linux64 directory.
2.Run ./mencoder.  If the following message is displayed:

mencoder: error while loading shared libraries: libsmbclient.so.0: wrong ELF class: ELFCLASS64

then you need a 32-bit version of the package mentioned in the error.  In this case, libsmbclient.

To fix this problem:

Obtain and install the missing 32-bit compatibility packages stated in the error message for your Linux 64-bit platform.
Note:You may support from your IT department, as you need to be logged in with root access to install the package, and also must determine the exact 32-bit packages that are missing.

Why not just use a 64-bit video decoder?

Most of the important video compression formats cannot be obtained in 64-bit libraries.  A 64-bit version of mencoder cannot use the 32-bit codecs that come with it and are necessary to decode such video formats as Indeo 4 and 5.

Requirements from mencoder

POSIX system - You need a POSIX-compatible shell and POSIX-compatible system tools like grep, sed, awk, and so on, in your path.
GNU make 3.81 or later
binutils - GNU binutils 2.11 or later.
compiler - We mostly use gcc, the recommended versions on x86 are 2.95 and 3.4+.  On PowerPC, use 4.x+.  icc 10.1+ is also recommended.
Xorg/XFree86 - recommended version is 4.3 or later. Make sure the development packages are installed, too, otherwise it will not work.  It is not required that you have X; some video output drivers work without it.
FreeType - 2.0.9 or later is required for the OSD and subtitles
ALSA - optional, for ALSA audio output support.  At least 0.9.0rc4 is required.
libjpeg - required for the optional JPEG video output driver
libpng - required for the optional PNG video output driver
directfb - optional, 0.9.22 or later required for the directfb/dfbmga video output drivers
lame - 3.98.3 or later, necessary for encoding MP3 audio with MEncoder
zlib - recommended, many codecs use it.
LIVE555 Streaming Media - optional, needed for some RTSP/RTP streams
cdparanoia - optional, for CDDA support
libxmms - optional, for XMMS input plug-in support.  At least 1.2.7 is required.
libsmb - optional, for SMB networking support
libmad - optional, for fast integer-only MP3 decoding on FPU-less platforms

Requirements from ldd

linux-gate.so.1 => (0xffffe000)
libncurses.so.5 => /usr/lib/libncurses.so.5 (0xf7f05000)
libsmbclient.so.0 => not found
libpng12.so.0 => /usr/lib/libpng12.so.0 (0x00311000)
libz.so.1 => /lib/libz.so.1 (0x00944000)
libmng.so.1 => /usr/lib/libmng.so.1 (0xf7e82000)
libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x00531000)
libungif.so.4 => /usr/lib/libungif.so.4 (0xf7e7f000)
libasound.so.2 => /lib/libasound.so.2 (0x00738000)
libdl.so.2 => /lib/libdl.so.2 (0x006fb000)
libpthread.so.0 => /lib/libpthread.so.0 (0x006e0000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x0041f000)
libbz2.so.1 => /usr/lib/libbz2.so.1 (0x004b6000)
libm.so.6 => /lib/libm.so.6 (0x00702000)
libc.so.6 => /lib/libc.so.6 (0x00585000)
liblcms.so.1 => /usr/lib/liblcms.so.1 (0xf7e47000)
libgif.so.4 => /usr/lib/libgif.so.4 (0xf7e3e000)
librt.so.1 => /lib/librt.so.1 (0x0072d000)
/lib/ld-linux.so.2 (0x00566000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00101000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x0092b000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00d47000)

Requirements for Linux 64-bit

Below are the names only, minus version number, of all the i686 packages that are needed to make this tool work:

1.ncurses-libs
2.libsmbclient
3.libcap
4.libattr
5.libcom_err
6.db4
7.cyrus-sasl-lib
8.keyutils-libs
9.libselinux
10.krb5-libs
11.sqlite
12.readline
13.openldap
14.nspr
15.nss-util
16.nss
17.nss-softokn
18.zlib
19.audit-libs
20.pam
21.cracklib
22.libtdb
23.samba-winbind-clients
24.libtalloc
25.libpng
26.libmng
27.lcms-libs
28.libjpeg
29.giflib
30.libICE
31.libSM
32.libX11
33.libXau
34.libuuid
35.libxcb
36.libuuid
37.alsa-lib
38.freetype
39.bzip2-libs

Example - libsmbclient Library Requirement

Package

Arch

Version

Repository

Size

Installing:

libsmbclient                                    

i686    

3.5.10-114.el6    

/libsmbclient-3.5.10-114.el6.i686

6.5 M

Installing for dependencies:

audit-libs

i686

2.1.3-3.el6

dvd

59 k

cracklib

i686

2.8.16-4.el6

dvd

70 k

cyrus-sasl-lib

i686  

2.1.23-13.el6

dvd

135 k

db4

i686

4.7.25-16.el6  

dvd

580 k

keyutils-libs

i686

1.4-3.el6

dvd

20 k

krb5-libs

i686  

1.9-22.el6      

dvd

716 k

libselinux

i686  

2.0.94-5.2.el6              

dvd

107 k

libtalloc

i686  

2.0.1-1.1.el6          

dvd

18 k

libtdb

i686  

1.2.1-3.el6                  

dvd

29 k

nspr

i686  

4.8.8-3.el6      

dvd

113 k

nss

i686  

3.12.10-16.el6              

dvd

778 k

nss-softokn  

i686  

3.12.9-11.el6              

dvd

172 k

nss-util

i686  

3.12.10-2.el6                

dvd

46 k

openldap

i686  

2.4.23-20.el6                

dvd

261 k

pam

i686  

1.1.1-10.el6                

dvd

656 k

readline

i686  

6.0-3.el6                    

dvd

176 k

samba-winbind-clients

i686  

3.5.10-114.el6            

dvd

1.1 M

sqlite

i686  

3.6.20-1.el6                

dvd

307 k

zlib

i686  

1.2.3-27.el6            

dvd

72 k

Transaction Summary

Install 20 Package(s)

Example 2 - giflib requirements

Package

Arch

Version

Repository

Size

Installing:

giflib

i686

4.1.6-3.1.el6

/giflib-4.1.6-3.1.el6.i686

78 k

Installing for dependencies:

libICEi686

i686

1.0.6-1.el6

dvd

52 k

libSM

i686

1.1.0-7.1.el6

dvd

26 k

libX11

i686  

1.3-2.el6

dvd

585 k

libXau

i686

1.0.5-1.el6

dvd

22 k

libuuid

i686

2.17.2-12.4.el6

dvd

65 k

libxcb              

i686  

1.5-1.el6                  

dvd

103 k

Transaction Summary

Install 7 Package(s)