| BAN WINDOWS MEDIA! copyright http://www.goldenpi.no-ip.org/drm/asf.shtml Virtualdub error message explains ASF support removed after a request from ASF patentholder Microsoft WM (windows media) files can have the extension WMA, WMV or ASF. They usually use a propritary Microsoft implimentation of the MPEG 4 codec, providing reasonable quality at low bitrates, but not much better at high bitrates. They are quite popular on p2p networks, largely because of the ease of encodeing and an unusually good handling of animation. However WM does have a few huge problems... There are three main reasons to avoid WM: 1. Microsoft lock-in 2. Very poor security 3. Difficulty converting Microsoft lock-in The WM formats are very propritary. Both the codec and formats are patented by Microsoft, and they are determined to lock people in. Once you start using WM its very hard to get it working without Microsoft software. WM is not viewable under Linux. There is only one encoder and thats for windows only. There is no way to use WM in any way under any OS other than windows. WM needs to be encoded on a windows system, WM streams need a windows server, they are viewable only on windows. WM files, espicially ASF, are almost impossible to convert to any other format, so once you release a WM file it will probably always be a WM file, viewable only under Windows Media Player. Althrough normally noone would use these formats, which are highly propritory, MS has been doing its bundling again. Windows media player is able to rip CDs, but only in WMA format. Althrough not apparent at first, these files are actually protected by DRM, and will only be playable on the system which riped them. They will also refuse to play if the system is reformated or windows reinstalled unless the user first backed up their licenses, which most users wont. Many people have ruined their riped CD collections because WMP does not warn them about this limitation. If you connect a firewire camera to windows ME or XP, you will immediatly be presented with Microsofts video capture and editor program "windows movie maker". Of course users will use this convieniently and unfairly bundled program, which saves only in the WMA and WMV formats. These users will make their home videos into WMV, which will only be viewable under windows and will be almost uneditable once saved. Microsoft has released the ASF speciforcation. It can be downloaded from their website, subject to a license agreement which makes the XP eula look quite friendly. Basicly it says you can write ASF software, but you must not make it open source. You cannnot write software which competes with microsofts own. You cannot write software which saves information from ASF files in any format other than ASF. You must not release the software under a license which makes the software or source redistributable or allows derivitave works. The license evey says you may not use open source software to devlope your ASF software! The restrictions are so strict its not actually possible to write any useful software. And microsoft actually describes the format as open! Of course these license restrictions are in addition to the restrictions on the codec itsself. Here are the offending sections, my emphesis. Pay particular attention to section 2(g): 1a) Specification. Provided you comply with all terms and conditions of this Agreement, including without limitation Section 2 below, Microsoft grants you the following limited, non-exclusive, world-wide, royalty-free, non-assignable, nontransferable, non-sublicenseable license during the Term (defined below), under any copyrights owned or licensable by Microsoft without payment of consideration to unaffiliated third parties, to: (i) reproduce and internally use a reasonable number of copies of the Specification in its entirety as a reference for the sole purpose of implementing ASF in your application or utilities (your ?Solution?); and (ii) reproduce and have reproduced in object code form only your implementation of ASF made pursuant to the terms of this Agreement (the ?Implementation?), and distribute, directly and indirectly, the Implementation(s) (only in object code form) solely as part of and for use with your Solution. 2(e) Your Solution may not save to permanent storage, transfer to another process, write to a network, or otherwise export, content compressed with Windows Media Codecs unless such content is contained within ASF. 2(g) For a variety of reasons, including without limitation, because you do not have the right to sublicense the Necessary Claims, your license rights to the Specification are conditioned upon your (a) not distributing the Implementation in conjunction with Identified Software (as defined below); (b) not using Identified Software (e.g. tools) to develop the Implementation; and (c) not distributing the Implementation under license terms which would make the Implementation Identified Software. "Identified Software" means software which is licensed pursuant to terms that directly or indirectly: (i) create, or purport to create, obligations for Microsoft with respect to the intellectual property in the Specification (including without limitation, any Necessary Claims) licensed to you pursuant to Section 1 (!Microsoft IP!) or (ii) grant, or purport to grant, to any third party any rights or immunities under Microsoft IP. Identified Software includes, without limitation, any software that requires as a condition of use, modification and/or distribution of such software that other software distributed with such software (x) be disclosed or distributed in source code form; (y) be licensed for the purpose of making derivative works; or (z) be redistributable at no charge. Section 2(g) is not unique to ASF. It is a common clause in many Microsoft licenses, includeing most of .NET. A demonstration that Microsofts hatrid of open source goes far beyond simply hateing competition. Microsoft hates open source in a way far more personal than simply money. Its a sort of corporate vendetta, a fight betweeen the ideologys of intellectual property and unconstrained freedom of speech. Very poor security WM files actually use a fairly complicated scripting language in the file. As the only player for WM files is WMP there is no way to stop those scripts executing. The script has a few useful abilities, such as running a slideshow syncronised with an ASF streaming video, but they can also be abused easily. All p2p networks now contain ASF files which will open full-screen popups of porn sites. There is the possibility of a windows media virus. There is also potential abuse from companys streaming WM for everything from spyware to piracy-detecting logic bombs. ASFs main marketing point for streaming is download difficulty. The only player able to recieve ASF streams is Windows Media Player, and that wont save them to disk. A perfect setup for pay-per-view or ad-fuded sites. But it didn't work quite as well as MS claimed, and ASF files can now be downloaded easily by a freeware program (its on the tools page). Conversion difficulty Microsoft makes all the WM tools, and activly stops anyone else using their patents. They have made it impossible to use their tools to convert WM to a non-microsoft format, so once content is encoded to WM it is almost impossible to decode. There is only one WM decoder for each of the three formats, they part of windows directshow system and only work for playback in WMP, not conversion. The directshow filters and decoders can be used for conversion with the right software through, so MS added some extra difficulty. The ASF filter is programed never to decode above playing speed, so any conversion will take a long time. It also ruins the AV sync to make conversion even more difficult. There was a way to convert ASF to AVI without loseing AV sync. Virtualdub, a GNU program, used a reverse enginered ASF format to open the file, then used windows own decompressor. In typical microsoft style the author was threatened and accused of patent infringement and ASF support was removed. You can find an old version with ASF support in the tools page, but its ASF suppost isn't very relyable. Microsoft really dont want you converting their ASF, WMA or WMV files to another format. They are so determined that they actually forced winamp, one of the few non-MS players able to play WMA, to disable filter plugins while playing WMA files, becuse those filters could be used to save the file in another format. Remember winamp cannot open DRMed files, so its not a security problem. MS just doesn't want their propritary formats converted to any format which can be played on non-windows systems. I have discovered a way to convert ASF to AVI relyably and without loseing AV sync. TMPGEnc will accept ASF as a directshow source, but because it doesn't use the directshow AVI output filter it will not ruin the AV sync. The directshow filters are still limited to playback speed through, so it will take a long time. I have instructions for the conversion right here. Now I have managed to convert an ASF I can reveal how I downloaded it: The tool is called ASFRecorder, and can be run either as a windows GUI application or a linux/unix console application. Its now in the toolkit section. According to microsofts website ASF means "advanced systems format", not any of the following: Advanced streaming format Active streaming format Active streaming file Advanced streaming file Active systems format I think thats all the popular but incorrect names listed :-) There was a good rant about the microsoft warning on the virtualdub site, but its gone. I have a copy of it here. (The copy of virtualdub in the toolkit is 1.3c, with ASF support. Its not very reliable ASF support, it wouldn't open the files I downloaded, but its there.) ASF to AVI conversion Why convert? Because ASF is junk. Its highly propritary. It only plays in windows media player. It has scripting security problems, and WMP has a buffer overflow vulnerability in its ASF handler. But mostly because it cannot be edited. Only microsoft writes tools for ASF files, and their tools cant edit. Why is it so hard? Because microsoft wants it to be hard. Many websites use ASF files for streaming because they are undownloadable (or so microsoft claims, its been cracked), perfect for pay-per-view or ad-funded sites. These sites only work for users using windows and WMP. Microsoft likes this, so they want ASF files to STAY ASF files. Thats why they havn't released any tools able to convert ASF to other formats. Additionally, if you find the ASF format license on microsofts site you will see that third party devlopers can use ASF files, but only subject to many restrictions. One of these restrictions is that they must not write programs able to convert ASF to other formats. There is only one ASF decoder. It is part of windows directshow system. Because directshow could be used to transfer ASFs to other formats this ASF filter has two restrictions. Firstly, it cannot decode above playback speed. So even if you do manage to convert ASF using it you will only be able to do it slowly. Secondly, attempting to convert to AVI using it will ruin A/V sync, often by several minutes. ========================================================================= Conversion method 1: Perfect conversion But slow To convert ASF to AVI you will need AsfTools and TMPGEnc. TMPGEnc must be a reasonably new version as some older versions will not go past the two gig limit. The technique is simple enough. Load the ASF file in AsfTools and use the options under "advanced" to save it to AVI. Unfortunatly your AVI usually wont work, part of the no-transcode work of microsoft. Althrough the AVI file still contains the ASFs information the decoder filter needed ti view it will only accept data found in ASF fils. Thats OK, you dont need it working. You just need to look at its properties and find this info: X-resolution Y-resolution Frame rate Audio sample rate Mono/stereo 8/16 bit Now your done with AsfTools. Close it and run TMPGEnc. Drag your ASF file onto TMPGEnc to load it. Now I must explain the features microsoft has used to stop you doing this :-) There is only one ASF decoder, the Windows Directshow filter. Not surprisingly microsoft hasn't released a linux decoder or any information on the format or codec :-). TMPGEnc can open an ASF file through this filter. Usually trying that would ruin AV sync, but because TMPGEnc uses its own output code, not microsofts directshow filters, sync is not ruined. The playback speed limiter is still there through, so this will take time. Now you need to click the load button in the lower-right of the TMPGEnc window. Somewhere under the directory where you unziped TMPGEnc will be a file called "unlock.mcf". Open it. Now click setting. Enter the resolution and frame rate from the AVI file you produced earlier. Set the aspect ratio as well, its usually 4:3. Now file->output to file->AVI file. Set the audio settings you got from the earlier AVI and choose your codec. Start the conversion. Now you are using the directshow input filters, which dont decode above playing speed. So its time to go and make a cup of tea and get a good book. After approximatly the length of the file has passed you will have an AVI output ready, and you can use all your normal tools on it. I recormend using either raw output or the huffyuv lossless codec for output so you can compress it after editing, unless you are having trouble with the four gig limit :-). You can also convert to MPG using TMPGEnc is you want, includeing conversion to VCD, SVCD or DVD compliant mpegs. ========================================================================= Conversion method 2: AV sync ruined and still slow Download the program "graphedit.exe". This is a directshow devlopment tool which can be found either legally burried on microsofts website as part of a several hundred meg SDK, or illegaly on most p2p networks. Where you get it doesn't matter. In the file menu will be an option to "render media file" or something similar. Use it to open your ASF. Test it by playing. That complicated looking selection of boxes and lines shows the filters being used to open, decode and render the ASF file. You just need to make a few changes. You dont need the rendering componants, so remove them. Now you have a directshow file and decoder, with their outputs going nowhere. Add an AVI video compresion codec or raw video filter and an AVI writer. Connect them together as appropriate. And play. Easy. ========================================================================= Conversion method 3: Sync ok Now its fast But unreliable Download virtualdub version 1.3C. Do not download a newer version, as ASF support was removed after a threat from microsoft. Open the ASF. Save it as an AVI. Done. Instant AVI. But the ASF format is microsoft, not well documented. Virtualdubs implimentation was made by reverse enginering the format. Sometimes it works, sometimes not. |