xvid won't install in opensuse 10.3

Hello -

I had kaffeine 0.8.7 working in opensuse 10.3. Then I tried to install ffmpeg so I could convert a file, and mucked up my packages I guess. Now the same .avi and .mkv files that worked fine last week are audio-only.

What I tried: I have uninstalled everything for ffmpeg, removed videolan repository, uninstalled kaffeine (several times), ensured ALL my packages were updated last night, manually added libdvdcss2, installed the xvid packages manually and using the one-click method from packman twice. In between each change, I check and kaffeine is still sound only. (I also installed mplayer and vlc and neither of them had video.)

One forum suggested this command
rpm -q kaffeine libxine1 libffmpeg0 w32codec-all xvid libquicktime0
package xvid is not installed

I have ensured that everything is packman-flavoured, there are no package conflicts and manually installed libffmpeg0, xvidcore and libquicktime0, then libcore4, then xvidcore, libxvidcore and finally even libxvid-devel, but as you can see xvid is still not installed. (I also read the “Check your multimedia” post, but I think* “package xvid is not installed” *is clear enough.)

Please, what step am I missing? I am not really computer-ept, but I can find my terminal and yast. Help on how to get xvid back in my laptop would be appreciated.

Also tried:
*rpm --query --queryformat '%{NAME}-%{VERSION}-%{RELEASE}-%{ARCH} → %{VENDOR}

libxine1 libxine1-codecs
libxine1-1.1.15-44.pm.0-i686 → (none)
libxine1-codecs-1.1.15-44.pm.0-i686 → (none)

I changed to the i586 versions (in case it was a cpu issue - I have a Pentium-4m). Got the same respones with rpm, except i586 now. Is this because I manually installed libdvdcss2 without a repository? Is this why xvid won’t install?

There is no package “xvid” anymore, now it’s libxvidcore4. But anyway that isn’t really so important.

If all deps are correct having libxine1-codecs should be enough to have video in Kaffeine. But since 10.3 zypper seems to not have the “verify” option…

Perhaps executing Kaffeine from Konsole gives useful information. If not, the output of

$ ldd $(rpm -ql libxine1 libxine1-codecs | fgrep '.so')

could show the problem.

Thanks for explaining about the xvid library. The output to your command runs off the terminal, but an excerpt is

*ldd $(rpm -ql libxine1 libxine1-codecs | fgrep ‘.so’) *

linux-gate.so.1 => (0xffffe000)
libxine.so.1 => /usr/lib/libxine.so.1 (0xb7eb4000)
libX11.so.6 => /usr/lib/libX11.so.6 (0xb7d99000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb7d95000)
libXext.so.6 => /usr/lib/libXext.so.6 (0xb7d86000)
libdl.so.2 => /lib/libdl.so.2 (0xb7d81000)
libm.so.6 => /lib/libm.so.6 (0xb7d5c000)
libc.so.6 => /lib/libc.so.6 (0xb7c29000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7bba000)
libz.so.1 => /lib/libz.so.1 (0xb7ba7000)
librt.so.1 => /lib/librt.so.1 (0xb7b9e000)
libresolv.so.2 => /lib/libresolv.so.2 (0xb7b8a000)
libnsl.so.1 => /lib/libnsl.so.1 (0xb7b73000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb7b5c000)
libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0xb7b59000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb7b40000)
libXau.so.6 => /usr/lib/libXau.so.6 (0xb7b3b000)
/lib/ld-linux.so.2 (0x80000000)

Is it just showing where files are physically loaded?

I also followed all the 10 steps, but don’t think anything shows up there (except no gstreamer-0_10 packages, but I’m not using that engine)

I installed apt and reinstalled the whole thing from there (packman only), and still have the same problem.

Thanks for the tip on libxvid - it was already installed.

latest: *rpm -q kaffeine libxine1 libffmpeg0 w32codec-all libxvidcore4 *libquicktime0
package kaffeine is not installed

(I just uninstalled kaffeine again.) Should I try 686 again? I’m doing this trial and error for 2 nights and nothing changes. Kaffeine runs, sound but no video on existing .avi and .mkv files that ran the day before this started.

I’m pretty sure it’s something I did when trying to install ffmpeg.

Thanks for looking at this.

With some luck a

ldd $(rpm -ql libxine1 libxine1-codecs | fgrep '.so') | fgrep 'not found'

should be enough. It will only output “not found” and error messages.

Other options… remove kaffeine options (~/.kde/share/config/kaffeinerc and ~/.kde/share/apps/kaffeine)… and, Kaffeine can use both xine and gstreamer, you double checked that you are using xine, true?

Thanks for following up on this one. I know this is a common problem, but still no joy here.

(rpm -ql libxine1 libxine1-codecs | fgrep ‘.so’) | fgrep ‘not found’
gives no response (meaning everything’s ok, right?)

With kaffeine uninstalled, I just tried a couple files in xine. That program actually gives useful messages:

  • avi#1 message: The stream … uses an unsupported codec: Video Codec: ISO-MPEG4/OpenDivx (FMP4) (null)
  • avi#2: unsupported Video Codec: XviD (XVID) (null)
  • mkv: unsupported Video Codec: Advanced Video Coding (H264) (0x0) (null)

It seems it just can’t find the codecs. Xine is set to look in /usr/lib/win32 which has a pile of files in it, but I don’t see anything with these names, else I don’t know what the specific codec name looks like. I see

  • libxine.so.1 and libxine.so.1.24.0
  • a xine folder with “plug-ins” (.so) in sub-sub-folders
  • RealPlayer10/codecs folder with .so files (but that’s proprietary stuff, right?)

Can you please tell me what files I should be looking for, so I can search if there is another directory where these are hiding?

On the bright side, I feel certain it is just missing codecs now. Vielen Dank.

At this point I would try with another xine-based player, gxine or xine-ui. Just to know if the problem is xine or Kaffeine specific.

/opt/kde3/bin/kaffeine uses
/opt/kde3/lib/kde3/libxinepart.so that uses
/usr/lib/libxine.so.1 that uses
/usr/lib/xine/plugins/1.24/xineplug_decode_ff.so that uses

OpenDivx, XVID and H264… all of them are decoded by libavcodec. But to load a library you need all the deps, even if they aren’t needed to play that specific video… so you can have a problem with a Vorbis library that avoids you to play XVID. That’s why the “zypper ve” is so important.

Thanks for explaining - what a tangled knot!

Newbie error: In my last, I mentioned trying to play the files in xine - I guess I mean xine-ui. That’s what gave me the specific error messages.

I found libavcodec52 was installed, but not libavcodec51. They don’t conflict, so just downloaded that and gxine. When I added gxine, Yast added a few dependencies that never came up for kaffeine - sorry, I missed copying them. (Is libavcodec51 just an older version of 52?)

Unfortunately … neither xine-ui nor gxine display the video still. I’m using packman only - is it possible that is a bad version of libavcodec52? Also, something strange in Yast, in the version tab, it lists libavcodec52 verions like:

  • i586 with a green checkmark under product after it and a yellow box before it
  • i686 (not selected)
  • i586 Packman Repo (selected)

Does that mean the i586 packman version is installed or the first one? And is it okay to use i586 when arch = i686 (terminal).

It’S BACK!!! Due to my impatience with a 15kBps connection I updated libavcodec51 and 52 together, so I don’t know which it was that worked, but I have video in kaffeine now (and I’m not going to an ffmpeg install again without a professional riding shotgun).

Your tips really helped me to keep going. And now I have a pure packman install and I know where my codecs live.

sidenote: The LC_ALL=C zypper ve doesn’t run in my shell - it says no such command as ve. Is bash the right kind of shell?

Thank you! I really appreciate you sticking around for days.

In case someone else has the same problem, if a multimedia player like kaffeine or xine runs and you have audio but no video, it is probably a problem with a missing codecs (video format decoder). Even if you have all the codecs installed, it appears that adding another related package (ffmpeg in this case) could change something.

Some of the most common codecs (eg H264, MPeG4/OpenDivx, Xvid) are in the package libavcodec52. But all of these codec files are called by other libraries, that are called by others, eventually by the player, so finding the libavcodec52.so library in your folder isn’t enough.

The short solution is to use yast to sort out any package dependencies. You might not know you have one, but if you update libavcodec52, eg, yast will find any problems in the process. (Those conflict resolution steps are important!)

At least that’s what happened here :wink:

The problem is the zypper version. I think “ve” is an option added in the zypper from openSUSE 11.0… so it isn’t available on 10.3.

libavcodec51/52… yes 52 is a newer version. Sometimes a library makes a change that breaks the compatibility with older versions, and that number is increased. Since they are incompatible between them an app could need the older version while others need the newer… having both available with different names allows zypper to install both at the same time. zypper will install automatically the correct version needed by your apps.