andy vt's tools & blog

automating lazy

About this Page

  • Title:
  • Moderated By:
  • Created:
  • Modified:
  • Modified By: babgvant
  • Revision:

  • Internal Url:

Common Tasks

DVRMStoWMVHD

Contents
DVRMStoWMVHD is a command line utility that converts dvr-ms files to WMV files.  It is designed to work with ATSC files with HD video and AC3 audio streams, but will also convert NTSC and PAL recordings.  Other file formats, like mpg and vob (and VIDEO_TS), will work but may not be supported.

By default (no custom profile is specified) to will convert the dvr-ms file to a WMV file with VC-1 video and WMA Pro 5.1 audio with a programmatically built profile based on the attributes of the source file.  A custom profile can be passed using the -p argument if more control is desired over the target format.  Automatic profile generation does not always work for non-HD (ATSC) sources.

AC3Filter is preferred, and needs to be configured to deliver 5.1 audio for AC3 streams for WMA Pro to work properly.  Other AC3 decoders should work if properly configured, but will not be supported.

While the application should work on XP if WMF11 is installed, it was developed and tested on Vista.

Version History

syntax:

dvrmstowmvhd -i "in.dvr-ms" -o "out.wmv" [-p "wmv.prx" -a "preferred audio guid" -v "preferred video guid" -m -pp -s -pm -w <seconds to wait b/w status writes> -t <dvd title to convert> -g -cw <number of pixels to crop from frame width> -ch <number of pixels to crop from frame height> -ct <top crop ratio> -cb <bottom crop ratio> -cr <right crop ratio> -cl <left crop ratio> ]

-i : The path to the file that should be converted.  If spaces are included in the path, it should be enclosed in quotes.
-o :  The path to the file that will be output.  If spaces are included in the path, it should be enclosed in quotes.
-p : Optional path to the WMF Profile (prx) file that will be used to convert the file.  If spaces are included in the path, it should be enclosed in quotes.  If unspecified, the application will generate a profile based on the input file.
-a : Optional guid of the audio decoder that should be loaded into the graph.  There is no guarentee that it will be used, but it should if input and output types match.
-v : Optional guid of the video decoder that should be loaded into the graph.  There is no guarentee that it will be used, but it should if input and output types match.
-m: Optional, load and connect MatrixMixer filter.  Useful for audio gain on non-AC3 streams.
-pp: Optional, PRIORITY_CLASS value as integer. 32768 = ABOVE_NORMAL_PRIORITY_CLASS for e.g.
-s: Optional, if present writer filter will try to synchronize stream writes, may cause filter deadlocks
-pm: Optional, processor affinity mask. 3 on a dual core system will use both cores(1+2=3)
-w: optional, seconds to wait b/w status writes
-t: optional, dvd title to convert.  defaults to the tile with the most chapters
-g: optional, if present graph will be published to the ROT
-cw: optional, number of pixels to crop from the width
-ch: optional, number of pixels to crop from the height
-ct: optional, top crop ratio; defaults to 1
-cb: optional, bottom crop ratio; defaults to 1
-cl: optional, left crop ratio; defaults to 1
-cr: optional, right crop ratio; defaults to 1

FAQ

Q. Is DVRMStoWMVHD free?
A. Yes.  It is released under the same License as DTB. Source code and binaries can be downloaded from the Downloads section of this site.

Q. How does it work?
A. DVRMStoWMVHD uses a custom DirectShow filter, similar to the WM/AsfWriter which comes with Windows, but it supports multi-channel audio input where the WM/AsfWriter does not.  This enables the preservation of audio fidelity where desired, but also allows for down conversion should smaller files be desired (for a PMP device).  It also overcomes the issue where ATSC DVRMS files don't represent the resolution of the video stream properly (720p streams are documented as 704x480 instead of 1280x720), by setting up a dummy graph and running it expecting failure.  When it fails disconnecting and reconnecting filters in the graph fixes this issue.

Q. What input formats are supported?
A. ATSC, NTSC and PAL DVRMS files will be supported.  A recent update added code for using Intelligent Connect to render non-dvrms source files (including VIDEO_TS folder).  I have tested mpg and vob files with this method, but in theory any format that can resolve via IC will work.

Q. Where should issues be reported?
A. Please document issues in the transcoding  forum.

Q. Why do I receive the "Filter is active" error?
A. In most cases a profile was not specified and the generated profile is not correct (automatic profiles are only designed to work properly for ATSC content).  It is possible that the profile specified is also not correct for the media types.  See this thread for more details.

Q. How do I crop the annoying pixels off the top of the video?
A. Make sure the included crop filter is registered (regsvr32 cropfilter.dll from an elevated prompt).  Then add "-ch 2 -ct 2" to the arguments passed to the exe.  

@2008 andy vt
Powered by Community Server (Non-Commercial Edition), by Telligent Systems