Linux Sound and Video

I have a Soundblaster16 card with no special features, but I would like to be able to play every sound format, as well as every video format possible. This page was made way back when (1995, I think), and has not been well-updated.

I'm only interested in the user-level sound and video players. If you're interested in kernel support, you should look elsewhere. You might start with Alan Cox's page on The Linux Sound System.

Sound formats

CD audio

CD audio has virtually nothing to do with the sound drivers. The CD drive sends the audio through a special cable directly to the sound card. All the sound card controls is the input gain on the CD audio (along with the speaker volume). Hence, you don't need a kernel with a sound driver to play CD audio. Also, whether or not you can play CD audio has nothing to do with whether your sound driver is configured correctly.

Success stories

Standard (8000Hz) .au files
cat sample.au >/dev/audio
Example: laugh_monkey_boy.au (15K)
Nonstandard sample-rate .au files
sox sample.au -r 8000 -t .au /dev/audio
Example: none
(I have some 8012Hz files, but you can't hear the difference when you cat them to /dev/audio. I've seen some that have very different sample rates, though.)
.mod files
mikmod sample.mod
Example: at_t.mod (379K)
Many examples at www.modarchive.com
.669 files
mikmod sample.669
Example: crystals.669 (27K) [from www.modarchive.com]
.s3m files
mikmod sample.s3m
Example: dreams2.s3m (108K)
.mtm files
mikmod sample.mtm
Example: k_progr.mtm (53K)
.xm files
mikmod sample.xm
Example: k_vortx3.xm (596K)
.mid or .midi files
playmidi -f sample.mid
Example: 5thsymp.mid (24K)
Numerous additional examples
Note: A few seem to play at the wrong speed. I'll try to get a solid example of this.
Note: On my Red Hat box, I have to manually `modprobe opl3` to get it to work.
For a full-featured graphical midi editor and player, check out Midi Mountain.
.mp3 files
I use mpg123.
This is the hottest format going, and is especially popular for encoding audio from CDs. You should have no problems finding a wealth of players, CD rippers, encoders.
.wav files
wavplay sample.wav
Example: bnsg.wav (631K)
.wav files
wavplay 0.2 reports "wrong length difference."
vplay works, but doesn't automatically recognize that it's recorded at a higher sample rate (try vplay -s 11000 to hear it about right).
Example: mchocola.wav (31K)
I've received an explanation of why wavplay 0.2 won't play it.
wavplay 1.0 and later play it perfectly!
.aiff files
sox -t .aiff sample.aiff -t .ul -r 8000 /dev/audio
(sox solution by Joseph W. DeVincentis)
I found this example at Disney's server.
Example: TSTease.aiff (969K)
RealAudio
You have to download their proprietary software
.voc files
vplay sample.voc
sox sample.voc -t .au /dev/audio
Example: buzzer.voc (10K)

Failures

Netcaster
This is a proprietary Microsoft format competing with Real Audio. I don't know of any players, and I doubt that they have released sufficient documentation to write one, not to mention that they probably used patented compression algorithms.

Unknown

I don't have examples of these formats:
Impulse Tracker
For information on this format, please visit the Official Impulse Tracker page. I'm told that mikmod will play these files, but I haven't verified it.
InternetWave
I hear that it's probably a similar situation to RealAudio.
Others?
I'll believe they really exist when I see examples. :)

Video formats

Success stories

In short, xanim 2.70.3 with optional codecs plays all formats for which I have examples.
.mpg MPEG-1 files without sound
mpeg_play sample.mpg
Example: legoshay.mpg (678K)
.mpg MPEG-1 files with sound
mtvp sample.mpg
.avi files (with or without sound)
xanim sample.avi
Example: legodrgn.avi (577K)
.mov files [QuickTime] (with sound)
xanim sample.mov (xanim 2.69.7.8)
Example: frugal.mov (1632K from Bill Nye the Science Guy)
.mov files [QuickTime] (with sound)
xanim 2.69.7.8 fails, but 2.70.3 with the two additional object libraries works.
Example: implosion.mov (1512K)
.flc (no sound)
xanim 2.70.3 plays most of them.
Example: spider.flc (230K)
.flc (no sound)
xanim 2.80.0 plays some that earlier versions failed on
Example: explode.flc (ftp source)

Failures

.vdo
I'm told that it's a real-time video format that requires proprietary software which is not currently available for Linux. Of course, I don't have an example, so it doesn't count.
.mov
QuickTime includes a number of encoding methods, only some of which are supported.
.avi
Like QuickTime, AVI files can use many different encoding methods, only some of which are supported under Linux.

Unknown

MPEG-2
I'm pretty sure that there are ways of playing these, but I haven't investigated it yet.
There must be more...

Software

The software that I refer to in this page can be downloaded via the following pages

Audio:

Video:

Mime Types

If you want to integrate the above audio or video formats with your web documents or browser, you'll need to configure the correct mime types. Web servers send a mime type with every document. Usually they correctly identify .wav and .au files, but they may have some trouble with the less common formats. If it doesn't send the right mime type, there's no way to configure most browsers to figure it out.

Some servers allow you to add types on a per-directory basis. I've done that for the sample files here. I have no idea what the correct types really are, but the most important thing is that they correctly identify as audio/* or video/*. You can then configure your browser to call a script for any audio or video format which will then call the appropriate helper based on the file extension.

So for my configuration, I've used our server's ability to add mime types. For audio, I use my own script installed as ~/bin/showaudio.


If you know of an additional format that I don't list, please let me know, and include a URL for an example. Contact me at: