Slackware 13 64-bit Install problem

Hello :) ,

I've just recently tried downloading all the packages needed by kdenlive as well as kdenlive itself -- I used the instructions on the main page ( http://www.kdenlive.org/user-manual/downloading-and-installing-kdenlive/... ) to do this (though faac was found at a slightly different location ( http://www.slackware.org.uk/3rd-party/alien/restricted_slackbuilds/ ) . I've installed all the neccecary packages from alien bob's site, but if I try to start kdenlive I get a little window from the config wizard;

Checking MLT engine

* Melt (/usr/bin/melt)

X Avformat module (FFmpeg)

* DV module

* QImage

(the avformat module is missing!)

But according to ffpeg itself I do have (lib)avformat;


aaaaa@darkstar:~$ ffmpeg
FFmpeg version r20056, Copyright (c) 2000-2009 Fabrice Bellard, et al.
built on Sep 27 2009 14:41:45 with gcc 4.3.3
configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/man --enable-libmp3lame --enable-libfaac --enable-nonfree --enable-gpl --enable-version3 --enable-postproc --enable-avfilter --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libdc1394 --enable-libgsm --enable-libfaad --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libx264 --enable-memalign-hack --enable-pthreads --enable-x11grab --enable-bzlib --enable-zlib --enable-shared --enable-static --disable-debug --logfile=/tmp/ffmpeg_conf.log --extra-cflags='-I/tmp/build/tmp-ffmpeg/ffmpegdeps/usr/include -DRUNTIME_CPUDETECT' --extra-ldflags=-L/tmp/build/tmp-ffmpeg/ffmpegdeps/usr/lib
libavutil 50. 3. 0 / 50. 3. 0
libavcodec 52.36. 0 / 52.36. 0
libavformat 52.39. 0 / 52.39. 0 libavdevice 52. 2. 0 / 52. 2. 0
libavfilter 0. 5. 0 / 0. 5. 0
libswscale 0. 7. 1 / 0. 7. 1
libpostproc 51. 2. 0 / 51. 2. 0
At least one output file must be specified
aaaaa@darkstar:~$

Does anyone know what could be producing this problem? Thanks :)

ffmpeg package used : ffmpeg-r20056-x86_64-1alien.tgz

(System is 64 bit slackware on AMD Phenom IIx4 with 4GB RAM and a ATI HD Radeon PCIe 4850 Video card).

ljones

Did you use the package I provided? In which case I need a little bit of help to see if the problem is in the package itself.

I could have overlooked a flag somewhere stating 'avformat' in ffmpeg or even in kdenlive itself, I'll have to check that up yet, which -unfortunately- will probably take a few days, as my spare time unfortunately is quite limited.

The help I need is how I can see these checks after having them done already, where my memory is a tad too limited to recall if this check was indeed failing, and if so why I let it be (there actually could've been a pretty good reason for it).

Yep, I used the kdenlive packages from here http://www.kdenlive.org/user-manual/downloading-and-installing-kdenlive/... and the ffmpeg from http://www.slackware.com/~alien .

edit: I tried the 32-bit packages on a 32-bit system (slackware 13 still) on a different older system as well as the 64 bit packages on my main system, same problem x.x

ljones

Still needing feedback (not from you) to see if I can find this issue back in my own installation, as I obviously passed this "check" screen. There's a big chance I had to keep avformat out of the compile, but the reasoning (at this moment) I plain forgot.

Oop! Will be intresting to see kdenlive once it's up an' running though. Not used it before; last video editor I used in linux was cinelerra, and it has a *very* odd user interface....

ljones

Does kdenlive refuse to work for you totally or is it only missing a special part?
Just found the config wizard and saw I do have avformat, which makes me think you probably compiled ffmpeg without the non-free parts. (non-free is as in not freely redistributable; afaik these parts are free of charge for personal use, which is why ffmpeg cannot be distributed in a binary fashion other than with disabled functionality)

Anyway: did you install the package from Alien Bob or did you get his intall-script? If you obtained the package, it has disabled functionality for reasons described above. Get the install script and make sure that "USE_PATENTS" is "YES". Then run the script and replace the current package with this newly created package. That should do the trick for you.

I'll give that a try, as I used the package. :)

ljones

I gave it a try but unfortunatly it didn't seem to work, I still get the same error.

I used this for the slackbuild;

# -- PATENT ALERT! --
# FFmpeg can be built with MP3 audio encoder (needed for FLV videos) and AAC
# audio encoder (used in MP4) but these libraries are 'contaminated'
# with patents from Fraunhofer, Apple etc.
# You can build these patended algorithms into ffmpeg, and if you are an
# ordinary end user, no one will bother you for using them.
# For the binaries based on this SlackBuild that I distribute, it is a
# different story. I am not allowed to distribute binary packages that
# incorporate patented code. So here you go. My Slackware package was built
# with "USE_PATENTS=NO" i.e. without using the lame mp3 and aac libs.
#USE_PATENTS="NO"

USE_PATENTS=${USE_PATENTS:-"YES"}

PRGNAM=ffmpeg
VERSION=${VERSION:-r20056}
#VERSION=${VERSION:-0.5}

ARCH=${ARCH:-x86_64}

BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:--j7}
TAG=${TAG:-"alien"}

The first time I tried the slackbuild script it failed though that was down to having a second copy of the x264 library. The slackbuild completed after removal of that x264 library (I'm guessing the slackbuild makes its own).

I also tried reinstalling the kdenklive and mlt packages again, but to no effect x.x .

ljones

Strange indeed, had expected the issue to be solved now.
Since you seem to have obtained a newer install script for ffmpeg than I used, can you attach the slackbuild script for ffmpeg? I'll look for differences and see if they may or may not cause this problem.

Okies, I added the slackbuild I used. Only thing I changed (patents were already set to yes) in the script is the architecture to "x86_64".

I originally downloaded from here;

http://connie.slackware.com/~alien/slackbuilds/ffmpeg/build/

ljones

any further thoughts about this problem?

ljones

There is an avformat module in the mlt package. Maybe that (and not ffmpeg's libavformat) is what's missing (or failing to load at run time)? What output do you get from all of this on a terminal window:

ls /usr/lib/libmlt*
ls /usr/lib/mlt/
ldd -r /usr/lib/mlt/libmltavformat.so

My output of /usr/lib/libmlt* and /usr/lib/mlt were both empty ... though I'm using a 64-bit system here....so I'm guessing mine would be in lib64 rather than lib. Anyways, here I go ....

ls /usr/lib64/libmlt*
/usr/lib64/libmlt++.so@ /usr/lib64/libmlt++.so.3@ /usr/lib64/libmlt.so.0.4.6*
/usr/lib64/libmlt++.so.0.4.6* /usr/lib64/libmlt.so@ /usr/lib64/libmlt.so.2

ls /usr/lib64/mlt
libmltavformat.so* libmlteffectv.so* libmltkino.so* libmltoldfilm.so* libmltsox.so* libmltxml.so*
libmltcore.so* libmltfrei0r.so* libmltmelt.so* libmltplus.so* libmltvmfx.so*
libmltdgraft.so* libmltgtk2.so* libmltmotion_est.so* libmltqimage.so* libmltvorbis.so*
libmltdv.so* libmltkdenlive.so* libmltnormalize.so* libmltsdl.so* libmltxine.so*

ldd -r /usr/lib64/mlt/libmltavformat.so
linux-vdso.so.1 => (0x00007fff4dbff000)
libmlt.so.2 => /usr/lib64/libmlt.so.2 (0x00007fd0b4f64000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd0b4d48000)
libavformat.so.52 => /usr/lib64/libavformat.so.52 (0x00007fd0b4a43000)
libavcodec.so.52 => /usr/lib64/libavcodec.so.52 (0x00007fd0b3d53000)
libavutil.so.49 => not found
libswscale.so.0 => /usr/lib64/libswscale.so.0 (0x00007fd0b3b1f000)
libc.so.6 => /lib64/libc.so.6 (0x00007fd0b37af000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fd0b35ab000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd0b53c2000)
libavutil.so.50 => /usr/lib64/libavutil.so.50 (0x00007fd0b339b000)
libz.so.1 => /usr/lib64/libz.so.1 (0x00007fd0b3187000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x00007fd0b2f77000)
libm.so.6 => /lib64/libm.so.6 (0x00007fd0b2cf1000)
libmp3lame.so.0 => /usr/lib64/libmp3lame.so.0 (0x00007fd0b2a78000)
liboil-0.3.so.0 => /usr/lib64/liboil-0.3.so.0 (0x00007fd0b27e9000)
libtheora.so.0 => /usr/lib64/libtheora.so.0 (0x00007fd0b259c000)
libogg.so.0 => /usr/lib64/libogg.so.0 (0x00007fd0b2397000)
librt.so.1 => /lib64/librt.so.1 (0x00007fd0b218e000)

Looks like that libavutil.so.49 isn't there but ....

ls /usr/lib64/libavuti*
/usr/lib64/libavutil.a /usr/lib64/libavutil.so@ /usr/lib64/libavutil.so.50@ /usr/lib64/libavutil.so.50.3.0*

So it looks like it's wanting a different library -- should I just link it across though ?

I didn't know the ldd command worked for libraries!

ljones

I don't know if linking across would be wise. Clearly you have a newer libavutil installed, but the dynamic linker doesn't want to use it for some reason, maybe it is for a good reason such as a change in the API or such.

Have you tried "sudo ldconfig", which would update the library database? No harm in trying it, and there is a chance it might fix your problem.

In any case I expect the info above should help the package maintainer fix the problem.

Gave ldconfig a try but to no avail, still didn't work alas x.x . Also I get the same (libavutil) if I use the 32-bit packages on an older 32-bit machine as well (may well be the same problem with both 64 & 32 bit packages).

ljones

On my 32-bit ubuntu installation libmltavformat is happy using the latest libavutil.

EDIT: meant to say libavutil
ldd -r /usr/local/lib/mlt/libmltavformat.so | grep avutil
libavutil.so.50 => /usr/local/lib/libavutil.so.50 (0xb761d000)

Note I have mlt in /usr/local because I installed it from source code. I also have kdenlive, ffmpeg, and libx264 installed from source code.

My apologies for taking a long time, but I went looking and the info given is very valuable.
It seems that I built mlt with an older ffmpeg version, version, resulting in libavutil.so.49. What I find strange is that I'd say that it should link to libavutil.so instead of libavutil.so.49 (why else use dynamic linking?)

What you _can_ try, is linking your libavutil to a libavutil.so.49, then run ldconfig, so that the file is found. For the time being this is the best solution I can think of. It's defenitely not the cleanest way to accomplish this though, but ought to be a fairly safe temporary fix.

In a newer install script I will try to check out and see if this can be realized during install.

Okies, I'm just giving that a go right now. I think the problem exists for both the x86_32 as well as the x86_64, btw.

I used the following command, as root;


cd /usr/lib64
ln -s libavutil.so libavutil.so.49

Not tried it with any videos yet (just tried it now) but it seems to have removed the error. Kdenlive now puts a tick next to all of the installed modules, and there's a long list of avaliable codecs :) .

Edit: I tried it briefly to see if it would load a .flv file from youtube, so far so good.

ljones

I made a mistake here sorry.