![]() | ![]() |
|
Fedora Multimedia Installation HOWTOEric Steven Raymond
1. IntroductionThere 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 potatos, the stuff that threatens monopolies and worries lawyers. Good background information on souping up your Fedora system can also be found at the FedoraNEWS website. Mauriat Miranda's Personal Fedora Core 1 Installation Guide is also useful. 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 tools rather than having to go to special sites, download source tarballs, or execute 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 think 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 documentYou 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.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. Tools and RepositoriesModern 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 three of these tools:
You also need to know about some repositories:
To set up your tools, you need to do the following steps:
3. Security considerations and other risksAll the yum and up2date 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. Therefore, be sure to do this:
If you use freshrpms (which none of my recipes do, because I'm told you can get in trouble with library-version classes when mixing it with livna) you'll want to add this:
You already have the Fedora public key as part of your Fedora Core installation. A long-term risk that you accept by using any of the packages 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 Adobe Acrobat 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. The multiple-repository problemYou have just set up yum access to four different repositories. Before you go further, you need to know that mixing RPMs from multiple repositories can be a chancy business; sometimes they can conflict with each other, or have different and incompatible dependencies. The livna.org people take particular pains to track what Fedora is doing, so you should be safe there. The MPLUG site is also pretty safe; they only supply one piece of software which depends mainly on the rather stable Mozilla plugin interface, and downloading an out-of-sync version of flash-plugin probably can't do anything worse than stop you being exposed to Flash animations (many people would actually consider this a feature). The FreshRPMs repository, Dag Wieers's site, and any other "outside" sites are potential trouble. Their maintainers work hard at providing a useful service, but for various technical and political reasons they don't coordinate with Fedora as closely as one might wish. To avoid problems, I recommend the following precautions:
5. Software InstallationFor a fast start after you have gone through the configuration procedure described above, do this:
will install Flash, MP3, mpeg/AVI/DVD-reading capability (including DeCSS for encrypted DVDs), and a better plugin for PDFs. If up2date aborts complaining that RPMs are missing GPG signatures, you can do the following, assuming you trust your net connection is not being compromised by a man-in-the-middle attack:
This won't give you RealMedia; for that, you need to do a little more dancing. What follows is information about how to install individual multimedia packages, including Java. 5.1. Macromedia FlashFedora 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/. With the up2date preparation described above, you can install Flash by typing:
5.2. MP3Fedora won't ship MP3-capable software because the Fraunhofer Institute's patent license terms are not compatible with the GPL. Note: If your Fedora distribution is fresh out of the box, you will probably have to make /dev/dsp be owned by yourself before you can play any sounds at all. Assuming you've got your yum configuration pointed at livna.org the command
should make your XMMS program mp3-capable. Installing xmms-mp3 will probably install an ALSA library, which you can ignore if using a pre-2.6, non-ALSA configuration. To actually enable MP3 playing, you'll need to run xmms. 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. If you want simple MP3 sound editing, I'm a big fan of Audacity (but be aare that some newer Audacity releases, after about 9.1, have known problems with ALSA and with the AC97-compatible sound chips now built into many motherboards). The command
will grab and install both Audacity (a very nifty multi-format audio editor) and the lame library that it needs as a plugin to do MP3s. Audacity has no IP-law problems in itself; lame is affected by the Fraunhofer Institute patents. 5.3. JavaJava is downloadable and redistributable from Sun, but only for personal and not-for-profit use. Sun's Javs license is non-open-source, so Fedora and most other Linux distributions won't carry it. Assuming your yum configuration points at Dag Wieers's repository, the following command will Java-enable your browser:
You can test your Java plugin at Sun's Applets page. Note that some of these applets (Escher and Starfield, when I checked) appear to be broken. BouncingHeads makes a good test. 5.4. Adobe AcrobatYou may have noticed that PDF pages downloaded off the Web often display as blank pages in Mozilla, though they look fine when viewed locally with xpdf. I don't know why this is, but in several cases I've been told by the creator that they were made with Adobe Acrobat. It is therefore a good bet that Adobe's official Acrobat plugin will help. Install it with
Adobe's Acrobat plugin is proprietary, so Fedora and other distributions won't carry it. But there is no known legal problem with the RPM. 5.5. Local MPEG and AVIMPEG (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. But with the setup we've described, this command
will install or update the xine player that can handle these formats. 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. Test this on any DVD. Remember that you have to either link /dev/dvd with your physical DVD device or go through xine's impenetrable configuration dialogue. Also remember that the physical device has to be readable by you. xine has an elaborate GUI of its own, but most of the guts of the program are in a callable library and there are several other front ends for it floating around (none of them shipped with FC1). One of these is gxine, a Gnome front end which as of January 2004 doesn't have an active maintainer. Another (which I haven't seen but have been told good things about) is the kaffeine front end for KDE. Both of these are carried at livna.org. But the best of the front ends is probably totem, available from livna.org. This is a nice clean interface that doesn't confuse the eye by trying to look like expensive stereo equipment. 5.6. Streaming Web audio and videoHere are some test locations to try streaming audio and video clips from: The Netscape folks have a Plug-in Manager web page that's handy for checking which plugins you have available and which MIME types they interpret (the "Show Details" link below each plugin takes you to the associated MIME type list). The rest of this section describes several almost complete failures, mainly so that you will know that they are not due to a misconfiguration on your part. Linux multimedia streaming is still very, very broken. 5.6.1. Web audio streams via RealPlayerRealMedia uses a proprietary codec covered by patents, though RealNetworks ships source code of a reference implementation under a non-open-source license. Because this license is proprietary, most Linux distributions do not ship a RealPlayer client. The Daily xine builds has potentially valuable bits on it. One of the good bits is a RealPlayer 9 RPM, something I have been unable to find in any apt or yum repository. This works under Fedora, even though the Netscape plugin manager page doesn't detect when it's installed. You will have to fill out a small pop-up form the first time it runs; beware that the permission-to-spam-you button defaults to on and you must toggle it off. Because RealNetworks does not have a clean record when it comes to spam, I recommend giving them a bogus address just to be on the safe side. Images do not appear within the page, instead the plugin launches an external program in a separate window. 5.6.2. Web video streams via mplayer-pluginThe command
should in theory give your Mozilla the ability to stream AVI, QuickTime, Windows Media, and MPEG audio/video files. As of January 2004 (mplayer-0.92, mplayerplug-in-1.0, mozilla-1.4.1), however, AVI and QuickTime don't work at all. Results vary from a hang through putting an unkillable blank window on the screen to crashing Mozilla. Windows Media works sometimes (watch for the legend "cache fill" and an increasing percentage in the display window before the video itself plays) but occasionally it crashes Mozilla. MPEG audio files load but don't play. MPEG video tests without audio seem to work. The failure pattern seems to finger mplayerplug-in, as mplayer appears to handle these file types OK when they're local. 5.6.3. Web video streams via gxineThe command
should also in theory give your Mozilla the ability to stream AVI, QuickTime, Windows Media, and MPEG audio/video files throgh gxine. As of January 2004 (xine-0.9.22, gxine-0.3.3, mozilla-1.4.1), this works about as well as mplayerplug-in, which is to say not at all well. I've seen some success with MPEG files, but often with audio dropouts. The failure pattern seems to finger the gxine plugin, as xine handles its file types OK when they're local. 5.6.4. Web video streams via the experimental xine pluginOne potentially valuable bit on the Daily xine builds site is the experimental xine plugin to display streamed video through a xine window placed within the browser frame. This is currently pre-release software, and I could not get it to load because of a xine library problem. Here's hoping it will work someday. 6. Other ApproachesTo turn your Fedora Core 1 machine into a low-latency audio workstation, see Planet CCRMA. At present their repository is apt-get enabled but not yum-enabled. If you don't have apt-get,
will fix that. 7. License and CopyrightCopyright (c) 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 www.gnu.org/copyleft/fdl.html. |