Page History
All Pages
Browse Files
Search

Streaming Media to vintage Windows Media clients

Streaming live audio+video from a modern machine to vintage Windows Media clients is surprisingly very easy, however the documentation on how to do so is extremely difficult to find online*. Truly all you need is VLC Media Player on your modern system, and Windows Media Player 7 (or higher) on your client, and of course a functional network connection between them.

* (this link contains the command line string, but is otherwise inaccurate/out of date)

VLC

the easy way

Modern VLC's GUI has a Network Streaming Wizard which will set up a "Windows Media Video" stream, but this stream is not compatible with vintage Windows Media Player clients. Unfortunately, where older versions of the VLC GUI included additional streaming options via the GUI, the latest versions do not, so there is no GUI-based solution for us here.

Luckily, the VLC command line does still offer all of the features we need. The command structure is like this:

1
vlc input_stream --sout '#transcode{vcodec=WMV2,vb=320,width=240,height=180,acodec=wma,ab=24,channels=2,fps=20}:std{access=mmsh,mux=asfh,dst=:8080} -I dummy'

where input_stream is any valid VLC input stream (a filename, a v4l://, screen://, rtsp:// or any other format supported by the VLC command line), and vcodec is one of WMV1, WMV2 (WMP7), DIV3 (WMP9). -I dummy is just to hide the GUI window; you can omit that if you want the GUI to open. If you are streaming audio only, you need only include acodec, ab, and channels.

It is recommended to avoid the scale= option in favor of width= and height=, in tests this worked more reliably.

To connect to this stream via Windows Media Player, open the URL mms://your-machine's-ip:8080

You can adjust the bitrates, dimensions, and framerates as necessary. There are many variables at play here, so trial and error is likely necessary. Also, remember that when working with ancient codecs like WMV1 and miniscule bitrates like 300kbps, no content is going to look "good" by modern standards; you should expect substantial artifacting, blockiness, and stuttering, no matter how powerful your client is. Even when both hosting and viewing the stream on modern Ryzen with the latest VLC, a low-bitrate WMV1 stream is not going to look or feel particularly smooth.

At "higher" bitrates and resolutions (480p or better, 500kbps or higher) it is possible to get a reasonably "standard-definition" image on a sufficiently powerful client, such as a Windows 2000 or XP machine running on late 2000s hardware.

Multi-Bitrate

VLC supports multiple output streams, meaning you can transcode and broadcast a source at more than one rate. However, it does not appear that these can be contained within one ASF stream, so you will need a separate streaming URL (dst) for each one. Remember how old websites would have like multiple links for the same video, like this?

Well, we need to do the same thing. To do so, we can use the VLC #duplicate instruction (as described here, (archive):

1
vlc input-stream --sout '#duplicate{dst={transcode{vcodec=WMV1,vb=1024,acodec=wma,ab=64,channels=2}:std{access=mmsh,mux=asfh,dst=:8082}},dst={transcode{vcodec=WMV1,vb=256,width=200,height=150,acodec=wma,ab=64,channels=2}:std{access=mmsh,mux=asfh,dst=:8080}}}'

You can add additional dst={transcode{...}:std{...} blocks as necessary.

Compatibility

VLC technically uses mmsh://, an HTTP-wrapped version of MMS which is generally less compatible. It does not appear to be possible to stream to any Windows Media Player client before Version 7 (such as WMP 5.52b for Windows 3.1 or Windows Media Player 6, aka MPLAYER2.EXE, which shipped with Windows 9x). This is unfortunate, as WMP7 seems to introduce some overhead.

Windows Media Player 7

WMP7 seems to add significant network overhead (or uses a particularly slow HTTP implementation) which means that even on capable hardware, results will be disappointing.

A Pentium III 1GHz seems to be perfectly capable of smoothly rendering 480p WMV2 video at 2Mbps, but struggled with frequent buffering while streaming. At 1Mbps, things were improved, but still more or less unwatchable. For whatever reason, even though the system was capable of 75Mbps when transferring files via SMB over LAN, RetroZilla could only transfer 100kbps over HTTP, and WMP7 still has to stop and buffer occasionally while streaming at 300kbps using MMS over HTTP (VLC's MMS implementation)

A Pentium II 300MHz struggled with basically all streaming video with Windows Media Player 7. WMV2 ends up giving the best image quality, but anything over 160x120@160kbps was mostly unwatchable, and even that low bitrate required occasional buffering. Display framerate never seems to exceed 15fps, regardless of VLC setting.

Windows Media Player 9

While WMP7 is much more "era-approriate" for Windows 98SE, WMP9 offers majorly improved network performance over WMP7. On the PII 300MHz, while a 160x120@160kbps was constantly buffering every 10 seconds, WMP9 has absolutely zero issue playing 320kbps 240x180 WMV2 at 20fps with no buffering or stuttering.

Windows Media Encoder

the harder way

Windows Media Encoder 9

You can use Windows Media Encoder 9 to host a Windows Media stream. Streaming between two vintage machines is straightforward, then: simply start a stream in the encoder, and connect from the client, following on-screen instructions. However, your choice of video sources is limited to the screen or a capture device, not the breadth of options covered by VLC. Usage of WME9 is both fairly straightforward and covered elsewhere.

Streaming from a modern machine to a vintage machine by way of WME9 is less straightforward, however. There is one way to stream audio this way, though: VM. A Windows 2000 VM in VirtualBox, with the VirtualBox extensions installed,

Windows Media Encoder 7

Untested. Download is available: wmencoder71.exe

Windows Media Server 4.1

Requires a Server version of Windows (NT 4.0 Server, 2000 Server, Server 2003). On 9x, it will only allow you to install the server remote administration client.

Untested. Download is available: wmserver41.exe

Resources

Windows Media Codecs

Provides WMV2, DIV3 (MS MP4/MP43), and several other codecs for Windows Media Player 7+. archive.org has installers for both 2K/XP and 9x.