DVR-MS is the format used to record television shows in Microsoft Windows XP Media Center Edition. The format is based on the ASF specification. The video codec used is MPEG-2 and the audio codec is normally MP2 although it can be AC3 for HDTV depending on how the signal is broadcast. The format is also currently used by MediaPortal to record television shows.
DVR-MS files have built-in support for DRM which is added to the recording if the broadcast stream is marked as copy protected. In such cases the recording can only be played back on the device it is recorded on. (An exception to this is that hardware based Media Center Extenders can play back DRM-enabled files provided they have been upgraded to the latest firmware.)
While DVR-MS files do conform to the ASF specification there are are some unusual features that are not publicly documented. In particular the following are of note:
- Unlike in regular ASF files, the change of the media object number between video stream sub-packets does not imply that the frame has been completely read. The only way to detect the end of the video frame is to use a codec-specific process to analize the stream.
- All frames in a DVR-MS file are marked as keyframes which makes it impossible to write correct stream-seeking functions without resorting to codec specific code.
- The audio stream header in a DVR-MS file is stored in the header extension object rather than a standard stream header object. The GUID for the audio stream has never been published by Microsoft and this has made it difficult for open source programs to correctly play the format. However the GUID has now been discovered and several open sources media players are now finally capable of playing DVR-MS files.