Fun with DVR-MS
My latest article for MSDN Online is now available at Fun with DVR-MS! A bit on the long side, but in it I delve into working with DirectShow and DVR-MS files (the recorded television files generated by Windows Media Center) from managed code, and I demonstrate how to do things like work with DirectShow filter graphs, play DVR-MS files in your own applications, convert DVR-MS files to other file formats, edit and splice DVR-MS files, extract and change metadata, etc. I also demonstrate how to build a few fun applications, like a DVR-MS to WMV transcoder that runs as a Media Center add-in:
Hope you enjoy it!
-Steve
Comments
Anonymous
March 02, 2005
Steve, Blinding idea - as you say probably one of the most talked about utils for MCE on the forums at the moment.
Never managed to get the dCut or DVR2WMV apps working and have given up as your approach seems more sound.
BUT (and it is a fairly big but) I am still failing to get this working.
- Ran the installer
- Registered the wavdest.ax
- Fired up MCE
- Added a prog to the transcode list and let it rip...
- The dialog comes up that it is processing but the progress bar hasn't moved in half an hour (looks scarily like the problem I had with DVR2WMV)
- MCE and the dialog remain responsive (so no hanging here)
- no ConvertToWMV process seems to be running
Any thoughts as to what may cause this wierdy?
ThanksAnonymous
March 03, 2005
Hi Barney-
If you had a problem with dvr2wmv and dCut that resulted in similar pausing, unfortunately I'd bet you're having the same problem here. dCut uses dvr2wmv, and both dvr2wmv and my sample app simply build the appropriate filter graph and then run it, and while I haven't seen the source for Alex's DLL and while I know he implemented it with more features than mine (2-pass encoding, manual selection of the decoders to use, etc), I'd bet that at its core it's fairly similiar in what graph it builds.
First, just to confirm, what type of recording are you using? Is it NTSC and non-HD? How big a file? etc. And what MPEG2 decoder are you using? I've heard that people have the most success when using NVDVD, which is what I use. Have you tried using a small file (using either DvrEdit or the DvrmsEditor included with the article to cut a snippet out of a larger file), and do you run into the same problem?
A couple of things to look at:
1) When the progress bar stops progressing, open up task manager and look at your CPU utilization... is it at or close to 100% or something much lower?
2) Also when it stops progressing, open up GraphEdit and use the File->Connect to Remote Graph option to connect to the graph in the converter... what do you see? If you make sure that the View->Enable Seek Bar option is checked, is the seek bar at approximately the same place as the progress bar?
3) Is the graph using the decoder you're expecting it to? Do you have multiple decoders on the system? You could try building the graph by hand as described in the article, and see if you have any more success. If you don't, I honestly don't think you're going to have success with this.
Also, you mention a ConvertToWmv process, but actually it runs on its own thread in the MCE shell process, so that's the process in task manager you want to look for.
Hope that helps, and I hope we can get you up and running with at least some solution.
-SteveAnonymous
March 03, 2005
Steve - thanks for that, I'll give it a go tonight when I'm back at home. BarneyAnonymous
March 03, 2005
Hmmm,
Steve - if you'd rather not end up trying to support this here I would understand. Just let me know.
Ok to answer a couple of the questions you posed:
1.I'm in New Zealand so we're PAL and we don't have HD yet :o(
2. I've cut down a file to 70Mb (opening credits of ER)
3. I'm using the Intervideo Video Decoder that came with my HP Media Center
4. The progress bar stops at 1% encoded and has produced a 10 - 17kb wmv file.
5. The CPU is knocking around 10% pretty much the whole time (P3-3.4Ghz 1Gb Ram)
6. Opened up the remote graph and to be fair it looks okay to me - curiously though if I open up the dvr-ms file I get the "some of the streams in this movie are in an unsupported format" error. Could this be the route of my evils?
Does any of this help?Anonymous
March 03, 2005
As mentioned, opening the dvr-ms file gives the "some of the streams..." error message.
BUT I read the whole article (at least the bits I actually understand) and built a graph from the ground up to render to WMV, and hey presto it works.
Great, but using the graph is hardly practical.
Thoughts?Anonymous
March 04, 2005
Unfortunately, this isn't going to work with PAL or HD as implemented. There are some issues with these formats that require some serious workarounds to get transcoding to work properly. Alex has implemented such workarounds in dvr2wmv, but as my article is just sample code, well, it doesn't. So, for now, to all those using PAL, this probably won't work. Apologies.Anonymous
March 04, 2005
Don't sweat it. It's about time I installed a compiler and played around anyhow.
I guess as using the graph to convert PAL to WMV (granted an NTSC WMV as the quality doesn't suffer at all at the higher bitrate) seems to work it shouldn't be too hard to modify your source to follow the same path as the working graph.
Again thanks for the help, and indeed the inspiration.
BarneyAnonymous
March 21, 2005
Hi Steve,
Thanks so much for your write-up on DVR-MS files.
Quick question: How does the WMV Transcoder plugin determine which decoder to use? I have two installed on my MCE machine (PowerDVD and Nvidia). No matter what I do, the transcoder always uses Nvidia (as shown when I "connect to a running graph" in GraphEdit). For reasons more complicated that I'd rather explain, I'd much prefer that the transcoder uses PowerDVD, but I don't want to uninstall the NVidia decoder.
Setting PowerDVD as the "default" MCE decoder (using the Microsoft decoder check utility) does not appear to have any effect on the plugin.
Thanks!
AaronAnonymous
March 22, 2005
The comment has been removedAnonymous
March 22, 2005
Stephen, this is great. Thanks for the quick response!
AaronAnonymous
March 24, 2005
Stephen:
Ahh, a little help if you could...
I installed on a MCE 05 machine, using PowerDVD. When I start the transcode, the bar shows up then immediately disappears. There is no error or resulting file in the specified folder.
The graph correctly shows dvr-ms -> decrypt/tag -> Cyberlink Audio Decoder -> Default DS device and dvr-ms -> decrypt/tag -> cyberlink video/SP decoder -> video renderer.
Any thoughts?
-BDAnonymous
March 24, 2005
Hmm, unfortunately that's not the correct graph. The default DS device and video renderer as you describe them are the default audio and video output devices, meaning a window on the screen and the sound card... the WM ASF Writer isn't being used as the sink for any stream, and in fact from your description it sounds like a WM ASF Writer filter isn't even in the graph. Is it? Is the WM ASF Writer any where in the graph when you examine it with GraphEdit? Also, how are you viewing the graph? Are you connecting to the live graph in GraphEdit, or opening the saved .GRF file generated by WmvTranscoderPlugin in the temp directory?Anonymous
March 24, 2005
I am looking at the live graph using GraphEdit and rendering a dvr-ms.
So no, the WM ASF writer is not showing, but I would not expect it to - then the stream wouldn't play correctly in MCE, right? I assume your program dynamically modifies the graph prior to transcoding, then restores after. Yes? No?
-BDAnonymous
March 24, 2005
The plug-in creates a brand new graph that has nothing to do with the one MCE uses for playback. When it starts the transcoding, it creates the graph, and when it's done, it tears it down; the graph is only published to the ROT while transcoding is happening.
So... you're looking at the wrong graph. The transcoder's graph has nothing to do with MCE's rendering graph (which MCE also publishes to the ROT), which is why you can watch a show at the same time as you're transcoding.
For more information, see the "Fun with DVR-MS" article on MSDN which explains the transcoding and publishing process in detail (with sample code).
Thanks,
StephenAnonymous
March 26, 2005
Stephen,
I appreciate your assistance on this. I looked at the graphs created by your plugin, and I see the problem.
Please keep in mind that I am using PowerDVD in MCE 2k5 for my decoding. One not of interest is that when I originally set it up, I noticed that I was not getting correctly decoded audio. If I played the MPEG stream back in the native PowerDVD player, the audio decoded (Pro Logic) correctly. But when I played it in MCE or WMP, the audio did not decode correctly. So a little DDEcheck, GraphEdit, and merit checking led me to see that the Cyberlink (PowerDVD) Audio Decoder was not being employed, the system preferring to use quartz.dll (MPEG Audio Decoder). So I increased the Merit of the Cyberlink Audio Decoder to encourage MCE and WMP to use it, and it has been successfully working since.
Soooo, looking at the graphs the plugin creates, and I see that the video is correctly directed through the video decoder to the .wmv filter, but the audio stream remains consistent: DVR-MS -> decrypt/tag -> CyberLink Audio Decoder -> Default DirectSound device.
Any thoughts on how to fix this? Truth be told I am now (satisfactorily) using DVR2WMV, but as you note I would much prefer the native MCE interface.
TIA,
-BDAnonymous
March 26, 2005
Furthermore, when I open the graph that your plugin creates and edit the sound path so that it channels to the WMV filter, it renders correctly.
So, (not faulting, but identifying here!) your plugin does not write the graph correctly. Or perhaps it is looking to re-pin from the MPEG decoder in quartz.dll rather than reading the reading and using the default. I'll go look at the code...
-BDAnonymous
March 27, 2005
As I mention in the article, my sample plug-in (it is meant as a sample, after all, to demonstrate what's discussed in the article and is not meant to be a production-quality application) simply uses DirectShow Intelligent Connect to wire-up the filter graph. It adds the WM ASF Writer filter to the graph and then renders the DVR-MS file, letting Intelligent Connect fill in everything in the middle, including choosing what decoder filters to use and how to connect them. If the graph isn't coming out as you'd expect it to, that's due to Intelligent Connect and nothing specifically in the sample code. You could of course modify the graph building code however you see fit, avoiding Intelligent Connect as much as you like.
If you want to use Alex's dvr2wmv and you want to use the ListMaker interface, I'd suggest simply changing my WmvTranscoderPlugin sample code to use dvr2wmv.dll (through COM interop) rather than my sample WmvTranscoder class... it should be a pretty easy replacement, given that the two interfaces are so similar.
-StephenAnonymous
March 27, 2005
Solid thoughts - thank you for your time.
-BDAnonymous
March 27, 2005
Any idea why DVR-MS editor will sometimes hang while saving the output DVR-MS file? Cancelling and playing what has been output reveals the hang always occurs at the end of a segment and before the next segment starts. This doesn't occur between every segment, and if I change the start and end times of the segments enough I get the the entire file to save. To clarify: The problem seems to be that the next segment can't be streamed to the output, although changing the end time of the previous segment is sometimes required to get it going.
DVREdit and dCut have the same problem for me: DVREdit will freeze at the end of a segment. dCut will save out the individual segments but then freeze trying to concatenate them. Also, this problem seems to occur more on the Better and Best quality material than on the Good profile.
Others on the xpMCE and TGB forums have had similar problems. The usual bit of advice seems to be to try a different DVD Decoder, but I didn't think the IStreamBufferRecComp even used the decoder?
If you have any advice it would be most appreciated. I really want to get some of this stuff on DVD.
Thanks!Anonymous
April 24, 2005
Hi,
I found and downloaded/installed the WMVTranscoder you wrote a few weeks ago, and it worked great.
However, it doesn't work anymore... When I try to use it now within MCE2005, the interface works fine, but when I hit the Transcode button, it shows the message with the progress bar for a second, and is then done. No error messages, and the directory it was to transcode to does get created, but the transcoding itself doesn't get done. (It has the same behavior if I use the plugin through the Xbox Extender).
I have tried uninstalling and reinstalling the plugin, and it hasn't made a difference. Anyways I thought I would let you know, and if you do have a suggestion for me that would be great, cause it was a neat utility...
(Between the time I last successfully used it and now a few weeks have passed, during which I have done stuff like install new ATI drivers followed by a rollback due to the new drivers somehow corelating with impacting connectivity for the Xbox Extender, and I have also installed the SonicExtender.msi file which had previously been missing)
Thanks again and regardless of whether it works for me again, it was cool to read through your article on dvr-ms and the code samples...
Shaun
shauntu@hotmail.com, http://spaces.msn.com/members/shauntuAnonymous
April 26, 2005
Travis, yes, it's a known issue with RecComp. I expect this will be better in the next version, though I can't say for sure.
Shaun, WmvTranscoder uses Intelligent Connect to create the filter graph, and it sounds like there's some corruption due to all of the installs and uninstalls that's preventing IC from working correctly. If you follow the instructions in the article for using GraphEdit to convert from DVR-MS to WMV, what happens? Is a graph built successfully?Anonymous
May 07, 2005
Stephen,
You mentioned if we wanted to use Alex's dvr2wmv and use the ListMaker interface, you'd suggest simply changing my WmvTranscoderPlugin sample code to use dvr2wmv.dll (through COM interop) rather than your sample WmvTranscoder class. Additionally you said it should be a pretty easy replacement, given that the two interfaces are so similar.
How would one go about setting that up? Where is the code that would need to be changed? Would it be pretty simple for a novice to complete?
Your ListMaker interface with Alex's dvr2wmv would be a perfect solution compared to anything that currently exists.
Also, in your code, where do you modify the Transcoder settings? I edited the .prx files, but files don't transcode according to those settings on my system.
-tAnonymous
May 08, 2005
re: what code to change
Pretty much the only places that would require code changes are in the WmvTranscoderPlugin.ConvertToWmv and WmvTranscoderPlugin.Cancel methods. ConvertToWmv is supplied with a list of the files to be converted and runs through that list converting each... instead of using the sample WmvConverter to do that conversion, you'd just use Alex's dll.
re: profiles
As mentioned in the article, the plug-in looks to the registry to find which profile it should use (the ProfilePath value on the HKLMSoftwareToubWmvTranscoderPlugin key). If ProfilePath isn't configured, no profile is explicity set onto the ASF Writer filter in the filter graph, so its defaults are used. Modify that registry value to point to whatever .prx file you want to use (the full path to the file), and that should do it.
Hope that helps,
StephenAnonymous
May 08, 2005
The comment has been removedAnonymous
May 10, 2005
re: speed
dvr2wmv ignores the complexity setting in the profile by setting the complexity setting in the video stream to 0. I've heard this can result in significant speedups without any noticeable effect on the results, and my sample code doesn't do this (with emphasis on sample code).
re: title
There's code in WmvTranscoderPlugin to explicitly change the title. If you don't want the files renamed, set the Rename value in the registry to 0. As far as why it's ending up with just the title followed by a dash, if you look at the code you'll see that the code checks if title or subtitle is null. Unfortunately, this is buggy, since GetMetadataItemAsString will return string.Empty if the metadata doesn't exist, rather than null. In your case it sounds like there is no subtitle, so it's just ending up as "title - .wmv". I should really have rewritten that whole section of code to fallback to using the original name if enough metadata doesn't exist to make a useful new one. But, alas, 20/20 hindsight and all that. :)
re: metadata
Did you set the CopyMetadata registry value to 0? That would cause it to stop copying the metadata, which has to be done explicitly, since the transcoding filter graph has no knowledge of such information. In other words, when you transcode a file, the resulting file doesn't have any of the original metadata, so the code in the plug-in explicitly copies it, but only if the CopyMetadata registry value is set appropriately. Maybe this got changed when you modified the ProfilePath setting?Anonymous
May 16, 2005
Is there a way to mimic a 0 complexity setting in the profile? Does changing the complexity from Auto to Simple or Complex speed up the transcoding time?
>>re: speed
dvr2wmv ignores the complexity setting in the profile by setting the complexity setting in the video stream to 0. I've heard this can result in significant speedups without any noticeable effect on the results.Anonymous
July 27, 2005
This plugin is great but I am also looking to change the code to point to DVR2WMV.dll rather than your WMVConverter cos it doesn't work on PAL, at least I can't get it to work, however Alex's dll works a treat.
I just wondered, have you any plans on making this code change nice and neatly yourself for us poor PAL users?
Has anyone else made this change? I know absolutely nothing about programming in this language and fear I may do more damage than good!
Hopefully
BenAnonymous
July 28, 2005
Got it! Steven's plugin is working to WMV on a PAL system.
The reason the ConverttoWMV from Steven's article wasn't working was because Intelligent Connect was't being all that intelligent. It would only connect the graph using Intervideo decoders which just plain don't work for me.
If I use DVR2WMV with intervideo it doesnt work, however I HAVE been able to get the rendering to WMV to work with DVR2WMV when I tell it to use the CyberLink Powerdvd6 decoders.
So in order to get Steven's plugin to work I have to get Intelligent connect to create the graph using Cyberlink Decoders and not Intervideo ones....
The problem was that the Cyberlink ones only seem to work when Intervideo is installed?! The solution was that I have to manually reregister all the Cyberlink Audio and Video decoders by hand, this seem to do the trick.
Now when I create the graph in GraphEdit it uses the Cyberlink ones, hence when Steven's Article does the same thing it uses the Cyberlink ones and successfully renders the PAL DVR-MS files into WMV.
Phew.Anonymous
July 28, 2005
Terrific. Glad it works for you.Anonymous
July 28, 2005
Steven,
I have another problem with teh addin which I wonder if you may be able to help with?
I removed everything in an attempt to clean things up, intending only to install your add-in. I have done so however when I select the addin from the More Programs menu nothing happens...
Do you know why this might be?
Its really frustrating having got it to work and now the addin doesn't run when I click it?!
Thanks
BenAnonymous
July 29, 2005
Ben, is there an error message in the event log?Anonymous
August 01, 2005
Steven,
Thanks for you reply, I forgot to check again (i'm at work at the mo). I have noticed though that the Create CD/DVD wizard also isn't working. i think its time for a reinstall.....again.
BenAnonymous
August 02, 2005
The comment has been removedAnonymous
August 12, 2005
Good question, but something I've never investigated, so unfortunately I'm not sure.Anonymous
August 24, 2005
Hi Steve,
Great article! It shows how easy it is to build a converter using GraphEdit. It's now clear to me how to convert dvr-ms to wmv using graphedit. I wonder if it's also possible to convert mpeg to dvr-ms using GraphEdit. The filter for creating a dvr-ms file. Is it available on a MCE 2005 machine? Or am I on the wrong track here? Thanks in advance! Hein.Anonymous
August 25, 2005
Hi Hein-
It should be possible to do, and the filters for creating DVR-MS files are available in sbe.dll that's shipped as part of WinXP since SP1, but I've never tried, and so unfortunately can't tell you exactly how to do it. You might try contacting Alex, the author of dvredit, as at one point I believe he planned to include mpg->dvr-ms functionality in his tool.
-SteveAnonymous
October 09, 2005
I was hoping to get some pointers on some modifications I’ve made to your code.
I’ve added 3 additional filters; Video, Audio, and the ACM Wrapper for the AC3 audio as additional IBaseFilter’s.
The graph it builds does not connect the video pin to the ASF writer. I can manually do this and run the graph in GraphEdit though.
Can you point me in the right direction for connecting pins of filters to each other in your code?
Is it possible with your implementation to also modify properties of the filters? For instance setting the interlace setting on the video pin.
I’m doing all of this as some of the elecard filters provide some cool functionality but they do not store them in the registry. You must set them every time. Therefore I cannot use dvr2wmv.dll
Thanks so much for the excellent piece of work!Anonymous
October 17, 2005
Tom-
If you know the names of the pins you want to connect, you can use the IBaseFilter.FindPin method to get back the IPin for each pin in which you're interested; alternatively, you can use IBaseFilter.EnumPins to iterate through the pins and to pick out the ones you want. You can then use the methods on IPin, like IPin.Connect, to wire up the graph.
I updated some of the COM interface interop definitions for the project at http://blogs.msdn.com/toub/archive/2005/09/17/470491.aspx... you might want to start with those.
Hope that helps,
SteveAnonymous
December 08, 2005
Will be possible to create a similar application to transcode xvid in any way that xbox 360 could read it in real tima??Anonymous
January 07, 2006
Hi,
I was wondering how to start using an existing tlb file to build a Media Center plug-in under C#. Their library is written using C++. This type library is used with VideoReDo for scanning commercials in a video file. The software is scriptable through the Windows Scripting Interface. It also has a COM interface with function prototypes. I have used tlbimp to convert the tlb to a dll and am able to browse the contents of the dll through idlasm in the .NET Framework 1.1 SDK.Anonymous
February 07, 2006
Have you tried Deskshare.com Digital Media Converter v2.63?Anonymous
March 15, 2006
Hi Just found you plugin worked first time,
however is it possible for the output to go to MyVideo folder.Anonymous
March 16, 2006
Sure, though it'd require a minor code change. Right now you can configure the PreferredDrive in the registry; you'd just need to change the code to accept a preferred path instead, and then in the registry you could configure the add-in with any target path you wanted, including My Videos.Anonymous
March 19, 2006
This looks like the tool that would be helpful.
Media Center recorder default settings has start record some mins before and after a given show
When you record lets say 2 shows back to back on same channel it puts them as one show on the recording. Now the fun.
I want to remove the ending of the unwanted show at the start and remove the beginging of the next show at the end of this recording.
I would also like to split a two shows so each will fit on a dvd. And have the header info corrected on both parts.
Now the progaming question/next article idea, can you intercept a failure to fit on DVD after/before it trys some compression and fails, to jump your custom code to let you in a mini viewer find the split point create two new files and bring the users back to the begining. Perhaps its not possable, or perhaps those entry points were left open for this.?
Even if you do not do more writing on Fun with DVR-MS, thank you for the info that was done.Anonymous
March 20, 2006
Scott, that's a nice idea, but I don't believe the hooks are available to make this happen, at least not with built-in CD/DVD writing support. You could certainly do this if you were writing your own CD/DVD burning add-in, but that would obviously require a heck of a lot more work.Anonymous
May 21, 2006
http://www.willow.tv/EventMgmt/CXTvWeb/Partner/CricInfo/Index.asp?
this is DVR-MS related url in window media player, but it dose not work please help me
ibrawat@yahoo.comAnonymous
June 01, 2006
Hi Stephen.
I installed the plugin, and tried to transcode PAL recorded TV. The result was missing parts of the bottom of the screen whichever way I set the .prx file.
Now in this thread I read that about a year ago it was discussed that the plugin doesn't work with PAL.
Is it these problems that I've run into now?
Apart from the missing parts I get both good picture and sound.
Hope you can help - thanks in advance.
All the best, Jens.Anonymous
July 17, 2006
Where do i download the WmvTranscoderPlugin?
rf926@hotmai.com
thanksAnonymous
July 18, 2006
It's in the download linked from the article:
http://download.microsoft.com/download/9/b/2/9b269201-0f66-40a0-bdb3-8ff22bb854e0/DVR-MS%20Sample%20Code.msiAnonymous
August 19, 2006
The comment has been removedAnonymous
September 12, 2006
I would assume that your program work on Windows XP Professional SP2, and it does.
With PlayingDvrms.exe, only problem is that when I try to seek with trackbar, the video/sound just stops and cannot run again
except that I seek to the beginning of the file.
Do you have any information about that?
It's just it doesn't run correctly on XP Pro?
Thank you in advance,
FuyukiAnonymous
September 13, 2006
I'm not aware of any such problem, although sometimes it can take a few seconds for the seek to complete successfully (these are huge files).Anonymous
September 13, 2006
Dear Stephen,
Thank you for kind reply.
By debugging I have found out that when the SBE source filter tries to NewSegment after the BeginFlush/EndFlush, something is returning 0x80070084h back to the filter and the SBE source filter decided not to do DeliverNewSegment.
I guess that is why the SBE source filter can not complete the seek.
Are you in anyway familier with this 0x80070084h return code from any pin/any filter/any peace of any program source?
Best regards,
FuyukiAnonymous
September 28, 2006
I have trouble installing the wmvtranscoderplugin. I get the error:
This AddIn can only be installed on Windows XP Media Center Edition 2005 or later.
I got version:
Windows XP Media Center Edition 2005.
Service Pack 2.
Thanks in advance,
-PerOS-Anonymous
November 12, 2006
Thank you for your article and source code. With some minor tweaks this compiles in VC# 2005 express. Even more than a year later this is the best software I've found. I've been working on an application for about 35 hours. I need help with a problem, maybe a bug in the SDK. Documentation consistently indicates that IWMPControls2.step(-1) steps back one frame and pauses. It does not. Values >1, <-1 and =0 are ignored (as expected), and 1 steps forward properly. I've dug around quite a bit. There are many instances of MS documentation telling me it should work, but only an old, unresolved reference to the problem: http://www.eggheadcafe.com/forumarchives/windowsmediasdk/Jul2005/post23491451.asp http://groups.google.com/group/microsoft.public.windowsmedia.sdk/browse_thread/thread/11c52e91047e1cb0/918f649d52857160?lnk=st&q=IWMPControls2+step&rnum=2&hl=en#918f649d52857160 Can you suggest a solution or a resource I can look to? I'm using the WMP11 SDK, with WMP11 installed. Thank you, NickAnonymous
November 13, 2006
Ah, I found a reference to it. Apparently MPEG parsers don't generally support going backwards, so step backwards isn't available. Apparently it doesn't work too well in most other formats anyway. http://groups.google.com/group/microsoft.public.windowsmedia.sdk/browse_thread/thread/180c3befac3d6b/3bfb9677bc8962ef?lnk=gst&q=step&rnum=1&hl=en#3bfb9677bc8962ef I was already trying to make current position work, but it's a mess. I guess I'll keep working. I may have to figure something out with taking frame captures when I step forward, and then rolling them back.Anonymous
December 01, 2006
Stephen, great product, great articles. The problem I have is converting to WMV. It's to do with the NVIDIA encoder. If this is used in GraphEdit, conversion just never works, it just hangs and builds a WMV file of 6K! I proved this by exchanging NVIDIA for Cyberlink encoder and WMV conversion works. My question is - for the few programs which do WMV conversion like yours and dCut etc, is there a generic way to force WMV conversion using Cyberlink for all these types of programs. I assume for your program the only way to do this is to recompile with the changes you already mention in this blog. Thanks, Ian.Anonymous
December 01, 2006
Hi Ian- You should be able to bump up the merit value (http://msdn2.microsoft.com/en-us/library/ms787275.aspx) on the Cyberlink filter such that when Intelligent Connect is used to build the graph, it finds the Cyberlink filter first while enumerating all applicable decoders. This would be a registry change and shouldn't require any recompilation. Hope that helps, StephenAnonymous
December 14, 2006
After editing TV w/ the DVRMSEditor (which works great BTW), I the way the program title is displayed in MCE Recorded TV looks different and there are no details for the program. The title would originally be in the form of Show Title-Episode Name and after editing it changes to show title (no caps and no episode info) It also ceases to group shows togther by title. Is this normal, or have I goofed something up?Anonymous
December 14, 2006
Has anyone tried to add 2-pass encoding to the Converter class? I think I'd get a better feeling for it if I knew how you would wire up a Graph for VBR/2-pass encoding. Does GraphEdit support this? Thanks, RickAnonymous
December 20, 2006
Thanks for the awesome MSDN article. I stumbled on it a few weeks ago, and it was very helpful in creating my MCE-to-Zune tool: http://blog.ewal.net/2006/12/21/media-center-on-zune/ I still haven't figured out how to make it work for HD content, but I'm still poking around!Anonymous
February 16, 2007
Lavoro grande con il luogo! Siete il padrone!Anonymous
February 23, 2007
Lavoro eccellente! ..ringraziamenti per le informazioni..realmente lo apprezzo: DAnonymous
February 25, 2007
Dein Aufstellungsort verdient nur gute Woerter. Danke.Anonymous
April 25, 2007
Anybody know whether or not the dvr-ms software works? http://www.dvd-tool.com/convert-dvr-ms.html Thanks.Anonymous
May 13, 2007
There is a converter called "autodvrconvert". It is slightly buggy but converts most dvr-ms files to standard mpeg.Anonymous
May 13, 2007
How does MCE know which shows are repeats? If there is some unique ID for each TV show, is there a way of naming the dvr-ms file with that unique number? I'd like a quick way of identifying repeats, at the moment it names the recording date and channel etc. but this does not tell me whether the shows are repeats. Any ideas?Anonymous
May 13, 2007
Examine the metadata for the recorded show, specifically WM/MediaIsRepeat. http://msdn2.microsoft.com/en-us/library/aa391949.aspxAnonymous
June 28, 2007
It looks like the article has moved, any idea where it's gone?Anonymous
August 14, 2007
My latest article for MSDN Online is now available at Fun with DVR-MS! A bit on the long side, but in it I delve into working with DirectShow and DVR-MS files (the recorded television files generated by Windows Media Center) from managed code, and I demonstrate how to do things like work with DirectShow filter graphs, play DVR-MS files in your own applications, convert DVR-MS files to other file formats, edit and splice DVR-MS files, extract and change metadata, etc. I also demonstrate how to build a few fun applications, like a DVR-MS to WMV transcoder that runs as a Media Center add-in: I do not agree. Go to http://apartments.waw.pl/Anonymous
August 17, 2007
I cannot find this great article. It has moved. Where is it?Anonymous
September 10, 2007
Has this article been removed from MSDN ?Anonymous
September 16, 2007
I can't find it either. Yet another shambolic Microsoft deleting links mess. No wonder Vista is so buggy if this is how they manage cross references.Anonymous
September 17, 2007
I emailed Stephen who kindly promptly wrote back with: Hi Andy- The article was accidentally taken down when a content sweep was done to update the MCE site on MSDN for Vista. I've been working to get it put back up. -StephenAnonymous
September 22, 2007
The article is now on my blog at: http://blogs.msdn.com/toub/archive/2007/09/22/fun-with-dvr-ms.aspxAnonymous
November 06, 2007
Hi, Is it possible to use the DLL file from your download, add it as a resource into VB script and then access the DVR-MS data using some VB Code, so for example I simply want to display the title and sub title of a program recorded in a VB program, I can see that this information can be found in the metadata but I'm struggling to extract this information. Thanks PaulAnonymous
November 07, 2007
What would cause a blank file, no file type or anything in the output folder, named that of the show to be converted but no file size or anything?Anonymous
January 01, 2008
PingBack from http://movies.247blogging.info/?p=2731Anonymous
August 02, 2008
PingBack from http://preston.freevideonewsnetwork.info/utoub.htmlAnonymous
August 04, 2008
PingBack from http://briana.freevideonewsradio.info/makescopepluginextender.htmlAnonymous
October 06, 2008
http://www.dvr-msconverter.comAnonymous
May 29, 2009
PingBack from http://paidsurveyshub.info/story.php?title=stephen-toub-fun-with-dvr-msAnonymous
June 09, 2009
PingBack from http://besteyecreamsite.info/story.php?id=2338Anonymous
June 17, 2009
PingBack from http://pooltoysite.info/story.php?id=239Anonymous
June 18, 2009
PingBack from http://barstoolsite.info/story.php?id=4754Anonymous
December 10, 2010
Care to update the link in the post with the one in the comments here? Still got a severe case of link-rot going on here. Very useful utility and blog post even 5 years later. Please don't leave us hanging! :)