449 lines
22 KiB
Plaintext
449 lines
22 KiB
Plaintext
Fedora Multimedia Installation HOWTO
|
||
|
||
Eric Steven Raymond
|
||
|
||
[http://www.catb.org/~esr/] Thyrsus Enterprises
|
||
Revision History
|
||
Revision 5.1 2006-03-25 Revised by: esr
|
||
Simplified and corrected some FC5 instructions.
|
||
Revision 5.0 2006-03-21 Revised by: esr
|
||
Update for Fedora Core 5. On the one hand, we can get almost everything from
|
||
livna now, which simplifies life. On the other hand, Totem and Xine are both
|
||
completely broken.
|
||
Revision 4.0 2005-10-09 Revised by: esr
|
||
Update for Fedora Core 4. The fedora.us repositories have become Fedora
|
||
Extras. Adobe Acrobat plugin no longer seems to be necessary, xpdf and evince
|
||
must have gotten better.
|
||
Revision 3.0 2004-11-07 Revised by: esr
|
||
Update for Fedora Core 3.
|
||
Revision 2.2 2004-09-07 Revised by: esr
|
||
Corrections for 2.6.8 kernel and Mozilla 1.7.
|
||
Revision 2.1 2004-08-03 Revised by: esr
|
||
RealPlayer 10 is out in open source. This changes some things.
|
||
Revision 2.0 2004-07-14 Revised by: esr
|
||
Updated for FC2. Removed up2date methods, as FC2 update seems to be broken.
|
||
Revision 1.2 2004-02-03 Revised by: esr
|
||
Typo fixes.
|
||
Revision 1.1 2004-01-31 Revised by: esr
|
||
Dag Wieers's repository is yum-enabled, so drop apt-get out of the picture.
|
||
Add mozilla-acroread installation. Add some attack-lawyer repellant.
|
||
Revision 1.0 2004-01-30 Revised by: esr
|
||
Initial release.
|
||
|
||
|
||
How to get various proprietary and restricted multimedia Damned Things (AVI,
|
||
Flash, Java, MP3, MPEG, QuickTime, RealMedia, Windows Media) working under
|
||
Fedora Core using your normal package-management tools. Includes
|
||
Firefox-plugin instructions. Now with coverage of both 32- and 64-bit
|
||
Intel-architecture systems.
|
||
|
||
Unfortunately, the news in FC5 is almost all bad. Totem and Xine are both
|
||
completely broken.
|
||
|
||
-----------------------------------------------------------------------------
|
||
Table of Contents
|
||
1. Introduction
|
||
1.1. New versions of this document
|
||
|
||
|
||
2. Packages, Tools and Repositories
|
||
3. Security considerations and other risks
|
||
4. Macromedia Flash
|
||
5. gstreamer and ffmpeg support
|
||
6. MP3
|
||
7. Java
|
||
8. RealAudio and RealVideo
|
||
9. MPEG, QuickTime, AVI, and DVDs
|
||
10. Test pages for Web streaming
|
||
11. Related Resources
|
||
12. License and Copyright
|
||
13. Acknowledgements
|
||
|
||
1. Introduction
|
||
|
||
There are some Damned Things like enabling Java and Flash in Mozilla, playing
|
||
MP3 files, playing Quicktime/AVI/RealMedia/Windows Media streams, and playing
|
||
encrypted DVDs that the Fedora distro folks won't tell you how to do, either
|
||
because they're afraid of being sued under the DMCA or for various other
|
||
esthetic and political reasons.
|
||
|
||
This HOWTO collects the relevant information in one place. It is not a
|
||
general multimedia-on-Linux HOWTO; if it were, there are hundreds of nifty
|
||
tools and packages it would list (starting with the GIMP and all its kindred
|
||
and forks and symbiotes). The packages we'll cover here are just the legal
|
||
and political hot potatoes, the stuff that threatens monopolies and worries
|
||
lawyers.
|
||
|
||
Good background information on souping up your Fedora system can also be
|
||
found at the [http://fedoranews.org/] FedoraNEWS website and the Unofficial
|
||
Fedora FAQ. One assumption that distinguishes this document from these other
|
||
sources is that you are as lazy as I am ?? you want to install your Damned
|
||
Things (and, later, update them) with your normal package-management
|
||
toolswith an absolute minimum of going to special sites, download source
|
||
tarballs, or executing unique build procedures.
|
||
|
||
Legal note: No source code or locations of source code of any software
|
||
alleged to be covered by the DMCA is disclosed on this page, you will have to
|
||
look on my personal website for that. The DMCA is a bad law rammed down our
|
||
throats by fools and villains and the use of it to suppress free speech about
|
||
software is a disgrace, but in order to ensure that this HOWTO gets maximum
|
||
distribution I have remained in compliance with it here.
|
||
|
||
One reason I am doing this is that I believe I'm a harder target for the
|
||
attack lawyers than most hackers; public fame and a reputation for
|
||
truth-telling are helpful here. If you are an attack lawyer, be warned that I
|
||
invariably respond to attempts at intimidation by fighting back, that I am
|
||
legally savvy and very good at working the press, and that I will exert all
|
||
my considerable ability to make your and your client's name a public disgrace
|
||
if you try to suppress my speech. You have been warned.
|
||
-----------------------------------------------------------------------------
|
||
|
||
1.1. New versions of this document
|
||
|
||
You can also view the latest version of this HOWTO on the World Wide Web via
|
||
the URL [http://tldp.org/HOWTO/Fedora-Multimedia-Installation-HOWTO/] http:/
|
||
/tldp.org/HOWTO/Fedora-Multimedia-Installation-HOWTO.html.
|
||
|
||
Feel free to mail any comments about this HOWTO, or additions or bug fixes,
|
||
to Eric S. Raymond, <esr@snark.thyrsus.com>. But please don't ask me to
|
||
troubleshoot your multimedia or plugin configuration problems; if you do,
|
||
I'll just ignore you. Everything I know about this subject is already here.
|
||
-----------------------------------------------------------------------------
|
||
|
||
2. Packages, Tools and Repositories
|
||
|
||
Modern Linuxes are rapidly moving towards a world in which physical media are
|
||
used for OS installation only, with updates being fetched and installed by
|
||
tools querying Internet repositories. You'll need to know a bit about some of
|
||
these tools and the repositories they get binary packages from.
|
||
|
||
Fedora packages are called RPMs. Each can be installed or uninstalled as a
|
||
unit, and provides some application together with any support files it needs.
|
||
Some packages depend on others ?? an application, for example, may require
|
||
specific support libraries. Part of the job a package installation program
|
||
does is to chase down those dependencies and install them before installing
|
||
the main package.
|
||
|
||
Unfortunately, RPMs can clash with each other ?? for example, by wanting to
|
||
put incompatible versions of a command or support file in place. A repository
|
||
maintainer's main job is to make sure that (a) the RPMs in his collection
|
||
don't clash with each other, and (b) all their dependencies are resolved
|
||
either within his repository or some 'base' repository that he advertises
|
||
depending on.
|
||
|
||
There is one base repository for Fedora Linux maintained by the Fedora
|
||
project itself, and about half a dozen extension repositories that depend on
|
||
that base. These extension or "third-party" repositories are where you will
|
||
get your Damned Things; they are run by volunteers independent of the Fedora
|
||
Project, often located in places outside the U.S. where they will be less
|
||
exposed to predatory lawyers.
|
||
|
||
The extension repositories form cliques defined by who is compatible with who
|
||
else. There is a lot of turbulence and politics around these cliques which,
|
||
as an end user, you can largely ignore. The only reason for you to know about
|
||
this at all is that you have to choose one clique in order to avoid clashes.
|
||
In early 2006 there are, essentially, three cliques to choose from, as I'll
|
||
describe later on.
|
||
|
||
First I need to introduce you to the tools you will need to fetch your Damned
|
||
Things:
|
||
|
||
yum
|
||
yum (the Yellow Dog Updater, Modified), is a command-line tool that comes
|
||
installed with Fedora Core. It will help you download updates from the
|
||
Fedora repository, and from other repositories that carry Damned Things
|
||
that Fedora won't.
|
||
|
||
pirut
|
||
This is a GUI wrapper around yum introduced in FC5. It's a slightly
|
||
kinder, gentler way to use yum.
|
||
|
||
|
||
You also need to know about some repositories. Each is a collection of RPMs,
|
||
divided into subcollections called 'channels'.
|
||
|
||
[http://fedora.redhat.com] fedora.redhat.com
|
||
This is the basic Fedora repository. The RPMs in the 'stable' and
|
||
'updates' channels of this repo are what go on a Fedora CD-ROM.
|
||
Historical note for readers of previous version of this document: the Red
|
||
Hat repo now includes, in its 'extras' part, equivalents of the stuff
|
||
that used to be at fedora.us.
|
||
|
||
[http://rpmforge.net/] RPMForge
|
||
A clique formed by all the major third-party RPM sites except livna and
|
||
ATrpms. These packages are intended to extend the Fedora Core and Extras
|
||
repositories, and the maintainers are careful not to clash with the
|
||
Fedora repositories. The consortium includes freshrpms, Dag Wieers's
|
||
repository, the Dries repository, NewRPMs and PlanetCCRMA. They're
|
||
working towards merging their repositories, and already build with common
|
||
source RPMS. Unfortunately, the RPMForge collection is known to have some
|
||
serious clashes with livna and ATRPMs.
|
||
|
||
[http://rpm.livna.org] rpm.livna.org
|
||
A site, located outside the U.S. and beyond the reach of the DMCA, that
|
||
specifically dedicated to providing Damned Things that Fedora Core and
|
||
Extras won't carry. There is no official connection, and in fact the
|
||
Fedora people won't mention livna in their web pages or documentation for
|
||
fear of being slammed with a speech-suppressing lawsuit by the evil
|
||
scumweasels at the DVDCCA, but the livna people track what Fedora does
|
||
very closely. The livna repositories depend on the Fedora repositories.
|
||
They clash with the RPMForge repositories.
|
||
|
||
[http://macromedia.mplug.org/] http://macromedia.mplug.org/
|
||
The main source for packaged versions of Macromedia Flash. It's safe to
|
||
use this RPM with any of the extension-repository cliques.
|
||
|
||
|
||
The three cliques I referred to earlier are RPMForge, livna (all by itself)
|
||
and ATrpms (all by itself). With FC5 you can get all the multimedia support
|
||
you theoretically need from livna, rather than using RPMforge as I advised in
|
||
previous versions of this FAQ. I say 'theoretically' because, in fact, almost
|
||
none of the video stuff actually works in FC5.
|
||
|
||
To enable access to livna, do this:
|
||
rpm -ivh http://rpm.livna.org/livna-release-5.rpm
|
||
|
||
This should drop a yum repo configuration file in /etc/yum.repos.d/
|
||
-----------------------------------------------------------------------------
|
||
|
||
3. Security considerations and other risks
|
||
|
||
All the yum commands I give in this HOWTO have to be run from the root prompt
|
||
so the packages they fetch can be installed in your system space. This means
|
||
there is a risk that your system could be compromised by a Trojan Horse RPM,
|
||
either one inserted in one of the repositories you query or one slipped to
|
||
you by a man-in-the-middle attack getting between you and a repository.
|
||
|
||
To control the latter risk, many repositories cryptographically sign their
|
||
RPMs. You need to have a local copy of each repository's public key in order
|
||
to integrity-check incoming packages; current versions of yum will dowmload
|
||
one for you. This could be defeated by a man-in-the-middle attack spoofing
|
||
the repo site and slipping you bogus keys as you set up your configuration;
|
||
while this possibility is extremely unlikely, you should be aware of it.
|
||
|
||
A long-term risk that you accept by using the proprietary code referenced in
|
||
this HOWTO is that of becoming dependent on the whims of a proprietary
|
||
software vendor. It isn't necessary to have that old-time Free Software
|
||
religion to see that this is a problem. Some of the software we'll cover here
|
||
(the Sun Java JDK plugin is a good example) is distributed as closed-source
|
||
freeware ?? which is all very well, but what happens if the vendor changes
|
||
its mind in the future? You could be stranded.
|
||
|
||
It's unsafe to be dependent on proprietary software and proprietary formats.
|
||
When you allow yourself to be dependent, you also harm others by helping
|
||
vendors maintain an unhealthy monopoly lock on their market segment. So, if
|
||
you must buy into these tools, please find some way to support open-source
|
||
replacements ?? donate coding time or cash, or spend effort pressuring
|
||
vendors to open up. Rip your CDs to Ogg Vorbis rather than MP3. Write a
|
||
letter to your legislator urging repeal of the DMCA. The freedom you save
|
||
will be your own.
|
||
-----------------------------------------------------------------------------
|
||
|
||
4. Macromedia Flash
|
||
|
||
Fedora won't distribute from their site because Macromedia's license doesn't
|
||
permit it, but there are no other legal barriers to using the RPMs at [http:/
|
||
/macromedia.mplug.org/] http://macromedia.mplug.org/.
|
||
|
||
Follow those directions, dropping the Macromedia repository configuration in
|
||
your /etc/yum.repos.d/ directory. It should look much like this:
|
||
[macromedia]
|
||
name=Macromedia for i386 Linux
|
||
baseurl=http://macromedia.mplug.org/rpm/
|
||
enabled=1
|
||
gpgcheck=1
|
||
gpgkey=http://macromedia.mplug.org/FEDORA-GPG-KEY
|
||
|
||
Then do the installation:
|
||
yum install flash-plugin
|
||
|
||
Installing this RPM should put the plugin in your Firefox plugin directories
|
||
(and Mozilla's as well).
|
||
|
||
You can test your flash support at the official test page. Note that you may
|
||
have to kill and restart your browser after installing the plugin; I tried
|
||
the Flash test immediately and it crashed Firefox.
|
||
|
||
There's a gotcha: The Macromedia plugin works only for 32-bit Intel boxes. It
|
||
completely fails on an x86_64 running in 64-bit mode (in general, 32-bit
|
||
plugins won't work in a 64-bit browser). Currently there are three projects
|
||
addressung this problem:
|
||
|
||
<EFBFBD><EFBFBD>*<2A>[http://gplflash.sourceforge.net/] gplflash1 is the orignal GPL Flash
|
||
plugin. Only handles SWF up to level 4.
|
||
|
||
<EFBFBD><EFBFBD>*<2A>[http://gplflash.sourceforge.net/] gplflash2 half-works, with painful
|
||
amounts of flicker, and frequently crashes Firefox. This rewrite of
|
||
gplflash has been abandoned in favor of gnash.
|
||
|
||
<EFBFBD><EFBFBD>*<2A>[http://www.gnu.org/software/gnash/] gnash promises full support for SWF
|
||
up to level 7, but is still in early development and surrounded by
|
||
warnings.
|
||
|
||
|
||
I think the right stopgap on 64-bit systems might be to build and install
|
||
gplflash1, but as of 21 Mar 2006 I can't because it needs an X header file I
|
||
cannot yet find the right RPM for. This may change as the dust settles around
|
||
FC5.
|
||
-----------------------------------------------------------------------------
|
||
|
||
5. gstreamer and ffmpeg support
|
||
|
||
FC5 has adopted a project called gstreamer as a common back end for handling
|
||
video and audio files. Totem, the standalone multimedia player shipped with
|
||
FC5, uses gstreamer; so does your Firefox plugin, mozplugger.
|
||
|
||
gstreamer itself uses plugins, one for each multimedia format it supports.
|
||
Plugins for open-source formats such as Ogg Vorbis ship with FC5. Plugins for
|
||
proprietary formats don't. To get these, do this:
|
||
yum install gstreamer-plugins-ugly ffmpeg
|
||
|
||
This may also install mpeg2dec, libsidplay, libdvdread, faac, faad2, imlib,
|
||
and gsm.
|
||
|
||
The 'ugly' plugins enable gstreamer to handle MP3, MPEG2, and SID formats.
|
||
The SID format is a historical relic from the Commodore 64. MP3 is the most
|
||
popular audio format. MPEG2 is an audio/video format used in DVDs.
|
||
|
||
The ffmpeg library can encode or decode MPEG1 audio and video, MPEG4, h263,
|
||
ac3, asf, avi, real, mjpeg, and flash.
|
||
-----------------------------------------------------------------------------
|
||
|
||
6. MP3
|
||
|
||
Fedora won't ship MP3-capable software because the Fraunhofer Institute's
|
||
patent license terms are not compatible with the GPL.
|
||
|
||
The default music player in FC5 is Rhythmbox. I struggled with Rhythmbox for
|
||
several hours, but despite its pretty face I found it unusable. It ignores
|
||
track numbers ?? or, at least, is not as smart at parsing them out of
|
||
filenames as xmms is, and doesn't document its import rules anywhere. Trying
|
||
to beat it into playing MP3s is a nightmare so scarifying that at one point I
|
||
thought I was going to have to reinstall my entire Linux system just to get
|
||
the ability to play Oggs back, because I couldn't figure out what piece of
|
||
undocumented application state had gotten scrambled or how to clear it. The
|
||
documentation is in general a bad joke ?? glossy, superficial, and with no
|
||
useful content about troubleshooting problems. The xmms player may not be as
|
||
featureful or as nice-looking, but it works better.
|
||
|
||
To install xmms and make it MP3-capable, start by doing this:
|
||
yum install xmms xmms-mp3
|
||
|
||
To actually enable MP3 playing, you'll need to run xmms and change its
|
||
configuration. Select Options ?? Preferences ?? Audio I/O Plugins from the
|
||
menu; this will pop up a window listing plugins. Select "MPEG Layer 1/2/3
|
||
Placeholder Plugin" and uncheck [ ] Enable Plugin. With this placeholder
|
||
gone, xmms will plug in xmms-mp3 automatically. Kill xmms and restart.
|
||
|
||
On my x86_64 box I encountered the problem that xmms would only play sound as
|
||
root, exiting immediately when run from a non-root account. There are a
|
||
number of mundane causes for this; check the permissions on your sound
|
||
devices. There is one exotic problem which I tripped over; you may have to
|
||
tell your sound module to grab low-memory DMA buffers and not let go of them.
|
||
|
||
To enable MP3 streaming through Firefox or Mozilla, install the
|
||
gstreamer-ugly plugin and ffmpeg as described below. MP3 streams will play
|
||
through xmms, podcasts through Totem.
|
||
-----------------------------------------------------------------------------
|
||
|
||
7. Java
|
||
|
||
Java is downloadable and redistributable from Sun, but only for personal and
|
||
not-for-profit use. Sun's Java license is non-open-source, so Fedora and most
|
||
other Linux distributions won't carry it.
|
||
|
||
Fedora Core 5 includes an open-source Java implementation for programmers
|
||
called gcj. You only need to take special action if you want to enable
|
||
applets in your browser. The Unofficial Fedora FAQ has [http://
|
||
www.fedorafaq.org/#java] detailed instructions on how to do this.
|
||
|
||
You can test your Java plugin at Sun's [http://www.java.sun.com/applets/]
|
||
Applets page. Note that some of these applets (Escher and Starfield, when I
|
||
checked) appear to be broken. BouncingHeads makes a good test.
|
||
|
||
You might also want to copy the RPMS you built out of /usr/src/redhat/RPMS/
|
||
so you'll have then handy for reinstalls.
|
||
-----------------------------------------------------------------------------
|
||
|
||
8. RealAudio and RealVideo
|
||
|
||
I don't known anywhere this is accessible via yum, so you'll have to download
|
||
and install it by hand. Do this first:
|
||
yum install compat-libstdc++-33
|
||
|
||
Then download the RealPlayer10GOLD RPM and install it.
|
||
|
||
On 32-bit Fedora Core you may need to delete HelixPlayer with
|
||
rpm -e HelixPlayer
|
||
before the 10GOLD version will work. x86_64 FC5 does not include HelixPlayer.
|
||
-----------------------------------------------------------------------------
|
||
|
||
9. MPEG, QuickTime, AVI, and DVDs
|
||
|
||
MPEG (the format used on DVDs) represents itself as an open standard, but
|
||
most Linux distributions won't ship software that read it because of blocking
|
||
patents held by MPEGLA. AVI and Apple QuickTime have proprietary codecs
|
||
covered by patents, so most Linux distributions won't ship software that
|
||
decodes them, either.
|
||
|
||
FC5 ships the GNOME project's official video player, [http://www.gnome.org/
|
||
projects/totem/] totem. Unfortunately, it won't play DVDs. The symptom is an
|
||
error popup that says "Totem was not able to play this disc. No reason", but
|
||
the problem is actually a known bug in gstreamer-0.10.
|
||
|
||
Unfortunately, the alternate front end xine is even more broken. It can be
|
||
installed this way:
|
||
yum install xine xine-lib libdvdcss
|
||
|
||
Doing this will also install a number of support libraries, including the
|
||
libdvdcss plugin that the xine people won't talk about on their site because
|
||
they are too frightened of the DVDCCA's attack lawyers.
|
||
|
||
The 0.99.4 xine release displays an all-white window and does nothing (at
|
||
least on my plain-vanilla Opteron machine using a nVidia GeForce2).
|
||
-----------------------------------------------------------------------------
|
||
|
||
10. Test pages for Web streaming
|
||
|
||
Here are some test locations to try streaming audio and video clips from:
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://codeccorner.com/] AVI
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.apple.com/quicktime/troubleshooting/] QuickTime
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://www.vdat.com/techsupport/windowstest.asp] Windows Media
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [ftp://ftp.tek.com/tv/test/streams/Element/index.html] MPEG
|
||
|
||
<EFBFBD><EFBFBD>*<2A> [http://service.real.com/test/] RealPlayer
|
||
|
||
|
||
-----------------------------------------------------------------------------
|
||
11. Related Resources
|
||
|
||
There is a good walkthrough of a Fedora Core 5 installation procedure,
|
||
covering some of the same ground as this document, [http://stanton-finley.net
|
||
/fedora_core_5_installation_notes.html] here.
|
||
|
||
There is a useful Fedora Core 4 Tips and Tricks page.
|
||
|
||
There is a good tutotial on Firefox multimedia plugins.
|
||
-----------------------------------------------------------------------------
|
||
|
||
12. License and Copyright
|
||
|
||
<EFBFBD> 2004, Eric S. Raymond.
|
||
|
||
Permission is granted to copy, distribute and/or modify this document under
|
||
the terms of the GNU Free Documentation License, Version 1.2 or any later
|
||
version published by the Free Software Foundation; with no Invariant
|
||
Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the
|
||
license is located at [http://www.gnu.org/copyleft/fdl.html] www.gnu.org/
|
||
copyleft/fdl.html.
|
||
-----------------------------------------------------------------------------
|
||
|
||
13. Acknowledgements
|
||
|
||
Miguel Freitas helped educate me about some of the techicalities of video
|
||
formats.
|