XVid will not play in Suse 10.3 VLC [solved]

*nix specific usage questions
vlcuser01
Blank Cone
Blank Cone
Posts: 25
Joined: 17 Sep 2007 17:36

XVid will not play in Suse 10.3 VLC [solved]

Postby vlcuser01 » 29 Nov 2007 22:04

I compiled VLC on Suse 10.3 from source code to enable s/pdif (thanks a lot for the patch in this topic!!). However, now I cannot playback xvid files, which I could do in Suse 10.2 with the same sourcecode/patch. Get the infamous error:

Code: Select all

[00000277] main decoder error: no suitable decoder module for fourcc `XVID'. VLC probably does not support this sound or video format.
Now i found this topic. It advices to recompile ffmpeg w/ xvid support. But I think my ffmeg already has xvid support. Because when I type in a terminal: "ffmpeg | grep xvid" I get:

Code: Select all

configuration: --enable-libxvid
Any ideas how to get xvid support in VLC?
Last edited by vlcuser01 on 11 Dec 2007 10:07, edited 1 time in total.

thresh
Site Administrator
Site Administrator
Posts: 92
Joined: 22 Mar 2006 11:28
VLC version: git master
Operating System: Linux
Location: Korolev, Russian Federation

Re: XVid will not play in Suse 10.3 VLC

Postby thresh » 29 Nov 2007 22:27

build your vlc with ffmpeg enabled

or just use prebuilt rpms by dimstar

vlcuser01
Blank Cone
Blank Cone
Posts: 25
Joined: 17 Sep 2007 17:36

Re: XVid will not play in Suse 10.3 VLC

Postby vlcuser01 » 30 Nov 2007 10:12

build your vlc with ffmpeg enabled

or just use prebuilt rpms by dimstar
Thnaks for your reply. But ffmpeg is enabled by default. And Dimstar's website is for Suse 10.2 (I use 10.3 now). ;) And I do not know if Dimstar patches VLC for the s/pfif passthrough bug, which is why I compile VLC from source in the frist place.

I'll keep on trying. Will let y'all know if I succeeded. :)

vlcuser01
Blank Cone
Blank Cone
Posts: 25
Joined: 17 Sep 2007 17:36

Re: XVid will not play in Suse 10.3 VLC

Postby vlcuser01 » 30 Nov 2007 13:18

This is getting weirder and weirder. Yesterday I removed the ffmpeg package from my system (because I thought there might something wrong w/ the xvid support in it...), and I compiled ffmpeg from source code (with xvid support). Then I got an error message about VLC's ./configure not being able to find header files for ffmpeg. Making ./configure look in /usr/local (in which ffmpeg was installed) it still looked in the wrong directory, so I copied the header files in that didectory myself: didn't work either.

So now I uninstalled the source code ffmpeg and installed the Suse (pacman) ffmpeg and ffmpeg development packages again. The configure script returned a message that it did find ffmpeg. However: still no xvid playback...

Any ideas anybody? Is it vlc? Is it ffmpeg? Is it suse's ffmpeg package that is erroneous? Is is Suse 10.3?

vlcuser01
Blank Cone
Blank Cone
Posts: 25
Joined: 17 Sep 2007 17:36

Re: XVid will not play in Suse 10.3 VLC

Postby vlcuser01 » 30 Nov 2007 13:26

P.S. ffplay (which I think is the player from ffmpeg) plays xvid files just fine. So it's probably not ffmpeg...



So whats wrong?

dimstar
Cone that earned his stripes
Cone that earned his stripes
Posts: 177
Joined: 15 Dec 2006 14:05
Location: Bucuresti, Romania
Contact:

Re: XVid will not play in Suse 10.3 VLC

Postby dimstar » 30 Nov 2007 13:32

Hi,

first: the VLC Project offers own RPMs for openSUSE 10.3 too (check the website http://download.videolan.org/vlc/download-suse.html, there is even a 1-click install for openSUSE 10.3).

The other question: no, that patch is not included in the packages 0.8.6c. But rumour has it that 0.8.6d will have it included (no idea about a release date though, but I think it's not to far in the future...)

DimStar

vlcuser01
Blank Cone
Blank Cone
Posts: 25
Joined: 17 Sep 2007 17:36

Re: XVid will not play in Suse 10.3 VLC

Postby vlcuser01 » 30 Nov 2007 14:05

Thank you for your help. :) Alas, a mediaplayer without s/pdif passthrough is useless to me: I use my PC as a mediacenter which is connected to my Dolby Digital Receiver.... So applying the patch is an absolute necessity.

bsod_gcc
Blank Cone
Blank Cone
Posts: 11
Joined: 30 Jun 2007 15:31

Re: XVid will not play in Suse 10.3 VLC

Postby bsod_gcc » 30 Nov 2007 15:01

Hi vlcuser01:
I have had the same problem.
I found that the VLC ffmpeg plugin (libffmpeg.so) was able to find the ffmpeg shared libraries, but the ffmpeg decoder still was not listed when I run 'vlc --list', and of course XVID files do not play - same error as you mentioned.
But I've got VLC and ffmpeg working properly now.
From my experience there are 2 ways to get VLC working.
First is to link in a static ffmpeg (libavcodec.a etc) while keeping the use of plugins in VLC.
The second is to build a static VLC. The advantage to this is that you can use a shared ffmpeg (libavcodec.so.xx.xx etc).

For the first method: Do a static build of ffmpeg, and then configure VLC using '--with-ffmpeg-tree=PATH_TO_FFMPEG_SRCDIR'.

For the second method: Do a shared build of ffmpeg the usual way:
'./configure --enable-shared' and then 'make install', followed by 'ldconfig' to get the libraries detected.
Then, configure VLC to be built statically: '--enable-libtool --enable-static --disable-shared --disable-plugins'
'--enable-libtool' and '--disable-plugins' are very important.
'--enable-libtool' specifies the use of libtool to keep track of library dependencies for the static plugins, etc, which are to be built. Without this flag, it seems that we will encounter numerous 'undefined reference to xxx' errors during the build.
'--disable-plugins' specifies that all plugins are to be made built-in.
Of course, GNU libtool must be installed on your system for '--enable-libtool' to be of any use.
Going by the above steps, it should be relatively simple to build a working VLC.
At least I hope.
Good luck!

vlcuser01
Blank Cone
Blank Cone
Posts: 25
Joined: 17 Sep 2007 17:36

Re: XVid will not play in Suse 10.3 VLC

Postby vlcuser01 » 30 Nov 2007 18:48

Thanks for the info. :) The option "--with-ffmpeg-tree" I tried before (when I compiled ffmpeg from source): the problem with that is that VLC look in /usr/lib/libavcodec, but the header files (libavcodec. a etc.) do not reside in a seperate directory: they're all placed in the same dir. Wwen I copied them to a seperate dir in which VLC's configure script looks for them, "make" did not finish. It ended w/ an eror message.

I tried to compile vlc w/ "./configure "--enable-libtool --enable-static --disable-shared --disable-plugins" (and the ffmpeg packman package for Suse 10.3). But then the "make install" ends in an error....

Compiling ffmpeg from source and then compiling vlc w/ "./configure ----with-ffmpeg-tree=/usr/local/lib" (i.e. your "method 1") does not work, because ffmpeg does not place the *.a files in seperate directories. And vlc's configure looks in those dir's

So then I tried compiling ffmpeg from source w/ the options you described in "method 2" (i.e. ./configure --enable-shared). Then vlc's "make" ends with the error:

Code: Select all

mux.c: In function 'OpenMux__ffmpeg': mux.c:136: error: incompatible types in assignment mux.c: In function 'CloseMux__ffmpeg': mux.c:160: warning: comparison between signed and unsigned make[5]: *** [libffmpeg_builtin_la-mux.lo] Error 1
I have no idea how to get VLC working with ffmpeg and s/pdif out (that is: compiling vlc from source). Strange isn't it?

dimstar
Cone that earned his stripes
Cone that earned his stripes
Posts: 177
Joined: 15 Dec 2006 14:05
Location: Bucuresti, Romania
Contact:

Re: XVid will not play in Suse 10.3 VLC

Postby dimstar » 01 Dec 2007 01:19

Just to let you know:

Version 0.8.6d was just released and the RPMs for openSUSE are available.
I hope this might also solve your problems here in an easy way.

Best regards,
DimStar

bsod_gcc
Blank Cone
Blank Cone
Posts: 11
Joined: 30 Jun 2007 15:31

Re: XVid will not play in Suse 10.3 VLC

Postby bsod_gcc » 01 Dec 2007 02:34

The option "--with-ffmpeg-tree" I tried before (when I compiled ffmpeg from source): the problem with that is that VLC look in /usr/lib/libavcodec, but the header files (libavcodec. a etc.) do not reside in a seperate directory: they're all placed in the same dir. Wwen I copied them to a seperate dir in which VLC's configure script looks for them, "make" did not finish. It ended w/ an eror message.
Compiling ffmpeg from source and then compiling vlc w/ "./configure --with-ffmpeg-tree=/usr/local/lib" (i.e. your "method 1") does not work, because ffmpeg does not place the *.a files in seperate directories. And vlc's configure looks in those dir's
'--with-ffmpeg-tree' refers to the 'source tree', which means where you unpacked the ffmpeg source.
e.g. (from my VLC config)

Code: Select all

./configure \ --with-ffmpeg-tree=/mnt/hda13/src/multimedia/ffmpeg
The source directory has the separate directories where the various '.a' library files are made. To illustrate:

Code: Select all

box:/mnt/hda13/src/multimedia/ffmpeg# ls COPYING.GPL INSTALL cmdutils.h ffmpeg.c libavdevice output_example.c COPYING.LGPL MAINTAINERS common.mak ffplay.c libavformat tests CREDITS Makefile configure ffserver.c libavutil tools Changelog README doc ffserver.h libpostproc version.sh Doxyfile cmdutils.c ffinstall.nsi libavcodec libswscale vhook
When ffmpeg has been built, we will have 'libavcodec/libavcodec.a' and 'libavformat/libavformat.a' etc in their separate directories. That is when you can start configuring VLC.
So then I tried compiling ffmpeg from source w/ the options you described in "method 2" (i.e. ./configure --enable-shared). Then vlc's "make" ends with the error:

Code: Select all

mux.c: In function 'OpenMux__ffmpeg': mux.c:136: error: incompatible types in assignment mux.c: In function 'CloseMux__ffmpeg': mux.c:160: warning: comparison between signed and unsigned make[5]: *** [libffmpeg_builtin_la-mux.lo] Error 1
It is possible that the above code gives a warning under gcc-3.x, but gives an error under gcc-4.x because gcc-4.x is more strict. Therefore, you might be able to avoid the error by using gcc-3.3/gcc-3.4.

bsod_gcc
Blank Cone
Blank Cone
Posts: 11
Joined: 30 Jun 2007 15:31

Re: XVid will not play in Suse 10.3 VLC

Postby bsod_gcc » 01 Dec 2007 03:10

Alternatively, as dimstar mentioned above, you might prefer to install the new RPMs for OpenSuSE.

In this case, you might want to remove the files installed from your ffmpeg and VLC builds to avoid conflicting with the RPM packages.

You can go to the ffmpeg and VLC source directories and do 'make uninstall'.

Or, you can remove the files manually.
For ffmpeg:

Code: Select all

ffmpeg libraries: /usr/local/lib/libav* /usr/local/lib/libpostproc* pkg-config files: /usr/local/lib/pkgconfig/libav*.pc /usr/local/lib/pkgconfig/libpostproc.pc ffmpeg headers: /usr/local/include/ffmpeg/
For VLC:

Code: Select all

VLC binaries: /usr/local/bin/*vlc* VLC library: /usr/local/lib/libvlc* VLC plugins: /usr/local/lib/vlc/ VLC headers: /usr/local/include/vlc/ VLC shared data files: /usr/local/share/applications/vlc.desktop /usr/local/share/doc/vlc/ /usr/local/share/vlc/

vlcuser01
Blank Cone
Blank Cone
Posts: 25
Joined: 17 Sep 2007 17:36

Re: XVid will not play in Suse 10.3 VLC

Postby vlcuser01 » 01 Dec 2007 12:26

Code: Select all

--with-ffmpeg-tree=/mnt/hda13/src/multimedia/ffmpeg
The source directory has the separate directories where the various '.a' library files are made.
Boy am I stupid! Thank you for the info. Also, thank you for the gcc4 / gcc3 clarification. That info may come in very handy when compiling other applications that do not have a Suse 10.3 package (yet). :)

Anyway, I one-click installed VLC 0.8.6d. Works like a charm!! I've got xvid and s/pdif working now. Thanks all. :)


Return to “VLC media player for Linux and friends Troubleshooting”

Who is online

Users browsing this forum: No registered users and 21 guests