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, . 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:   * [http://gplflash.sourceforge.net/] gplflash1 is the orignal GPL Flash plugin. Only handles SWF up to level 4.   * [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.   * [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:   *  [http://codeccorner.com/] AVI   *  [http://www.apple.com/quicktime/troubleshooting/] QuickTime   *  [http://www.vdat.com/techsupport/windowstest.asp] Windows Media   *  [ftp://ftp.tek.com/tv/test/streams/Element/index.html] MPEG   *  [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 © 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.