PDA

View Full Version : MPlayer was compiled without libfaac. See README or DOCS



Vector
16th December 2009, 08:51 PM
[root@hate ~]# yum provides "*libfaac*"
Loaded plugins: presto, refresh-packagekit
adobe-linux-i386/filelists | 140 kB 00:01
updates/filelists_db | 3.6 MB 00:21

faac-1.28-2.fc12.x86_64 : Encoder and encoding library for MPEG2/4 AAC
Repo : installed
Matched from:
Other : libfaac.so.0()(64bit)
Filename : /usr/lib64/libfaac.so.0
Filename : /usr/share/doc/faac-1.28/libfaac.pdf
Filename : /usr/share/doc/faac-1.28/libfaac.html
Filename : /usr/lib64/libfaac.so.0.0.0



faac-devel-1.28-2.fc12.x86_64 : Development libraries of the FAAC AAC encoder
Repo : installed
Matched from:
Filename : /usr/lib64/libfaac.so


This did not work:

yum reinstall mplayer mencoder

Neither did this:

yum remove mplayer mencoder
yum -y install mplayer mplayer-gui mencoder

Any ideas how to get around this?

PabloTwo
17th December 2009, 01:56 AM
faac is the AAC encoder. Did you also install the AAC decoder? faad2 ? To playback AAC files you need the decoder.

Vector
17th December 2009, 01:58 AM
Yeah, i have faad, faac, faad2, etc all installed, and most all multimedia codecs in general, as i do a lot of transcoding...

Thanx.

SuperNu
17th December 2009, 04:34 AM
In order to get around mplayer not being compiled with faac, you will need to recompile the src.rpm. According to this email (http://lists.rpmfusion.org/pipermail/rpmfusion-users/2009-November/000549.html) (regarding ffmepg but would cover all multimedia software) the faac license is not gpl compliant. Therefore, they cannot compile any software which links to faac without disabling gpl portions.

--SN

Vector
17th December 2009, 04:44 AM
Wow, that sucks. Well, thanks for the info; i guess i have to get around to doing it. I just wonder what the faac license IS then.........

Thanx

SuperNu
17th December 2009, 06:07 AM
According to this (http://www.audiocoding.com/faac.html), the faac license can be found in the README file which should be located in /usr/share/doc/faac-1.28/.

I understand your frustration as well. There are many packages that I use which use faac or lame and I need to constantly recompile from the src.rpm. I guess it gives my cpu something to do instead of idle. :)

--SN

Vector
5th January 2010, 06:19 AM
Ok, now for the million dollar question:

How do i recompile mplayer from src.rpm to include the rpms that i have to faac and faad? I know how to "compile", in general, but i'm sure that this is going to be different since i have faad and faac rpms installed, and i've never compiled from a source rpm before (i don't know what to do with them).

SuperNu
5th January 2010, 06:43 AM
First, be sure faac-devel and faad-devel are installed. Next, from the command line, run rpmbuild --rebuild --with faac mplayer-1.0-0.111.20091029svn.fc12.src.rpm (or whatever the .src.rpm is named).

--SN

Vector
5th January 2010, 06:55 AM
Great! Thanks for the help; i didn't really want to learn ffmpeg's commands when i already know mencoder so well :D

---------- Post added at 12:55 AM CST ---------- Previous post was at 12:47 AM CST ----------



[root@hate ~]# rpmbuild --rebuild --with faac mplayer-1.0-0.111.20091029svn.fc12.src.rpm
error: cannot open mplayer-1.0-0.111.20091029svn.fc12.src.rpm: No such file or directory

[root@hate ~]# yum install mplayer-1.0-0.111.20091029svn.fc12.src.rpm
No package mplayer-1.0-0.111.20091029svn.fc12.src.rpm available.

[root@hate ~]# yum list mplayer*.src.rpm --enablerepo=*
Error: No matching Packages to list
[root@hate ~]#

I'm still new, so uhhh, how do i FIND the src.rpm?
Thanks :rolleyes:

PabloTwo
5th January 2010, 03:18 PM
# yum install rpm-build rpmdevtools redhat-rpm-config

$ yumdownloader --source mplayer
As a regular user, in your regular user home directory, do:

$ rpmdev-setuptree
$ rpmbuild --rebuild --with faac mplayer-1.0-0.111.20091029svn.fc12.src.rpm
Of course, if the .src.rpm file isn't in the directory that you issue the rpmbuild command from, include the full path to it.

If it builds, you'll find the new mplayer rpm in ~/rpmbuild/RPMS/i686/. Chances are fairly high, however, that you'll still be missing a few *-devel rpm packages that you'll have to install before it will succeed.

Vector
6th January 2010, 03:40 AM
Thanks man, i got most of the way through this, but i keep getting stuck on an error:


[Vector@hate Desktop]$ rpmbuild --rebuild --with faac mplayer-1.0-0.111.20091029svn.fc12.src.rpm
....
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
error: line 37: Unknown tag: BuildRequires: faac-devel
[Vector@hate Desktop]$

But i DO have faac-devel install, as well as faad-devel and faac2-devel....

PabloTwo
6th January 2010, 04:48 AM
That should probably be "--with-faac" instead of "--with faac". Try that and see if it flies any better. I just did a copy and paste from SuperNu's post with his command line for the mplayer rebuild and didn't catch that.

---------- Post added at 10:48 PM CST ---------- Previous post was at 10:33 PM CST ----------

Maybe also look at the output of, and maybe post it here, of:

cat ~/rpmbuild/SPECS/mplayer*spec | grep BuildRequires

Vector
6th January 2010, 05:22 AM
[Vector@hate Desktop]$ rpmbuild --rebuild --with-faac mplayer-1.0-0.111.20091029svn.fc12.src.rpm
--with-faac: unknown option
[Vector@hate Desktop]$ rpmbuild --rebuild --with=faac mplayer-1.0-0.111.20091029svn.fc12.src.rpm
--with=faac: unknown option
[Vector@hate Desktop]$
[Vector@hate Desktop]$ cat ~/rpmbuild/SPECS/mplayer*spec | grep BuildRequires
BuildRequires: SDL-devel
BuildRequires: a52dec-devel
BuildRequires: aalib-devel
BuildRequires: alsa-lib-devel
BuildRequires: cdparanoia-devel
BuildRequires: desktop-file-utils
BuildRequires: em8300-devel
BuildRequires: enca-devel
%{?_with_faac: BuildRequires: faac-devel}
BuildRequires: faad2-devel >= %{faad2min}
BuildRequires: fontconfig-devel
BuildRequires: freetype-devel >= 2.0.9
BuildRequires: fribidi-devel
BuildRequires: giflib-devel
BuildRequires: gtk2-devel
BuildRequires: ladspa-devel
BuildRequires: lame-devel
BuildRequires: libGL-devel
BuildRequires: libXinerama-devel
BuildRequires: libXScrnSaver-devel
BuildRequires: libXv-devel
BuildRequires: libXvMC-devel
BuildRequires: libXxf86dga-devel
BuildRequires: libXxf86vm-devel
BuildRequires: libcaca-devel
BuildRequires: libdca-devel
BuildRequires: libdv-devel
BuildRequires: libdvdnav-devel >= 4.1.3-1
BuildRequires: libjpeg-devel
BuildRequires: libmpcdec-devel
BuildRequires: libtheora-devel
BuildRequires: libvdpau-devel
BuildRequires: libvorbis-devel
BuildRequires: lirc-devel
BuildRequires: live555-devel
BuildRequires: lzo-devel >= 2
BuildRequires: pulseaudio-lib-devel
BuildRequires: schroedinger-devel
BuildRequires: speex-devel >= 1.1
BuildRequires: twolame-devel
BuildRequires: x264-devel >= 0.0.0-0.26.20091026
BuildRequires: xvidcore-devel >= 0.9.2
BuildRequires: yasm
%{?_with_arts:BuildRequires: arts-devel}
%{!?_without_amr:BuildRequires: opencore-amr-devel}
%{?_with_directfb:BuildRequires: directfb-devel}
%{?_with_esound:BuildRequires: esound-devel}
%{?_with_jack:BuildRequires: jack-audio-connection-kit-devel}
%{?_with_libmad:BuildRequires: libmad-devel}
%{?_with_nemesi:BuildRequires: libnemesi-devel >= 0.6.3}
%{?_with_openal:BuildRequires: openal-devel}
%{?_with_samba:BuildRequires: libsmbclient-devel}
%{?_with_svgalib:BuildRequires: svgalib-devel}
%{?_with_xmms:BuildRequires: xmms-devel}
BuildRequires: docbook-dtds
BuildRequires: docbook-style-xsl
BuildRequires: libxml2
BuildRequires: libxslt
[Vector@hate Desktop]$


Ha, i think that i'll just sit down for a day and read ffmpeg's manual again, and drop mencoder. Thanks for the help.

PabloTwo
6th January 2010, 03:29 PM
Well, it appears that "--with faac" was the correct syntax, as that didn't throw off any error when you used it the first time around. I would have to look over the whole mplayer spec file to understand

%{?_with_faac: BuildRequires: faac-devel}

And even then, I'm not sure I would as that is a bit unfamiliar to me. That line might be inside a 'conditional' statement. I'd suggest having a good read of the mentioned README and/or DOC file. You might get a better explanation of what needs to be done. You could find those files either from your current installed mplayer or in ~/rpmbuild/BUILD/mplayer*/somewhere

phil4v7
5th February 2010, 04:45 PM
I know this is a little old, but I ran into the same problem rebuilding with faac and I think I found the problem. I wanted to post in case anyone else ran into the same problem. Apparently, whoever made the faac support conditional in the spec file added an extra space which causes the error you listed above. For me, replacing:

%{?_with_faac: BuildRequires: faac-devel}
%{?_with_faac:BuildRequires: faac-devel}

in the spec file got it working again. Of course I don't know how to replace the spec file in the actual source rpm, so I had to edit it in my rpmbuild tree and then rebuild with "rpmbuild -ba --with faac SPECS/mplayer.spec" from there instead. Such a simple thing as a misplaced space to cause me such frustration.

Edit: Apparently, I could have just used -bs with rpmbuild to get the source package. Learn something new every day when you read the man pages... :)

PabloTwo
5th February 2010, 05:52 PM
Nice catch. Using "rpmbuild -ba" means build all, which includes the .src.rpm pkg. So if you used -ba as the option to rpmbuild, then you already had the src.rpm pkg in ~/rpmbuild/SRPMS/ on a successful run.

What I usually do is use "rpmbuild -bb" (build the binaries only), until I have all the bugs worked out and the .spec file tweaked to my liking then I run "rpmbuild -bs" to generate the .src.rpm pkg. "-bs" generates only the .src.rpm pkg, which just packages the files in ~/rpmbuild/SOURCES/ and ~/rpmbuild/SPECS/ for the .spec file you used as the argument.