Log in

View Full Version : mms-asf2disc: mimms (libmms) vs. SDP Downloader vs. VLC media player


Booji Boy
30th March 2007, 17:39
I've noticed that mimms (an libmms based *nix tool for the command line) does create quite different WMV files than SDP Downloader for Windows.

SDP Downloader rewrites the ASF header and I'm not sure I like that. There's also no option to disable that.

Now my knowledge of MMS Streams is limited. I think the ASF header is transmitted beforehand and it's up to the player to re-assemble the meta data into a genuine ASF header? Or is it rather a straight forward data transfer and when redirecting the raw stream to disc the ASF should be precisely the same as in the server's data storage?

The thing is, I've come across a stream that has no index when downloaded with mimms, but when downloaded with SDP Downloader it will get one, as I said above.

EDIT:

Now I have tried all three MMS-Downloaders (mimms, VLC and SDP) on a different stream (includes 3 audiences!) which results in three different WMV files:

42.027.228 bytes - TV-20070330-1727-5201.wm.hi_mimms.wmv
60.877.390 bytes - TV-20070330-1727-5201.wm.hi_sdp.wmv
53.434.828 bytes - TV-20070330-1727-5201.wm.hi_vlc.wmv

This is the source
mms://213.254.239.51/tagesschau/msmedia/2007/0330/TV-20070330-1727-5201.wm.hi.wmv

The mimms file isn't playable in MPC (no sound and no video) and only audio in Windows Media Player.

The VLC file is not seekable. As expected.
The SDP file is. As expected. But a lot bigger!

When running the VLC file through Windows Media Stream Editor the resulting file is not as big as the SDP file. No! It's even smaller than the one created by mimms. :confused:

When running the SDP file through Windows Media Stream Editor... WMSE hangs consuming no CPU time, when stopping the job, CPU time goes to 50% (Hyperthreading CPU) and a massive memory leak occurs. Process has to be terminated.

When running the mimms file through Windows Media Stream Editor, an even smaller WMV file is created (relative to the reduction of the VLC file), still unplayable like the original.

13.558.299 TV-20070330-1727-5201.wm.hi_mimms_wmse.wmv
18.777 TV-20070330-1727-5201.wm.hi_sdp_wmse.wmv
30.054.555 TV-20070330-1727-5201.wm.hi_vlc_wmse.wmv

What's interesting is that WMSE shows me 3 audiences (whatever that is), all with different bitrates: 309, 217 and 137. They're present in all three recorded streams and are also still present after processing the original streams. What is this?

Anyway, the VLC + WMSE method seems to be the most reliable, does anyone agree or have something to add? I'd really like to know why I get so different results with different MMS-to-disc recorders...

zambelli
31st March 2007, 01:56
Anyway, the VLC + WMSE method seems to be the most reliable, does anyone agree or have something to add? I'd really like to know why I get so different results with different MMS-to-disc recorders...
Which method are you using to save the stream in VLC? I was able to save a valid ASF stream by just doing a raw dump to file. The key is to select "Dump raw input" next to File in the Stream output dialog. If you select "ASF" encapsulation method, then VLC tries to demux and mux the streams - which unnecessarily recontructs the ASF header (and VLC isn't using WM Format SDK, so the resulting ASF might not be completely kosher).

Booji Boy
31st March 2007, 18:33
Yep, I've used the raw mode.

The raw stream as saved by VLC is the best of the three. And the fact that it's not seekable is not a surprise, since seeking is probably handled by client<->server negotiation, right?

Do you have any recommended quickstart readings about ASF, MMS streaming and so on? There are quite a lot of things which are not clear to me ("what are audiences", "why does WMSE shrink some streams", "how bad can ASF header re-assembly be", "how does the WM SDK does all this -> therefore how should it be done the right way", and so on...)

But actually I am (was) only looking for the a good streaming ripper for MMS (good = 100% compliant). It doesn't have to be versatile and support other streaming protocols, but it's more important that it does ASF stream capture correctly. Because there are hardly any other internet video streams other than Flash (which I can copy from my browser cache) or MMS nowadays.

Post-processing can be done with the Windows Media Encoder Utilities quite well, I guess. I'm fine with them.