Welcome!

Linux Containers Authors: Liz McMillan, Zakia Bouachraoui, Elizabeth White, Pat Romanski, Stefana Muller

Related Topics: Linux Containers

Linux Containers: Article

MPlayer: The project from hell

MPlayer works fine once you get past the tyro-written installation script & docs

(LinuxWorld) -- In the year since it first appeared on freshmeat, the popular watering hole for Linux software, a relatively small new project headed up by Arpad Gereoffy has shoved everything else out of the way to become the most popular offering on the site save Linux itself. The project is MPlayer, and it provides Linux users with a tool to let them view videos in almost every popular flavor, including MPEG 1 and 2, and AVI. It also plays video from DVDs. When it is installed and configured correctly, it's a doozy. That's the good news.

The bad news is the installation stinks, configuration is a black art, and the documentation is barren. Worse yet, Gereoffy and the other developers have more attitude than the law allows. At least the law in this county, and I'm the sheriff. In just a year, that attitude has gotten them on the wrong side of Red Hat, of Russian developers porting a clone to OS/2, and many of their own users.

The MPlayer gang seems to relish nothing more than belittling their users and reminding them of just how little they know about Linux and computing in general. I don't know about the rest of you, but I suffer enough of that on my own. I do not need any outside assistance to reinforce that point of view.

Naturally, I was drawn to the project like a moth to a flame. Bring it on, I thought. Whatever it takes, I'll get it installed. I won't be asking that infantile band of RTFM-spewing bozos who maintain it for help, either. My own hardheadedness is probably the only reason I sit here today with MPlayer installed, with a custom GUI skin enabled no less, barely more than a full day after I started.

Custom MPlayer skin

The journey began when I downloaded the latest CVS snapshot from the MPlayer Web site (see the Resources section for the URL). The attitude I mentioned earlier was noticeable in the comments on the project's page at freshmeat, both in the MPlayer team's remarks about gcc 2.96 and MPlayer users' remarks about the project team. One user referred to the MPlayer team as "the project from hell."

Actually, the team's infamous anti-Red Hat rhetoric has been toned down slightly. At Red Hat's request, some false statements the developers made about 2.96 have been removed from MPlayer's Web site. The team still lets you know at every opportunity what they think of Red Hat, which gets tiresome fast.

I was prepared for the typical ./configure; make; make install and expected to have MPlayer running in less than five minutes. Was I ever wrong. The first thing to bite me was the configure script itself. It refused to run after detecting gcc 2.96, which is the default with Mandrake 8.1. Reading back over the generated log messages, I found that I could bypass the ban/warning by adding --disable-gcc-checking to the configure command. Run with that parameter, the script halts and waits for you to hit enter to acknowledge the final warning about not using Red Hat's most notorious offering. I did, and the configure script finally set about its work. make and make install (run as root) followed with no visible problems. I thought I was set.

Wrong again. Mind you, I had just run the install script. But when I tried to execute MPlayer for the first time, it barfed because it couldn't find the codec configuration file (codecs.conf) in either of the two default directories where the program expects it to be. Oh, the file is there all right, buried in a subdirectory in the MPlayer installation directory. More digging around in the documentation, the FAQ, actually, and I found the missing file and the cure. Finally, mplayer runs. There is no GUI and it halts immediately, but it runs. It wants a file name on the command line.

I needed video files. That called for gnutella. I downloaded gtk-gnutella and installed it. It configured, built, and installed itself properly in no time at all. In a few minutes I managed to snag an .avi or two, a couple of .mpeg's, and an .asf video. The first mpeg file I played displayed beautifully. The sound was nice, too. However, the second mpeg, avi, and asf wouldn't play at all. It seems the Win32 codecs, a huge reason for MPlayer's popularity, are not supported by default. Neither is the GUI. I decided it was time to RTFM.

Don't get me wrong. There is documentation. It is scattered, and often incomplete, and carries the same attitude I had seen elsewhere, but it is there. An example of that attitude, taken verbatim from the FAQ:

Q: I compiled MPlayer with libdvdcss/libdivxdecore support, but when I try to start it, it says: error while loading shared libraries: lib*.so.0: cannot load shared object file: No such file or directory

I checked the file and it is there in /usr/local/lib.

A: What are you doing on Linux? Can't you install a library? Why do we get these questions? It's not MPlayer specific at all! Add /usr/local/lib to /etc/ld.so.conf and run ldconfig. Or install it to /usr/lib, because if you can't solve the /usr/local problem, you are careless enough to do such things.

Perhaps instead of taking the time to flame the person asking the question, the smart aleck could have simply answered the question graciously, then spent the time saved by skipping the flames fixing bugs in the installation script.

Eventually I negotiated my way through the installation minefield created by the agonizing installation and poor design. I stepped through it one gotcha at a time. I won't bore you with a tedious play-by-play, but I will mention that I had more bite marks than I would have if I had napped in a fire ant mound. Here's a short tip sheet that might help fellow travelers coming down this path. It's not complete, and it won't replace the documentation, but these tips might save you some aggravation.

  1. Dependencies noted on freshmeat included gcc 2.95.3, libdvdcss, and libdvdread. However, I used gcc 2.96 and had zero problems. It doesn't bother to mention that if you want the GUI, you are also going to need to have gtk installed. You will also need the unzip and bunzip2 archiving tools installed.
  2. In addition to the two DVD libraries, download these files from the MPlayer download page:
    • MPlayer-current.tar.bz2 (the program)
    • mp-arial-iso-8859-1.zip (Western European fonts)
    • win32codec-0.50.zip (codecs required for Windows formats)
    • default.tar.bz2 (the default skin for the GUI, or one of the others available)
  3. Ignore the remarks in the installation docs that have you looking for an install.sh script for the DVD tools. It doesn't exist. Just move or copy the DVD libraries to /usr/local/lib. Then make sure that directory is included in /etc/ld.so.conf and run ldconfig.
  4. If you want to use gcc 2.96 like I did, you must add --disable-gcc-checking to the configure command line. If you want to build the GUI, you must also add --enable-gui to the line.
  5. Examine the .mplayer subdirectory that the installation creates in your home directory. If there is no codecs.conf file present, copy it from the MPlayer installation/etc subdirectory. Also, copy from that same subdirectory the example.conf file and rename it to config. Then edit config so that only the gui and the skin lines are left uncommented. You can experiment with the other config options at your leisure.
  6. If the font subdirectory does not exist in the .mplayer directory, create it. Then unzip the downloaded fonts into a temporary directory, select the size font you want and copy the contents of the subdirectory for that size to the .mplayer/font directory.
  7. If the Skin (note the capital S) subdirectory does not exist in the .mplayer directory, create it. Decompress and untar the skin you downloaded, then move the subdirectory it creates into the .mplayer/Skin directory. If you chose the default, for example, your directory structure will be ~/.mplayer/Skin/default.
  8. When all else fails, take a deep breath and RTFM. Read both FAQS and the online manual, too, if only to learn how not to create effective documentation.

I'm sure I missed a gotcha or two along the way, but those should help. I don't believe that anything I mentioned is absent from the documentation, but many of them are out of place. They belong in the "things you need to know first" category, rather than where you eventually find them.

Software by Marquis de Sade

The entire installation and design process is so poor that it seems as if the developers laid a minefield for users purposely so that they could torment them. I can forgive the poor English, but the outright contempt for hapless users is inexpiable.

The installation script causes MPlayer to crash the first time it is run. It fails to create needed directories, and it fails to move required configuration files to the proper location. A well-written installation script would create the directories and place files where they belong. After that sort of performance, the developers have no justification for their arrogance. This project is popular, at least in terms of interest on freshmeat, and it does seem to have produced some nice code. Unless the project leader and his crew grow up and learn there is more to it than the coding, that popularity won't last.

More Stories By Joe Barr

Joe Barr is a freelance journalist covering Linux, open source and network security. His 'Version Control' column has been a regular feature of Linux.SYS-CON.com since its inception. As far as we know, he is the only living journalist whose works have appeared both in phrack, the legendary underground zine, and IBM Personal Systems Magazine.

Comments (14)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


IoT & Smart Cities Stories
The Jevons Paradox suggests that when technological advances increase efficiency of a resource, it results in an overall increase in consumption. Writing on the increased use of coal as a result of technological improvements, 19th-century economist William Stanley Jevons found that these improvements led to the development of new ways to utilize coal. In his session at 19th Cloud Expo, Mark Thiele, Chief Strategy Officer for Apcera, compared the Jevons Paradox to modern-day enterprise IT, examin...
While the focus and objectives of IoT initiatives are many and diverse, they all share a few common attributes, and one of those is the network. Commonly, that network includes the Internet, over which there isn't any real control for performance and availability. Or is there? The current state of the art for Big Data analytics, as applied to network telemetry, offers new opportunities for improving and assuring operational integrity. In his session at @ThingsExpo, Jim Frey, Vice President of S...
Rodrigo Coutinho is part of OutSystems' founders' team and currently the Head of Product Design. He provides a cross-functional role where he supports Product Management in defining the positioning and direction of the Agile Platform, while at the same time promoting model-based development and new techniques to deliver applications in the cloud.
In his keynote at 18th Cloud Expo, Andrew Keys, Co-Founder of ConsenSys Enterprise, provided an overview of the evolution of the Internet and the Database and the future of their combination – the Blockchain. Andrew Keys is Co-Founder of ConsenSys Enterprise. He comes to ConsenSys Enterprise with capital markets, technology and entrepreneurial experience. Previously, he worked for UBS investment bank in equities analysis. Later, he was responsible for the creation and distribution of life settl...
@CloudEXPO and @ExpoDX, two of the most influential technology events in the world, have hosted hundreds of sponsors and exhibitors since our launch 10 years ago. @CloudEXPO and @ExpoDX New York and Silicon Valley provide a full year of face-to-face marketing opportunities for your company. Each sponsorship and exhibit package comes with pre and post-show marketing programs. By sponsoring and exhibiting in New York and Silicon Valley, you reach a full complement of decision makers and buyers in ...
There are many examples of disruption in consumer space – Uber disrupting the cab industry, Airbnb disrupting the hospitality industry and so on; but have you wondered who is disrupting support and operations? AISERA helps make businesses and customers successful by offering consumer-like user experience for support and operations. We have built the world’s first AI-driven IT / HR / Cloud / Customer Support and Operations solution.
LogRocket helps product teams develop better experiences for users by recording videos of user sessions with logs and network data. It identifies UX problems and reveals the root cause of every bug. LogRocket presents impactful errors on a website, and how to reproduce it. With LogRocket, users can replay problems.
Data Theorem is a leading provider of modern application security. Its core mission is to analyze and secure any modern application anytime, anywhere. The Data Theorem Analyzer Engine continuously scans APIs and mobile applications in search of security flaws and data privacy gaps. Data Theorem products help organizations build safer applications that maximize data security and brand protection. The company has detected more than 300 million application eavesdropping incidents and currently secu...
Rafay enables developers to automate the distribution, operations, cross-region scaling and lifecycle management of containerized microservices across public and private clouds, and service provider networks. Rafay's platform is built around foundational elements that together deliver an optimal abstraction layer across disparate infrastructure, making it easy for developers to scale and operate applications across any number of locations or regions. Consumed as a service, Rafay's platform elimi...
The Internet of Things is clearly many things: data collection and analytics, wearables, Smart Grids and Smart Cities, the Industrial Internet, and more. Cool platforms like Arduino, Raspberry Pi, Intel's Galileo and Edison, and a diverse world of sensors are making the IoT a great toy box for developers in all these areas. In this Power Panel at @ThingsExpo, moderated by Conference Chair Roger Strukhoff, panelists discussed what things are the most important, which will have the most profound e...