Windows Media Streaming (MMS/WMA)
About Windows Media
Windows Media is a format for lossy audio and video transmission by Microsoft. The audio format is known as WMA (file extension .wma).
In streaming WMA is transferred over a protocol called MMS (Microsoft Media Server).
MMS disambiguation
The name MMS (Microsoft Media Server) is a bit confusing as it is often used to describe different protocols.
There are three protocols often called as MMS based on a similar protocol: MMS over HTTP, MMS over TCP and MMS over UDP.
The Streaming Client supports MMS over TCP and MMS over HTTP. For these protocols the following URL prefixes are commonly used: http://, mms:// and mmst://
For even more confusion the http:// prefix is widely used for Shoutcast streams.
The following table explains the URL prefixes used by the Streaming Client:
Protocol | Prefix used by the Streaming Client | Commonly used prefix |
MMS over HTTP | mms:// | http:// |
MMS over TCP | mmst:// | mms:// or mmst:// |
Shoutcast | http:// | http:// |
MMS in the Streaming Client
The Streaming Client is the only Barix software supporting WMA and MMS. At the time the Streaming Client was developed the MMS protocol was proprietary and the only way to implement a non-Microsoft player was to reverse-engineer the protocol. In February 2008 Microsoft deprecated the MMS in favor of RTSP and released the MMS specifications to the public.
Limitations
The Streaming Client implementation still uses the reverse-engineered protocol and therefore is not 100% compatible with all servers. The Streaming Client supports audio-only streams (some streams are mixed video and audio) and only streams with one bitrate (some servers send multiple bitrates in the same stream).
Which hardware to use
WMA and MMS can be played only on VLSI codec based Barix products, i.e. Exstreamer 100, 110 and 200.
Which version of the Streaming Client to use
The Streaming Client branch 1.x supports MMS and WMA. Use the latest version of this branch.
In September 2008 in Streaming Client version a1.52 there has been an improvement in the MMST (MMS over TCP) parser which allows to play more MMST radio streams. If you have difficulties with playing MMST streams make sure that you are using Streaming Client version 1.x after September 2008.
Starting with version 2.0 of the Streaming Client MMS support has been removed for space reasons. However, the Streaming Client 2.x still can play WMA files, e.g. off the USB stick. Version 3.x does not support WMA format anymore.
Shall I use MMS or MMST?
- If you get a URL use the above table to select the proper protocol in the Streaming Client.
- Most Windows based internet radio servers stream in MMS over HTTP. Try this option first.
- Most servers also provide both MMS over HTTP and MMS over TCP, but it is not automatically used in all cases (must be enabled on the server). If you own the server and can configure it, allow both options.
- If MMS over HTTP does not work or you experience problems try MMS over TCP and vice versa. However, MMS over HTTP should be more reliable.
Playlists
WMA files and Windows Media streams are often stored in ASX playlists. The ASX file format is XML based.
If you get a link to an online Windows Media radio station from the internet, most likely it will be in ASX. Streaming Client does not support ASX and therefore to play such radio stations some extra simple "handwork" must be done.
Below is an example of an ASX file as it appears in a text editor:
<ASX VERSION = "3.0">
<entry>
<DURATION VALUE="01:00:00" />
<ref href = "mms://stream.kcdx.com/KCDX" />
<ref href = "rtsp://stream.kcdx.com/KCDX" />
<ref href = "http://stream.kcdx.com/KCDX" />
</entry>
</asx>
As you can see, it is fairly simple to find the URL of the stream. It is stored in the <ref />
elements. Usually several sources are available, in this case (in the order as they appear) MMS over TCP, RTSP and MMS over HTTP. To play the stream in the Streaming Client extract the URLs and enter them on the WEB UI or store them into an M3U playlist.
Do not forget to convert the prefix to the right format compatible with the Streaming Client.
The converted URLs from the above example will be:
mmst://stream.kcdx.com/KCDX
mms://stream.kcdx.com/KCDX