Q: Are there any movie-playing programs for Linux that will play .ASF multimedia files?

A: Yes. At this date (March 2001), Damien Chavarria's newest XMPS player (http://xmps.sourceforge.net/) supports a Linux port of Project Mayo's (http://www.projectmayo.com/) OpenDivX Initiative CODEC (COder-DECoder) for Win32 that can parse streaming video files encoded in MS-MPEG-4 aka "ASF" aka "Microsoft Media Player 7" aka "DirectShow" aka "fourcc WMV1" format. The OpenDivX CODEC's native "DivX ;-)" format is closely related, being a true MPEG-4 streaming implementation, as opposed to Microsoft's incompatible MS-MPEG-4 variant. The XMPS Project refers to XMPS's OpenDivX Linux port as its "win32 DLL plugin".

Also, Eugene Kuznetsov's Linux AVI File Library (http://divx.euro.ru/) usually works (as a plug-in for various player applications, or with its own X11/Qt application framework). Morgan Multimedia's proprietary plug-in (http://www.morgan-multimedia.com/) can likewise be used. Arpad Gereoffy claims a compatible CODEC will be coming for his MPlayer (http://thot.banki.hu/esp-team/MPlayer.html) application, soon.

XMPS should not be confused with Arthur Kleer / Linux MultiMedia Project's XMMP (http://www.frozenproductions.com/xmmp/) or Peter Alm's XMMS (http://www.xmms.org/), which are distinct projects but likewise multimedia players for Linux. As you may surmise, the situation is muddled.

Other players that should be considered: Eugene Kuznetsov's AVIfile / aviplay, Jarrod Johnson's Xtheater (http://xtheater.sourceforge.net/) and Mark Podlipec's xanim (http://xanim.va.pubnix.com/).


As background, a few words about video formats, streaming video, and legal matters: In 1997-98, Microsoft Corporation released multimedia software for several platforms, including a beta version for Linux (preserved at http://linuxmafia.com/pub/linux/apps/) that would play the initial version of MS-MPEG-4 format[1]. This was not the same as true MPEG-4 on the video side, as it featured Microsoft-originated alterations to that standard. On the audio side, it used MPEG Layer-3 encoding. It did not feature streaming: The files needed to be retrieved before playing.

By 1999, however, Microsoft Corporation abandoned this format, and produced an incompatible, new ".ASF" format that featured streaming. Please note that the data files still bear the .ASF extension: In general, contrary to what many computer users (especially MS-Windows users) believe, filename extensions are a very poor guide to the underlying data formats, and this is especially true of multimedia. What the user thinks of as (e.g.) a ".mov", ".avi", or ".asp" file will have an underlying format more properly identified by the CODEC used to create it. User applications such as "QuickTime" and "Media Player" are just frameworks that can accept various CODECs as plug-in modules: The application does not imply a particular data format. Thus, it is not very useful to speak of "Media Player format" or "QuickTime format". In those cases, one would usually mean "files encoded using the MS-MPEG-4 streaming CODEC" or "files encoded using the Sorenson CODEC" (http://www.sorenson.com/), respectively.

Therefore, to play a particular multimedia file, ideally you would first determine its actual, underlying format. Then, you would ensure that you have a CODEC for that format. Last, you would ensure that you had a multimedia player "framework" application for Linux that can accept that CODEC as a plug-in.

In May 2000, Linux programmer Avery Lee added a CODEC for the new MS-MPEG-4 streaming format to his VirtualDub v. 1.3c player (http://www.geocities.com/virtualdub/), including, among other things, the ability to convert the incoming bitstream to other formats and save them as local files. (Lee's CODEC is still available as part of Eugene Kuznetsov's Linux AVI File Library, http://divx.euro.ru/.) On May 12, 2000, Lee received a telephone call from Microsoft Corporation, alleging violations of USA patent #6,041,345, applied for March 7, 1997 and issued March 21, 2000, concerning the MS-MPEG-4 streaming format.

The Microsoft Corporation representative alleged, among other things, that its patent prohibited others from reading or writing multimedia data in its application's file format. We will not comment on the merits of that legal claim, here — but the notion of asserting patent rights to a data-file format seems novel, and Lee probably lacked the legal and financial firepower to challenge Microsoft Corporation on the claim in court. Lee elected to remove the CODEC from his project. Further comments on the matter can be read here: http://www.advogato.org/article/101.html

Some CODECs for streaming MS-MPEG-4 include the conversion / local-saving functionality whose inclusion in Lee's CODEC Microsoft Corporation (seemingly) found threatening to its interests, while others do not. All are reported at this date to have synchronisation and stability problems, and to be CPU-intensive.

[1] Microsoft Corporation's Web page for that beta player claimed that the Linux implementation supported the following CODECs: MPEG 4, Vivo H263, and Duck TrueMotion RT 2.0.