Chad Gibson's Weblog

Windows Digital Media Madness

It's time to join the party...

Hello, my name is Chad Gibson and I’m a program manager within the Digital Media Division at Microsoft.  Our team is working on several different areas of the Windows digital media platform, and I’ve created this blog to start sharing several of our plans with the growing community of folks interested in digital media. 

 

Are you a digital media enthusiast? 

I’d like to hear what gets you excited about digital media, and what drives you crazy. 

 

Are you a developer writing cool audio/video applications? 

Let’s hear what you like/dislike with current technology such as directshow, the windows media format sdk, the windows media player sdk, or other related digital media technologies. 

 

I’ll try to cover a broad array of topics such as audio/video capturing, editing, encoding, recording, and of course playback.

Published Thursday, May 20, 2004 12:43 AM by ccgibson

Comments

 

ChuckBuc said:

Hi Chad, great to see you up and running. I had a project I had been playing around with to organize my mp3s. Shortly after I started it I was playing around with direct play form the DirectX 9 SDK. Absolutely brilliant; with just a few lines of code I had an organizer/player. I actually giggled when it worked.

MyMed = Microsoft.DirectX.AudioVideoPlayback.Audio.FromFile(File)
MyMed.Play()
MyMed.SeekCurrentPosition(1, Microsoft.DirectX.AudioVideoPlayback.SeekPositionFlags.SeekToKeyFrame)
'Hack: There is a problem with some mp3 files where it plays from position 0 then no sound is heard, the file will play if it is started from 1 though

A few things that I ran into was that some mp3s would not play from the start, I would have to forward the position to one to get the mp3 to play. Another great thing would be have some equalizer control and play speed control.
May 20, 2004 1:18 AM
 

ChuckBuc said:

Hi Chad, great to see you up and running. I had a project I had been playing around with to organize my mp3s. Shortly after I started it I was playing around with direct play form the DirectX 9 SDK. Absolutely brilliant; with just a few lines of code I had an organizer/player. I actually giggled when it worked.

MyMed = Microsoft.DirectX.AudioVideoPlayback.Audio.FromFile(File)
MyMed.Play()
MyMed.SeekCurrentPosition(1, Microsoft.DirectX.AudioVideoPlayback.SeekPositionFlags.SeekToKeyFrame)
'Hack: There is a problem with some mp3 files where it plays from position 0 then no sound is heard, the file will play if it is started from 1 though

A few things that I ran into was that some mp3s would not play from the start, I would have to forward the position to one to get the mp3 to play. Another great thing would be have some equalizer control and play speed control.
May 20, 2004 1:19 AM
 

Stephane Rodriguez said:


The thing that I hate most about DirectShow is that throughout the years (Brian Marshall's years) until now, DirectShow is still a technology that is too much tightly coupled with your hardware, drivers, OS, OS SPs, run-times, and a few other thingies.
In other words, from many attempts you will always find a simple and basic video play routine that will work on all OSes but one, or will work on 2K but not on XP and, when tweaked so that it works on XP, it does not work on 2K anymore. Etc.

This technology is in a bad bad bad need for a hard reset.
May 20, 2004 3:08 AM
 

Don said:

Welcome to the blogsphere!

> Let’s hear what you like/dislike [about MS Digital Media]

That's easy. I'm a developer. I love the visual quality of the Windows Media codecs but I'm unbelievably frustrated by how difficult it is for developers to produce content for Windows Media.

First and foremost on the list of issues is the Windows Media Encoder itself.

It's been years since I've seen a commercial product with a UI as bad as the Windows Media Encoder. The properties tabs are full of options and controls that magically appear and disappear (or gain functionality and lose functionality) without warning based on the settings of other controls on other tabs. There are huge gaps in functionality and unnecessary feature linkages (IIRC, you can't apply time compression to a silent video file unless you provide a dummy blank audio file of exactly the right lenght).

Living in Redmond, I've had the opportunity to bump into a number of MS people socially who are familiar with the history of the WME, and they've all told the same story, that the WME feature set is dictated by whatever the sales team thinks it needs to close a particular deal, rather than by any coherent vision of what active experienced developers and content producers actually need.

You need to take control of Windows Media Encoder away from the sales teams and put it where it belongs, in the hands of a talented and experienced PM who knows how to deliver a quality developer tool. Until you do that, and until you make sure that that PM has the resources they need, Windows Media Encoder is going to remain a huge pile of garbage preventing developers from utilizing the media capabilities that Windows has to offer. And putting WME in the hands of a PM with the resources to do it right will help the sales team FAR more than the current status quo because once the deal is signed the client will actually have a usable tool to build their product with. If you think potential customers don't talk to current customers, you're sadly mistaken.

Once you fix WME (or while you fix WME), start providing an actual SDK for encoding. You don't have to look at the encoder SDK (I forget the product name) for more than a few minutes to realize it's an SDK in name only. The "SDK" is nothing more than an exposure of a handful of the core methods that implement the WME application. The SDK wasn't architected to allow developers to build products. It hardly looks like it was architected at all. There's basically one application that you can write with the SDK, and that's the Windows Media Encoder itself.

If you can't afford to produce a real SDK, at least document the XML schemas that the Windows Media Encoder and the Windows Movie Maker use, so that developers can generate control files to leverage the functionality of those tools from within their own applications.

If you're still with me (I realize this probably hasn't been a fun read), moving beyond the Windows Media Encoder UI and the lack of an SDK (let alone a _Managed_ SDK) for encodoing, I'm absolutely baffled by the poor forward-compatibility support in Windows Media Player for new codecs.

If I encode content using WME 9 and series 9 codecs, and someone tries to watch it on a PC with a series 7 player, they hear the audio but don't see any video. No error messages. No "You need to download the Series 9 player". No indication that anything is wrong. Just no video. Inevitably, they either conclude "my PC is broken" or that "this site is crap," neither of which is a thought I want my site to put in their mind. Hopefully, forward compatibility issues have been fixed in WMP 9, but I haven't been able to find the answer and it doesn't really matter because of the huge number of series 7 players out there. The lack of forward compatibility support basically means that in practice you can't actually use the series 9 codecs, which is a HUGE shame because (as I said at the start of this message) the image quality and compression of the newest codecs is fantastic.

You have some fantastic gems in the Media lineup, but you wont be able to unlock their full value until you get rid of the rocks and coal they are buried in. The first step is to scrap the WME and start over from scratch.

-Don
May 20, 2004 9:20 AM
 

chad said:

Thanks for the comments folks.

Don: The encoder certainly has come a long way and it does do a good job at several tasks. We do need to do a better job of empowering developers to write encoding applications, and specifically enabling that from managed code. I'm confident we're improving this situation for future Windows releases. Thank you for this honest feedback.

Stephane: Directshow has proven to be a technology that has enabled some killer multimedia experiences; I'm curious to hear more about your feedback? Are you asking for perhaps more abstraction so the underlying hardware & OS changes have less impact on the multimedia developer?

Chuck: What you are playing with is some of the initial multimedia technology that has been made available via managed code. I'm glad it gave you a chuckle, thanks for the feedback on things to add.
May 20, 2004 6:10 PM
 

Stephane Rodriguez said:


Oh I wish instead of "Directshow has proven to be a technology that has enabled some killer multimedia experiences" you said "Directshow has proven to be a technology that has enabled some killer multimedia experiences in all platforms that we have supported from start".

To some up my thoughts, just take the OpenGL versus DirectX debate.

DirectX : used for games, mostly. The origin for the most disgusting and inproductive wave of patches ever known (compared to which the AV-vendor pushed security patches pale). Simply does not work unless you happen to have the very latest pair of cards, with the very latest driver patches, plus all known requirements that you sometimes find once the game is being installed. And yet, even with that, you pray.

OpenGL : 100% software. Platform agnostic (and of course when I talk cross-platform I don't mean 9X/NT/2K/XP). 0 patch. Everyone is happy with a software-only solution that works.

That's exactly what I see happening in the smaller DirectShow world. How can you fiercely support things like "Windows media plugins and codecs for DirectShow, at the same time than DirectShow codecs for WindowsMedia?". Where do things really intersect from both user and developer perspectives?

What about providing :
- a very light Windows Media player. 1MB for playing music and video. No more.
- 30ms startup time for any music and video that is dragged around.
- Precise diagnostic of internal codecs, so that it's really possible to diagnose what's happening internally.
- A true on-demand codec mechanism that doesn't randomly fail.


Of course, all these objections become automatically irrelevant if you change the EULA and make yourself liable for the issues in your software stack. (I know the usual answer to this question, no need to quibble).


May 21, 2004 5:02 AM
 

Nektar said:

Support for more formats: Since WMP and DirectX is provided with every copy of Windows it should by default support most popular formats for streaming, playback and ripping cds and not simply what Microsoft offers. Also developers would be greatly assisted in their own programs if the standard codex that come natively with Windows could support most of the major formats (MP4, AAC, OGG, Real Video, Quicktime, DIVX, etc) for playback. Currently, WMP only supports ripping to WMA. I think it should support wav, mp3, aac and if possible Real Audio. Ripping cds to wav is very useful to my mind and should be added. Since most sound editing programs accept the wav format whilst support for wma is not so high still and if not using lossless WMA the sound quality also degrates, wav should be supported by all means. In addition Windows should include codex that playback aac format, Quicktime video, mp4 video and if possible OGG, streaming Real Audio/Video in addition to the current support. And if all these formats should appear to some to be very costly for Microsoft, it should be pointed out that Real Player v10 currently supports all of them and even more with extra plugins and it is still free. So, the only reason for Microsoft to continue only supporting WMA for ripping and for streaming over the Internet and not supporting aac, Real Audio/Video streaming, ripping to wav, etc, appears to be to push its own WMA/WMV format. Without saying that WMA is not a good format, since media technologies and especially WMP ship with every copy of Windows they should at least support a bit more. Currently, users must install many players like WMP9, Real Player, etc in order to play all formats. This should stop.
A simple api should also be provided for encoding audio and video into WMA/WMV format. As it has been said, the Windows Media Encoder is not user friendly and if you are a content provider who is going to encode some audio/video, at first you are going to look for a good encoding application on the market and then most probably you are going to use the encoding format provided by that encoding application. If that application as is mostly the case, uses formats like MP3 for audio because Lamenc is free and simple to develop with or worse it uses wav or still uses AVI for videos then bad luck.
May 21, 2004 6:43 AM
 

Adam said:

I am an enthusiast. I have to say I get annoyed at playing MP3's on ANY program because they always seem to hog my memory and slow down my computer (even on P4 mobile with 512 RAM). Additionally, WMP's Home Page on the web that is boots to is largely useless to me.

One of the best things WMP could do to make me want to use it as a playlist machine is connect to CDDB or FreeDB so I can lookup tags for my music. So important, only MusicMatch have I seen this done (fairly) well.
May 21, 2004 10:42 AM
 

Steamy said:

Hi Chad!!!

great to have this conversation here. I'm not sure if my problem is among the things you are looking for, but here it is: i'm a pro musician. windows is absolutely unusable for music production. why? 1. glitchy audio (record and playback), very unstable audio drivers and audio related stuff (everything is "not very stable" from drivers to all the audio related programs)
and the most exciting thing: midi. its horrible on windows (this goes for all the versions) especially timing. for midi we need very precise timing and we dont get that in windows.
i will be very happy if these problems wont exist in longhorn anymore cause i dont want to switch to a mac:-)))
May 31, 2004 4:23 PM
 

Chad Gibson s Weblog It s time to join the party | storage bench said:

June 14, 2009 6:19 AM
Anonymous comments are disabled

This Blog

Syndication

Tags

No tags have been created or used yet.

News

These postings are provided "AS IS" with no warranties, and confer no rights.

Archives


© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker