From c557492f3e191e64e0a2737152e4c77a35476e1a Mon Sep 17 00:00:00 2001
From: "Alan J. Pippin" <ajp@server.pippins.net>
Date: Sun, 6 Apr 2008 15:55:05 -0600
Subject: [PATCH 1/1] Added every script to track by default

---
 Windows Scripts/Adobe Encore DVD Howto.txt    |   8 +
 Windows Scripts/Adobe Premiere Howto.txt      |   1 +
 Windows Scripts/Compress DivX Audio.bat       |   1 +
 .../DIVX Settings for DV to DIVX.txt          |   0
 .../DivX Adobe Premiere AVIs/Thumbs.db        | Bin 0 -> 44544 bytes
 .../DubMan Templates/Compress DivX Audio.bat  |   1 +
 .../DubMan Templates/Compress DivX Audio.djt  |  33 ++
 .../Convert DV to DivX 1st pass.djt           |  59 +++
 .../Convert DV to DivX 2 passes.djt           |  59 +++
 .../Convert DV to DivX 2nd pass HQ.djt        |  59 +++
 .../Convert DV to DivX 2nd pass.djt           |  34 ++
 .../DubMan Templates/Convert DV to DivX.bat   |   1 +
 .../DubMan Templates/Convert DV to DivX.djt   |  34 ++
 .../Single DV AVI to DIVX.djt                 |  33 ++
 .../VirtualDub Audio Compression.vcf          |  17 +
 ...Dub DV to DIVX compression - pass 1 HQ.vcf |  18 +
 ...ualDub DV to DIVX compression - pass 1.vcf |  18 +
 ...Dub DV to DIVX compression - pass 2 HQ.vcf |  18 +
 ...ualDub DV to DIVX compression - pass 2.vcf |  18 +
 .../VirtualDub DV to DIVX compression.vcf     |  18 +
 .../TMPG Settings/DIVX to DVD .mcf            | 141 +++++++
 .../TMPG Settings/DV to DVD 2pass VBR.mcf     | 125 +++++++
 .../TMPG Settings/DV to DVD CBR.mcf           | 125 +++++++
 .../TMPG Settings/DV to DVD CQ.mcf            | 125 +++++++
 .../TMPG Settings/DV to DVD wizard.mcf        | 125 +++++++
 Windows Scripts/TMPG Settings/DV to DVD.mcf   | 125 +++++++
 .../TMPG Settings/TV to DVD wizard CBR.mcf    | 127 +++++++
 .../TMPG Settings/TV to DVD wizard VBR.mcf    | 127 +++++++
 Windows Scripts/TMPG Settings/TV to DVD.mcf   | 141 +++++++
 Windows Scripts/Thumbs.db                     | Bin 0 -> 28672 bytes
 Windows Scripts/dv2all.bat                    |  17 +
 Windows Scripts/dv2divx.bat                   |   1 +
 Windows Scripts/dv2divx_2pass.bat             |   1 +
 Windows Scripts/dv2divx_2pass_HQ.bat          |   1 +
 Windows Scripts/dv2rm.bat                     |   1 +
 Windows Scripts/dv2rm.pl                      | 125 +++++++
 avi2divx                                      |  22 ++
 avi2divx4                                     |  13 +
 avi2flv                                       |  25 ++
 avi2mp3avi                                    |   4 +
 avi2raw                                       |  10 +
 avi2xvid                                      |  18 +
 avimerge                                      | Bin 0 -> 63788 bytes
 backup_system.cmd                             |  14 +
 burniso.cmd                                   |   3 +
 copy_home_videos.cmd                          |  64 ++++
 create_merge_videos                           |   1 +
 dos2ux                                        | Bin 0 -> 19771 bytes
 dump_raw_video_files_from_camera              |   1 +
 em                                            |   3 +
 fix_video_names                               |   1 +
 make_home_videos.cmd                          |  72 ++++
 make_home_videos.cmd.noreboot                 |  67 ++++
 make_home_videos.pl                           | 352 ++++++++++++++++++
 merge_all_new_mpg_clips.pl                    |  56 +++
 merge_mpg_clips                               |   8 +
 mov2avi                                       |   7 +
 setprompt.pl                                  |  50 +++
 vob2avi                                       |   8 +
 59 files changed, 2536 insertions(+)
 create mode 100755 Windows Scripts/Adobe Encore DVD Howto.txt
 create mode 100755 Windows Scripts/Adobe Premiere Howto.txt
 create mode 100755 Windows Scripts/Compress DivX Audio.bat
 create mode 100755 Windows Scripts/DIVX Settings for DV to DIVX.txt
 create mode 100755 Windows Scripts/DivX Adobe Premiere AVIs/Thumbs.db
 create mode 100755 Windows Scripts/DubMan Templates/Compress DivX Audio.bat
 create mode 100755 Windows Scripts/DubMan Templates/Compress DivX Audio.djt
 create mode 100755 Windows Scripts/DubMan Templates/Convert DV to DivX 1st pass.djt
 create mode 100755 Windows Scripts/DubMan Templates/Convert DV to DivX 2 passes.djt
 create mode 100755 Windows Scripts/DubMan Templates/Convert DV to DivX 2nd pass HQ.djt
 create mode 100755 Windows Scripts/DubMan Templates/Convert DV to DivX 2nd pass.djt
 create mode 100755 Windows Scripts/DubMan Templates/Convert DV to DivX.bat
 create mode 100755 Windows Scripts/DubMan Templates/Convert DV to DivX.djt
 create mode 100755 Windows Scripts/DubMan Templates/Single DV AVI to DIVX.djt
 create mode 100755 Windows Scripts/DubMan Templates/VirtualDub Audio Compression.vcf
 create mode 100755 Windows Scripts/DubMan Templates/VirtualDub DV to DIVX compression - pass 1 HQ.vcf
 create mode 100755 Windows Scripts/DubMan Templates/VirtualDub DV to DIVX compression - pass 1.vcf
 create mode 100755 Windows Scripts/DubMan Templates/VirtualDub DV to DIVX compression - pass 2 HQ.vcf
 create mode 100755 Windows Scripts/DubMan Templates/VirtualDub DV to DIVX compression - pass 2.vcf
 create mode 100755 Windows Scripts/DubMan Templates/VirtualDub DV to DIVX compression.vcf
 create mode 100755 Windows Scripts/TMPG Settings/DIVX to DVD .mcf
 create mode 100755 Windows Scripts/TMPG Settings/DV to DVD 2pass VBR.mcf
 create mode 100755 Windows Scripts/TMPG Settings/DV to DVD CBR.mcf
 create mode 100755 Windows Scripts/TMPG Settings/DV to DVD CQ.mcf
 create mode 100755 Windows Scripts/TMPG Settings/DV to DVD wizard.mcf
 create mode 100755 Windows Scripts/TMPG Settings/DV to DVD.mcf
 create mode 100755 Windows Scripts/TMPG Settings/TV to DVD wizard CBR.mcf
 create mode 100755 Windows Scripts/TMPG Settings/TV to DVD wizard VBR.mcf
 create mode 100755 Windows Scripts/TMPG Settings/TV to DVD.mcf
 create mode 100755 Windows Scripts/Thumbs.db
 create mode 100755 Windows Scripts/dv2all.bat
 create mode 100755 Windows Scripts/dv2divx.bat
 create mode 100755 Windows Scripts/dv2divx_2pass.bat
 create mode 100755 Windows Scripts/dv2divx_2pass_HQ.bat
 create mode 100755 Windows Scripts/dv2rm.bat
 create mode 100755 Windows Scripts/dv2rm.pl
 create mode 100755 avi2divx
 create mode 100755 avi2divx4
 create mode 100755 avi2flv
 create mode 100755 avi2mp3avi
 create mode 100755 avi2raw
 create mode 100755 avi2xvid
 create mode 100755 avimerge
 create mode 100755 backup_system.cmd
 create mode 100755 burniso.cmd
 create mode 100755 copy_home_videos.cmd
 create mode 100644 create_merge_videos
 create mode 100755 dos2ux
 create mode 100755 dump_raw_video_files_from_camera
 create mode 100755 em
 create mode 100644 fix_video_names
 create mode 100755 make_home_videos.cmd
 create mode 100755 make_home_videos.cmd.noreboot
 create mode 100755 make_home_videos.pl
 create mode 100755 merge_all_new_mpg_clips.pl
 create mode 100755 merge_mpg_clips
 create mode 100755 mov2avi
 create mode 100755 setprompt.pl
 create mode 100755 vob2avi

diff --git a/Windows Scripts/Adobe Encore DVD Howto.txt b/Windows Scripts/Adobe Encore DVD Howto.txt
new file mode 100755
index 0000000..927e278
--- /dev/null
+++ b/Windows Scripts/Adobe Encore DVD Howto.txt	
@@ -0,0 +1,8 @@
+1) Cannot transcode DIVX avi source files. Transcoder just hangs.
+   Currently, must convert all DIVX avi source files to DV avi.
+2) DV source files will transcode properly.
+3) Use NTSC Progressive High Quality 7Mb VBR 2 Pass PCM encoding.
+4) Raw Premiere Projects exported as DV have out of focus text banners.
+   So, export to DV, convert to high quality DIVX, then take that DIVX
+   file and convert it to DV. Use this DV file as the source file, and
+   everything will look great.
\ No newline at end of file
diff --git a/Windows Scripts/Adobe Premiere Howto.txt b/Windows Scripts/Adobe Premiere Howto.txt
new file mode 100755
index 0000000..f7a1b7a
--- /dev/null
+++ b/Windows Scripts/Adobe Premiere Howto.txt	
@@ -0,0 +1 @@
+1) Issue with exporting to DIVX. Strange artifacts occur in the DIVX source.
\ No newline at end of file
diff --git a/Windows Scripts/Compress DivX Audio.bat b/Windows Scripts/Compress DivX Audio.bat
new file mode 100755
index 0000000..bcba0f5
--- /dev/null
+++ b/Windows Scripts/Compress DivX Audio.bat	
@@ -0,0 +1 @@
+"C:\Program Files\Java\j2re1.4.0\bin\javaw.exe" -jar "C:\Program Files\DubMan\DubMan.jar" "V:\Videos\DubMan Templates\Compress DivX Audio.djt" /r
diff --git a/Windows Scripts/DIVX Settings for DV to DIVX.txt b/Windows Scripts/DIVX Settings for DV to DIVX.txt
new file mode 100755
index 0000000..e69de29
diff --git a/Windows Scripts/DivX Adobe Premiere AVIs/Thumbs.db b/Windows Scripts/DivX Adobe Premiere AVIs/Thumbs.db
new file mode 100755
index 0000000000000000000000000000000000000000..f6167677f4526044cbd9f31e41494150cfffe27a
GIT binary patch
literal 44544
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
b_3FRVTmDX-5e32iht~Di=KsI`y(jP=u7p<l

literal 0
HcmV?d00001

diff --git a/Windows Scripts/DubMan Templates/Compress DivX Audio.bat b/Windows Scripts/DubMan Templates/Compress DivX Audio.bat
new file mode 100755
index 0000000..bcba0f5
--- /dev/null
+++ b/Windows Scripts/DubMan Templates/Compress DivX Audio.bat	
@@ -0,0 +1 @@
+"C:\Program Files\Java\j2re1.4.0\bin\javaw.exe" -jar "C:\Program Files\DubMan\DubMan.jar" "V:\Videos\DubMan Templates\Compress DivX Audio.djt" /r
diff --git a/Windows Scripts/DubMan Templates/Compress DivX Audio.djt b/Windows Scripts/DubMan Templates/Compress DivX Audio.djt
new file mode 100755
index 0000000..02a32c8
--- /dev/null
+++ b/Windows Scripts/DubMan Templates/Compress DivX Audio.djt	
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<dubman:template xmlns:dubman="http://dubman.sourceforge.net" name="" format="1.1" version="0.812">
+  <dubman:bulk>
+    <dubman:wildcard />
+  </dubman:bulk>
+  <dubman:jobs>
+    <dubman:job>
+      <dubman:name value="Compress DivX Audio" />
+      <dubman:input value="V:\Videos\Divx Adobe Premiere AVIs\*.avi" />
+      <dubman:output value="V:\Videos\*.avi" />
+      <dubman:deleteInput value="false" />
+      <dubman:script>VirtualDub.audio.SetSource(1);
+VirtualDub.audio.SetMode(1);
+VirtualDub.audio.SetInterleave(1,500,1,0,0);
+VirtualDub.audio.SetClipMode(1,1);
+VirtualDub.audio.SetConversion(0,0,0,0,0);
+VirtualDub.audio.SetVolume();
+VirtualDub.audio.SetCompression(85,48000,2,0,16000,1,12,"AQAAAAAAAQAAAOgD");
+VirtualDub.audio.EnableFilterGraph(0);
+VirtualDub.video.SetDepth(24,24);
+VirtualDub.video.SetMode(0);
+VirtualDub.video.SetFrameRate(0,1);
+VirtualDub.video.SetIVTC(0,0,-1,0);
+VirtualDub.video.SetRange(0,0);
+VirtualDub.video.SetCompression();
+VirtualDub.video.filters.Clear();
+VirtualDub.audio.filters.Clear();
+VirtualDub.subset.Delete();</dubman:script>
+      <dubman:runWith value="0" />
+    </dubman:job>
+  </dubman:jobs>
+</dubman:template>
+
diff --git a/Windows Scripts/DubMan Templates/Convert DV to DivX 1st pass.djt b/Windows Scripts/DubMan Templates/Convert DV to DivX 1st pass.djt
new file mode 100755
index 0000000..b21d579
--- /dev/null
+++ b/Windows Scripts/DubMan Templates/Convert DV to DivX 1st pass.djt	
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<dubman:template xmlns:dubman="http://dubman.sourceforge.net" name="" format="1.1" version="0.812">
+  <dubman:bulk>
+    <dubman:wildcard />
+  </dubman:bulk>
+  <dubman:jobs>
+    <dubman:job>
+      <dubman:name value="Convert DV to DivX 1st Pass" />
+      <dubman:input value="U:\MiniDV\*.avi" />
+      <dubman:output value="V:\DIVX-Videos\firstpass.avi" />
+      <dubman:deleteInput value="false" />
+      <dubman:script>VirtualDub.audio.SetSource(1);
+VirtualDub.audio.SetMode(1);
+VirtualDub.audio.SetInterleave(1,500,1,0,0);
+VirtualDub.audio.SetClipMode(1,1);
+VirtualDub.audio.SetConversion(0,0,0,0,0);
+VirtualDub.audio.SetVolume();
+VirtualDub.audio.SetCompression(85,48000,2,0,16000,1,12,"AQACAAAAgAEBAHEF");
+VirtualDub.audio.EnableFilterGraph(0);
+VirtualDub.video.SetDepth(24,24);
+VirtualDub.video.SetMode(3);
+VirtualDub.video.SetFrameRate(0,1);
+VirtualDub.video.SetIVTC(0,0,-1,0);
+VirtualDub.video.SetRange(0,0);
+VirtualDub.video.SetCompression(0x78766964,0,10000,0);
+VirtualDub.video.SetCompData(512,"zAEAAAAAAAACAAAAAAk9AAAAgEABAAAAAAAAAAAAAAAAAAAAAAAAAJYAAAAyAAAA0EfIAQAAYAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAmpmZmZmZyT+amZmZmZnJPwAAAAAAAAAAAAAAAIACAADgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAZAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAFY6XGRpdngubG9nAGM6XHRlc3QuZGl2eABjOlxtdmluZm8uYmluAGM6XG5ld3JjLnR4dAA=");
+VirtualDub.video.filters.Clear();
+VirtualDub.audio.filters.Clear();
+VirtualDub.subset.Delete();</dubman:script>
+      <dubman:runWith value="0" />
+    </dubman:job>
+    <dubman:job>
+      <dubman:name value="Convert DV to DivX 2nd Pass" />
+      <dubman:input value="V:\DIVX-VIdeos\firstpass.avi" />
+      <dubman:output value="V:\DIVX-Videos\*.avi" />
+      <dubman:deleteInput value="false" />
+      <dubman:script>VirtualDub.audio.SetSource(1);
+VirtualDub.audio.SetMode(1);
+VirtualDub.audio.SetInterleave(1,500,1,0,0);
+VirtualDub.audio.SetClipMode(1,1);
+VirtualDub.audio.SetConversion(0,0,0,0,0);
+VirtualDub.audio.SetVolume();
+VirtualDub.audio.SetCompression(85,48000,2,0,16000,1,12,"AQACAAAAgAEBAHEF");
+VirtualDub.audio.EnableFilterGraph(0);
+VirtualDub.video.SetDepth(24,24);
+VirtualDub.video.SetMode(3);
+VirtualDub.video.SetFrameRate(0,1);
+VirtualDub.video.SetIVTC(0,0,-1,0);
+VirtualDub.video.SetRange(0,0);
+VirtualDub.video.SetCompression(0x78766964,0,10000,0);
+VirtualDub.video.SetCompData(512,"zAEAAAAAAAACAAAAAAk9AAAAgEABAAAAAAAAAAAAAAAAAAAAAAAAAJYAAAAyAAAA0EfIAQAAYAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAmpmZmZmZyT+amZmZmZnJPwAAAAAAAAAAAAAAAIACAADgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAZAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAFY6XGRpdngubG9nAGM6XHRlc3QuZGl2eABjOlxtdmluZm8uYmluAGM6XG5ld3JjLnR4dAA=");
+VirtualDub.video.filters.Clear();
+VirtualDub.audio.filters.Clear();
+VirtualDub.subset.Delete();</dubman:script>
+      <dubman:runWith value="0" />
+    </dubman:job>
+  </dubman:jobs>
+</dubman:template>
+
diff --git a/Windows Scripts/DubMan Templates/Convert DV to DivX 2 passes.djt b/Windows Scripts/DubMan Templates/Convert DV to DivX 2 passes.djt
new file mode 100755
index 0000000..471c1b5
--- /dev/null
+++ b/Windows Scripts/DubMan Templates/Convert DV to DivX 2 passes.djt	
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<dubman:template xmlns:dubman="http://dubman.sourceforge.net" name="" format="1.1" version="0.812">
+  <dubman:bulk>
+    <dubman:wildcard />
+  </dubman:bulk>
+  <dubman:jobs>
+    <dubman:job>
+      <dubman:name value="Convert DV to DivX 1st Pass" />
+      <dubman:input value="U:\MiniDV\*.avi" />
+      <dubman:output value="V:\DIVX-Videos\*.avi" />
+      <dubman:deleteInput value="false" />
+      <dubman:script>VirtualDub.audio.SetSource(1);
+VirtualDub.audio.SetMode(1);
+VirtualDub.audio.SetInterleave(1,500,1,0,0);
+VirtualDub.audio.SetClipMode(1,1);
+VirtualDub.audio.SetConversion(0,0,0,0,0);
+VirtualDub.audio.SetVolume();
+VirtualDub.audio.SetCompression(85,48000,2,0,16000,1,12,"AQACAAAAgAEBAHEF");
+VirtualDub.audio.EnableFilterGraph(0);
+VirtualDub.video.SetDepth(24,24);
+VirtualDub.video.SetMode(3);
+VirtualDub.video.SetFrameRate(0,1);
+VirtualDub.video.SetIVTC(0,0,-1,0);
+VirtualDub.video.SetRange(0,0);
+VirtualDub.video.SetCompression(0x78766964,0,10000,0);
+VirtualDub.video.SetCompData(512,"zAEAAAAAAAACAAAAAAk9AAAAgEABAAAAAAAAAAAAAAAAAAAAAAAAAJYAAAAyAAAA0EfIAQAAYAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAmpmZmZmZyT+amZmZmZnJPwAAAAAAAAAAAAAAAIACAADgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAZAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAFY6XGRpdngubG9nAGM6XHRlc3QuZGl2eABjOlxtdmluZm8uYmluAGM6XG5ld3JjLnR4dAA=");
+VirtualDub.video.filters.Clear();
+VirtualDub.audio.filters.Clear();
+VirtualDub.subset.Delete();</dubman:script>
+      <dubman:runWith value="0" />
+    </dubman:job>
+    <dubman:job>
+      <dubman:name value="Convert DV to DivX 2nd Pass" />
+      <dubman:input value="U:\MiniDV\*.avi" />
+      <dubman:output value="V:\DIVX-Videos\*.avi" />
+      <dubman:deleteInput value="false" />
+      <dubman:script>VirtualDub.audio.SetSource(1);
+VirtualDub.audio.SetMode(1);
+VirtualDub.audio.SetInterleave(1,500,1,0,0);
+VirtualDub.audio.SetClipMode(1,1);
+VirtualDub.audio.SetConversion(0,0,0,0,0);
+VirtualDub.audio.SetVolume();
+VirtualDub.audio.SetCompression(85,48000,2,0,16000,1,12,"AQACAAAAgAEBAHEF");
+VirtualDub.audio.EnableFilterGraph(0);
+VirtualDub.video.SetDepth(24,24);
+VirtualDub.video.SetMode(3);
+VirtualDub.video.SetFrameRate(0,1);
+VirtualDub.video.SetIVTC(0,0,-1,0);
+VirtualDub.video.SetRange(0,0);
+VirtualDub.video.SetCompression(0x78766964,0,10000,0);
+VirtualDub.video.SetCompData(512,"zAEAAAAAAAACAAAAAAk9AAAAgEABAAAAAAAAAAAAAAAAAAAAAAAAAJYAAAAyAAAA0EfIAQAAYAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAmpmZmZmZyT+amZmZmZnJPwAAAAAAAAAAAAAAAIACAADgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAZAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAFY6XGRpdngubG9nAGM6XHRlc3QuZGl2eABjOlxtdmluZm8uYmluAGM6XG5ld3JjLnR4dAA=");
+VirtualDub.video.filters.Clear();
+VirtualDub.audio.filters.Clear();
+VirtualDub.subset.Delete();</dubman:script>
+      <dubman:runWith value="0" />
+    </dubman:job>
+  </dubman:jobs>
+</dubman:template>
+
diff --git a/Windows Scripts/DubMan Templates/Convert DV to DivX 2nd pass HQ.djt b/Windows Scripts/DubMan Templates/Convert DV to DivX 2nd pass HQ.djt
new file mode 100755
index 0000000..fe89a1c
--- /dev/null
+++ b/Windows Scripts/DubMan Templates/Convert DV to DivX 2nd pass HQ.djt	
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<dubman:template xmlns:dubman="http://dubman.sourceforge.net" name="" format="1.1" version="0.812">
+  <dubman:bulk>
+    <dubman:wildcard />
+  </dubman:bulk>
+  <dubman:jobs>
+    <dubman:job>
+      <dubman:name value="Convert DV to DivX 1st Pass" />
+      <dubman:input value="V:\MiniDV\*.avi" />
+      <dubman:output value="V:\DIVX-Videos\*.avi" />
+      <dubman:deleteInput value="false" />
+      <dubman:script>VirtualDub.audio.SetSource(1);
+VirtualDub.audio.SetMode(1);
+VirtualDub.audio.SetInterleave(1,500,1,0,0);
+VirtualDub.audio.SetClipMode(1,1);
+VirtualDub.audio.SetConversion(0,0,0,0,0);
+VirtualDub.audio.SetVolume();
+VirtualDub.audio.SetCompression(85,48000,2,0,16000,1,12,"AQACAAAAgAEBAHEF");
+VirtualDub.audio.EnableFilterGraph(0);
+VirtualDub.video.SetDepth(24,24);
+VirtualDub.video.SetMode(3);
+VirtualDub.video.SetFrameRate(0,1);
+VirtualDub.video.SetIVTC(0,0,-1,0);
+VirtualDub.video.SetRange(0,0);
+VirtualDub.video.SetCompression(0x78766964,0,10000,0);
+VirtualDub.video.SetCompData(512,"zAEAAAAAAAACAAAAgI1bAAAAgEABAAAAAAAAAAAAAAAAAAAAAAAAAJYAAAAyAAAA0EfIAQAAYAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAmpmZmZmZyT+amZmZmZnJPwAAAAAAAAAAAAAAAIACAADgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAZAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAFY6XGRpdngubG9nAGM6XHRlc3QuZGl2eABjOlxtdmluZm8uYmluAGM6XG5ld3JjLnR4dAA=");
+VirtualDub.video.filters.Clear();
+VirtualDub.audio.filters.Clear();
+VirtualDub.subset.Delete();</dubman:script>
+      <dubman:runWith value="0" />
+    </dubman:job>
+    <dubman:job>
+      <dubman:name value="Convert DV to DivX 2nd Pass" />
+      <dubman:input value="V:\MiniDV\*.avi" />
+      <dubman:output value="V:\DIVX-Videos\*.avi" />
+      <dubman:deleteInput value="false" />
+      <dubman:script>VirtualDub.audio.SetSource(1);
+VirtualDub.audio.SetMode(1);
+VirtualDub.audio.SetInterleave(1,500,1,0,0);
+VirtualDub.audio.SetClipMode(1,1);
+VirtualDub.audio.SetConversion(0,0,0,0,0);
+VirtualDub.audio.SetVolume();
+VirtualDub.audio.SetCompression(85,48000,2,0,16000,1,12,"AQACAAAAgAEBAHEF");
+VirtualDub.audio.EnableFilterGraph(0);
+VirtualDub.video.SetDepth(24,24);
+VirtualDub.video.SetMode(3);
+VirtualDub.video.SetFrameRate(0,1);
+VirtualDub.video.SetIVTC(0,0,-1,0);
+VirtualDub.video.SetRange(0,0);
+VirtualDub.video.SetCompression(0x78766964,0,10000,0);
+VirtualDub.video.SetCompData(512,"zAEAAAAAAAADAAAAgI1bAAAAgEABAAAAAAAAAAAAAAAAAAAAAAAAAJYAAAAyAAAA0EfIAQAAYAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAmpmZmZmZyT+amZmZmZnJPwAAAAAAAAAAAAAAAIACAADgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAZAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAFY6XGRpdngubG9nAGM6XHRlc3QuZGl2eABjOlxtdmluZm8uYmluAGM6XG5ld3JjLnR4dAA=");
+VirtualDub.video.filters.Clear();
+VirtualDub.audio.filters.Clear();
+VirtualDub.subset.Delete();</dubman:script>
+      <dubman:runWith value="0" />
+    </dubman:job>
+  </dubman:jobs>
+</dubman:template>
+
diff --git a/Windows Scripts/DubMan Templates/Convert DV to DivX 2nd pass.djt b/Windows Scripts/DubMan Templates/Convert DV to DivX 2nd pass.djt
new file mode 100755
index 0000000..ea220fe
--- /dev/null
+++ b/Windows Scripts/DubMan Templates/Convert DV to DivX 2nd pass.djt	
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<dubman:template xmlns:dubman="http://dubman.sourceforge.net" name="" format="1.1" version="0.812">
+  <dubman:bulk>
+    <dubman:wildcard />
+  </dubman:bulk>
+  <dubman:jobs>
+    <dubman:job>
+      <dubman:name value="Convert DV to DivX 2nd Pass" />
+      <dubman:input value="U:\MiniDV\*.avi" />
+      <dubman:output value="V:\DIVX-Videos\*.avi" />
+      <dubman:deleteInput value="false" />
+      <dubman:script>VirtualDub.audio.SetSource(1);
+VirtualDub.audio.SetMode(1);
+VirtualDub.audio.SetInterleave(1,500,1,0,0);
+VirtualDub.audio.SetClipMode(1,1);
+VirtualDub.audio.SetConversion(0,0,0,0,0);
+VirtualDub.audio.SetVolume();
+VirtualDub.audio.SetCompression(85,48000,2,0,16000,1,12,"AQACAAAAgAEBAHEF");
+VirtualDub.audio.EnableFilterGraph(0);
+VirtualDub.video.SetDepth(24,24);
+VirtualDub.video.SetMode(3);
+VirtualDub.video.SetFrameRate(0,1);
+VirtualDub.video.SetIVTC(0,0,-1,0);
+VirtualDub.video.SetRange(0,0);
+VirtualDub.video.SetCompression(0x78766964,0,10000,0);
+VirtualDub.video.SetCompData(364,"OAEAAAAAAAADAAAAwMYtAAAAgEABAAAAAAAAAAAAAAAAAAAAlgAAADIAAAAgEWoAAAAwAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAACamZmZmZnJP5qZmZmZmck/AgAAAAAAAAAAAAAAgAIAAOABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAABkAAAAAAAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAACAAAA/////wEAAAAAAAAAAAAAAAAAAAACAAAAYzpcZGl2eC5sb2cAYzpcdGVzdC5kaXZ4AGM6XG12aW5mby5iaW4AYzpcbmV3cmMudHh0AA==");
+VirtualDub.video.filters.Clear();
+VirtualDub.audio.filters.Clear();
+VirtualDub.subset.Delete();</dubman:script>
+      <dubman:runWith value="0" />
+    </dubman:job>
+  </dubman:jobs>
+</dubman:template>
+
diff --git a/Windows Scripts/DubMan Templates/Convert DV to DivX.bat b/Windows Scripts/DubMan Templates/Convert DV to DivX.bat
new file mode 100755
index 0000000..6067262
--- /dev/null
+++ b/Windows Scripts/DubMan Templates/Convert DV to DivX.bat	
@@ -0,0 +1 @@
+"C:\Program Files\Java\j2re1.4.0\bin\javaw.exe" -jar "C:\Program Files\DubMan\DubMan.jar" "V:\Videos\DubMan Templates\Convert DV to DivX.djt" /r
diff --git a/Windows Scripts/DubMan Templates/Convert DV to DivX.djt b/Windows Scripts/DubMan Templates/Convert DV to DivX.djt
new file mode 100755
index 0000000..a4b18eb
--- /dev/null
+++ b/Windows Scripts/DubMan Templates/Convert DV to DivX.djt	
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<dubman:template xmlns:dubman="http://dubman.sourceforge.net" name="" format="1.1" version="0.812">
+  <dubman:bulk>
+    <dubman:wildcard />
+  </dubman:bulk>
+  <dubman:jobs>
+    <dubman:job>
+      <dubman:name value="Convert DV to DivX" />
+      <dubman:input value="U:\MiniDV\*.avi" />
+      <dubman:output value="V:\DIVX-Videos\*.avi" />
+      <dubman:deleteInput value="false" />
+      <dubman:script>VirtualDub.audio.SetSource(1);
+VirtualDub.audio.SetMode(1);
+VirtualDub.audio.SetInterleave(1,500,1,0,0);
+VirtualDub.audio.SetClipMode(1,1);
+VirtualDub.audio.SetConversion(0,0,0,0,0);
+VirtualDub.audio.SetVolume();
+VirtualDub.audio.SetCompression(85,48000,2,0,16000,1,12,"AQACAAAAgAEBAHEF");
+VirtualDub.audio.EnableFilterGraph(0);
+VirtualDub.video.SetDepth(24,24);
+VirtualDub.video.SetMode(3);
+VirtualDub.video.SetFrameRate(0,1);
+VirtualDub.video.SetIVTC(0,0,-1,0);
+VirtualDub.video.SetRange(0,0);
+VirtualDub.video.SetCompression(0x78766964,0,10000,0);
+VirtualDub.video.SetCompData(364,"OAEAAAAAAAAAAAAAwMYtAAAAgEABAAAAAAAAAAAAAAAAAAAAlgAAADIAAAAgEWoAAAAwAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAACamZmZmZnJP5qZmZmZmck/AgAAAAAAAAAAAAAAgAIAAOABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAABkAAAAAAAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAACAAAA/////wEAAAAAAAAAAAAAAAAAAAACAAAAYzpcZGl2eC5sb2cAYzpcdGVzdC5kaXZ4AGM6XG12aW5mby5iaW4AYzpcbmV3cmMudHh0AA==");
+VirtualDub.video.filters.Clear();
+VirtualDub.audio.filters.Clear();
+VirtualDub.subset.Delete();</dubman:script>
+      <dubman:runWith value="0" />
+    </dubman:job>
+  </dubman:jobs>
+</dubman:template>
+
diff --git a/Windows Scripts/DubMan Templates/Single DV AVI to DIVX.djt b/Windows Scripts/DubMan Templates/Single DV AVI to DIVX.djt
new file mode 100755
index 0000000..5b1be6e
--- /dev/null
+++ b/Windows Scripts/DubMan Templates/Single DV AVI to DIVX.djt	
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<dubman:template xmlns:dubman="http://dubman.sourceforge.net" format="1.0" version="0.711">
+  <dubman:bulk />
+  <dubman:jobs>
+    <dubman:job>
+      <dubman:name value="Test" />
+      <dubman:input value="V:\MiniDV\Hospital Entrance.avi" />
+      <dubman:output value="V:\Videos\VirtualDub AVIs\Test.avi" />
+      <dubman:deleteInput value="false" />
+      <dubman:script>VirtualDub.audio.SetSource(1);
+VirtualDub.audio.SetMode(1);
+VirtualDub.audio.SetInterleave(1,500,1,0,0);
+VirtualDub.audio.SetClipMode(1,1);
+VirtualDub.audio.SetConversion(0,0,0,0,0);
+VirtualDub.audio.SetVolume();
+VirtualDub.audio.SetCompression(85,48000,2,0,16000,1,12,"AQACAAAAgAEBAHEF");
+VirtualDub.audio.EnableFilterGraph(0);
+VirtualDub.video.SetDepth(24,24);
+VirtualDub.video.SetMode(3);
+VirtualDub.video.SetFrameRate(0,1);
+VirtualDub.video.SetIVTC(0,0,-1,0);
+VirtualDub.video.SetRange(0,0);
+VirtualDub.video.SetCompression(0x78766964,0,10000,0);
+VirtualDub.video.SetCompData(319,"GAEAAGCuCgDQBwAACgAAABQAAAAsAQAADAAAAAIAAAAFAAAAAAAAACgAAAAAAAAAAAAAABQAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAyAAAAAAAAAAAAAAAAAACgmZnJPwAAAKCZmck/QAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAIACAADgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAD/////AQAAAGM6XGRpdngubG9nAGM6XHRlc3QuZGl2eABjOlxtdmluZm8uYmluAA==");
+VirtualDub.video.filters.Clear();
+VirtualDub.audio.filters.Clear();
+VirtualDub.subset.Delete();
+</dubman:script>
+      <dubman:runWith value="0" />
+    </dubman:job>
+  </dubman:jobs>
+</dubman:template>
+
diff --git a/Windows Scripts/DubMan Templates/VirtualDub Audio Compression.vcf b/Windows Scripts/DubMan Templates/VirtualDub Audio Compression.vcf
new file mode 100755
index 0000000..970ee9d
--- /dev/null
+++ b/Windows Scripts/DubMan Templates/VirtualDub Audio Compression.vcf	
@@ -0,0 +1,17 @@
+VirtualDub.audio.SetSource(1);
+VirtualDub.audio.SetMode(1);
+VirtualDub.audio.SetInterleave(1,500,1,0,0);
+VirtualDub.audio.SetClipMode(1,1);
+VirtualDub.audio.SetConversion(0,0,0,0,0);
+VirtualDub.audio.SetVolume();
+VirtualDub.audio.SetCompression(85,48000,2,0,16000,1,12,"AQAAAAAAAQAAAOgD");
+VirtualDub.audio.EnableFilterGraph(0);
+VirtualDub.video.SetDepth(24,24);
+VirtualDub.video.SetMode(0);
+VirtualDub.video.SetFrameRate(0,1);
+VirtualDub.video.SetIVTC(0,0,-1,0);
+VirtualDub.video.SetRange(0,0);
+VirtualDub.video.SetCompression();
+VirtualDub.video.filters.Clear();
+VirtualDub.audio.filters.Clear();
+VirtualDub.subset.Delete();
diff --git a/Windows Scripts/DubMan Templates/VirtualDub DV to DIVX compression - pass 1 HQ.vcf b/Windows Scripts/DubMan Templates/VirtualDub DV to DIVX compression - pass 1 HQ.vcf
new file mode 100755
index 0000000..350f645
--- /dev/null
+++ b/Windows Scripts/DubMan Templates/VirtualDub DV to DIVX compression - pass 1 HQ.vcf	
@@ -0,0 +1,18 @@
+VirtualDub.audio.SetSource(1);
+VirtualDub.audio.SetMode(1);
+VirtualDub.audio.SetInterleave(1,500,1,0,0);
+VirtualDub.audio.SetClipMode(1,1);
+VirtualDub.audio.SetConversion(0,0,0,0,0);
+VirtualDub.audio.SetVolume();
+VirtualDub.audio.SetCompression(85,48000,2,0,16000,1,12,"AQACAAAAgAEBAHEF");
+VirtualDub.audio.EnableFilterGraph(0);
+VirtualDub.video.SetDepth(24,24);
+VirtualDub.video.SetMode(3);
+VirtualDub.video.SetFrameRate(0,1);
+VirtualDub.video.SetIVTC(0,0,-1,0);
+VirtualDub.video.SetRange(0,0);
+VirtualDub.video.SetCompression(0x78766964,0,10000,0);
+VirtualDub.video.SetCompData(512,"zAEAAAAAAAACAAAAgI1bAAAAgEABAAAAAAAAAAAAAAAAAAAAAAAAAJYAAAAyAAAA0EfIAQAAYAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAmpmZmZmZyT+amZmZmZnJPwAAAAAAAAAAAAAAAIACAADgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAZAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAFY6XGRpdngubG9nAGM6XHRlc3QuZGl2eABjOlxtdmluZm8uYmluAGM6XG5ld3JjLnR4dAA=");
+VirtualDub.video.filters.Clear();
+VirtualDub.audio.filters.Clear();
+VirtualDub.subset.Delete();
diff --git a/Windows Scripts/DubMan Templates/VirtualDub DV to DIVX compression - pass 1.vcf b/Windows Scripts/DubMan Templates/VirtualDub DV to DIVX compression - pass 1.vcf
new file mode 100755
index 0000000..111719b
--- /dev/null
+++ b/Windows Scripts/DubMan Templates/VirtualDub DV to DIVX compression - pass 1.vcf	
@@ -0,0 +1,18 @@
+VirtualDub.audio.SetSource(1);
+VirtualDub.audio.SetMode(1);
+VirtualDub.audio.SetInterleave(1,500,1,0,0);
+VirtualDub.audio.SetClipMode(1,1);
+VirtualDub.audio.SetConversion(0,0,0,0,0);
+VirtualDub.audio.SetVolume();
+VirtualDub.audio.SetCompression(85,48000,2,0,16000,1,12,"AQACAAAAgAEBAHEF");
+VirtualDub.audio.EnableFilterGraph(0);
+VirtualDub.video.SetDepth(24,24);
+VirtualDub.video.SetMode(3);
+VirtualDub.video.SetFrameRate(0,1);
+VirtualDub.video.SetIVTC(0,0,-1,0);
+VirtualDub.video.SetRange(0,0);
+VirtualDub.video.SetCompression(0x78766964,0,10000,0);
+VirtualDub.video.SetCompData(512,"zAEAAAAAAAACAAAAAAk9AAAAgEABAAAAAAAAAAAAAAAAAAAAAAAAAJYAAAAyAAAA0EfIAQAAYAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAmpmZmZmZyT+amZmZmZnJPwAAAAAAAAAAAAAAAIACAADgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAZAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAFY6XGRpdngubG9nAGM6XHRlc3QuZGl2eABjOlxtdmluZm8uYmluAGM6XG5ld3JjLnR4dAA=");
+VirtualDub.video.filters.Clear();
+VirtualDub.audio.filters.Clear();
+VirtualDub.subset.Delete();
diff --git a/Windows Scripts/DubMan Templates/VirtualDub DV to DIVX compression - pass 2 HQ.vcf b/Windows Scripts/DubMan Templates/VirtualDub DV to DIVX compression - pass 2 HQ.vcf
new file mode 100755
index 0000000..de7b97a
--- /dev/null
+++ b/Windows Scripts/DubMan Templates/VirtualDub DV to DIVX compression - pass 2 HQ.vcf	
@@ -0,0 +1,18 @@
+VirtualDub.audio.SetSource(1);
+VirtualDub.audio.SetMode(1);
+VirtualDub.audio.SetInterleave(1,500,1,0,0);
+VirtualDub.audio.SetClipMode(1,1);
+VirtualDub.audio.SetConversion(0,0,0,0,0);
+VirtualDub.audio.SetVolume();
+VirtualDub.audio.SetCompression(85,48000,2,0,16000,1,12,"AQACAAAAgAEBAHEF");
+VirtualDub.audio.EnableFilterGraph(0);
+VirtualDub.video.SetDepth(24,24);
+VirtualDub.video.SetMode(3);
+VirtualDub.video.SetFrameRate(0,1);
+VirtualDub.video.SetIVTC(0,0,-1,0);
+VirtualDub.video.SetRange(0,0);
+VirtualDub.video.SetCompression(0x78766964,0,10000,0);
+VirtualDub.video.SetCompData(512,"zAEAAAAAAAADAAAAgI1bAAAAgEABAAAAAAAAAAAAAAAAAAAAAAAAAJYAAAAyAAAA0EfIAQAAYAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAmpmZmZmZyT+amZmZmZnJPwAAAAAAAAAAAAAAAIACAADgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAZAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAFY6XGRpdngubG9nAGM6XHRlc3QuZGl2eABjOlxtdmluZm8uYmluAGM6XG5ld3JjLnR4dAA=");
+VirtualDub.video.filters.Clear();
+VirtualDub.audio.filters.Clear();
+VirtualDub.subset.Delete();
diff --git a/Windows Scripts/DubMan Templates/VirtualDub DV to DIVX compression - pass 2.vcf b/Windows Scripts/DubMan Templates/VirtualDub DV to DIVX compression - pass 2.vcf
new file mode 100755
index 0000000..111719b
--- /dev/null
+++ b/Windows Scripts/DubMan Templates/VirtualDub DV to DIVX compression - pass 2.vcf	
@@ -0,0 +1,18 @@
+VirtualDub.audio.SetSource(1);
+VirtualDub.audio.SetMode(1);
+VirtualDub.audio.SetInterleave(1,500,1,0,0);
+VirtualDub.audio.SetClipMode(1,1);
+VirtualDub.audio.SetConversion(0,0,0,0,0);
+VirtualDub.audio.SetVolume();
+VirtualDub.audio.SetCompression(85,48000,2,0,16000,1,12,"AQACAAAAgAEBAHEF");
+VirtualDub.audio.EnableFilterGraph(0);
+VirtualDub.video.SetDepth(24,24);
+VirtualDub.video.SetMode(3);
+VirtualDub.video.SetFrameRate(0,1);
+VirtualDub.video.SetIVTC(0,0,-1,0);
+VirtualDub.video.SetRange(0,0);
+VirtualDub.video.SetCompression(0x78766964,0,10000,0);
+VirtualDub.video.SetCompData(512,"zAEAAAAAAAACAAAAAAk9AAAAgEABAAAAAAAAAAAAAAAAAAAAAAAAAJYAAAAyAAAA0EfIAQAAYAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAmpmZmZmZyT+amZmZmZnJPwAAAAAAAAAAAAAAAIACAADgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAZAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAFY6XGRpdngubG9nAGM6XHRlc3QuZGl2eABjOlxtdmluZm8uYmluAGM6XG5ld3JjLnR4dAA=");
+VirtualDub.video.filters.Clear();
+VirtualDub.audio.filters.Clear();
+VirtualDub.subset.Delete();
diff --git a/Windows Scripts/DubMan Templates/VirtualDub DV to DIVX compression.vcf b/Windows Scripts/DubMan Templates/VirtualDub DV to DIVX compression.vcf
new file mode 100755
index 0000000..a0c58f2
--- /dev/null
+++ b/Windows Scripts/DubMan Templates/VirtualDub DV to DIVX compression.vcf	
@@ -0,0 +1,18 @@
+VirtualDub.audio.SetSource(1);
+VirtualDub.audio.SetMode(1);
+VirtualDub.audio.SetInterleave(1,500,1,0,0);
+VirtualDub.audio.SetClipMode(1,1);
+VirtualDub.audio.SetConversion(0,0,0,0,0);
+VirtualDub.audio.SetVolume();
+VirtualDub.audio.SetCompression(85,48000,2,0,16000,1,12,"AQACAAAAgAEBAHEF");
+VirtualDub.audio.EnableFilterGraph(0);
+VirtualDub.video.SetDepth(24,24);
+VirtualDub.video.SetMode(3);
+VirtualDub.video.SetFrameRate(0,1);
+VirtualDub.video.SetIVTC(0,0,-1,0);
+VirtualDub.video.SetRange(0,0);
+VirtualDub.video.SetCompression(0x78766964,0,10000,0);
+VirtualDub.video.SetCompData(319,"GAEAAGCuCgDQBwAACgAAABQAAAAsAQAADAAAAAIAAAAFAAAAAAAAACgAAAAAAAAAAAAAABQAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAyAAAAAAAAAAAAAAAAAACgmZnJPwAAAKCZmck/QAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAIACAADgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAD/////AQAAAGM6XGRpdngubG9nAGM6XHRlc3QuZGl2eABjOlxtdmluZm8uYmluAA==");
+VirtualDub.video.filters.Clear();
+VirtualDub.audio.filters.Clear();
+VirtualDub.subset.Delete();
diff --git a/Windows Scripts/TMPG Settings/DIVX to DVD .mcf b/Windows Scripts/TMPG Settings/DIVX to DVD .mcf
new file mode 100755
index 0000000..0a2b7ef
--- /dev/null
+++ b/Windows Scripts/TMPG Settings/DIVX to DVD .mcf	
@@ -0,0 +1,141 @@
+object TMPEGConfigFile
+  MPEG.Text = ''
+  MPEG.WizardCategoryName = ''
+  MPEG.WizardSubFormatName = ''
+  MPEG.WizardCaption = ''
+  MPEG.WizardDescription = ''
+  MPEG.WizardTargetMedia = MPEGConfig_TargetMediaType_Unknown
+  MPEG.WizardAutoCalcVideoBitRate = False
+  MPEG.WizardAutoChooseList.EnableVideoSize = False
+  MPEG.WizardAutoChooseList.VideoSize = <
+    item
+      MinVideoBitRate = 2000000
+      Width = 352
+      Height = 480
+      VideoEncodeMode = MPEGVideoEncoder_VideoEncodeMode_Interlace
+      FrameRate = 4
+      AspectRatio = 2
+    end
+    item
+      MinVideoBitRate = 4000000
+      Width = 720
+      Height = 480
+      VideoEncodeMode = MPEGVideoEncoder_VideoEncodeMode_Interlace
+      FrameRate = 4
+      AspectRatio = 2
+    end>
+  MPEG.WizardAutoChooseList.EnableVideoGOP = False
+  MPEG.WizardAutoChooseList.VideoGOP = <>
+  MPEG.OutputStreamType = MPEG_OutputStreamType_System_VideoAudio
+  MPEG.OutputStreamType_ReadOnly = False
+  MPEG.Video.StreamType = MPEGVideoEncoder_StreamType_MPEG2
+  MPEG.Video.StreamType_ReadOnly = False
+  MPEG.Video.Width = 720
+  MPEG.Video.Width_ReadOnly = False
+  MPEG.Video.Height = 480
+  MPEG.Video.Height_ReadOnly = False
+  MPEG.Video.YUVFormat = 1
+  MPEG.Video.YUVFormat_ReadOnly = False
+  MPEG.Video.DC_prec = 2
+  MPEG.Video.DC_prec_ReadOnly = False
+  MPEG.Video.VideoEncodeMode = MPEGVideoEncoder_VideoEncodeMode_Progressive
+  MPEG.Video.VideoEncodeMode_ReadOnly = False
+  MPEG.Video.FrameRate = 4
+  MPEG.Video.FrameRate_ReadOnly = False
+  MPEG.Video.AspectRatio = 2
+  MPEG.Video.AspectRatio_ReadOnly = False
+  MPEG.Video.RateControlMode = MPEGVideoEncoder_RateControlMode_VBR_Auto
+  MPEG.Video.RateControlMode_ReadOnly = False
+  MPEG.Video.MaxBitRate = 0
+  MPEG.Video.MaxBitRate_ReadOnly = False
+  MPEG.Video.MinBitRate = 0
+  MPEG.Video.MinBitRate_ReadOnly = False
+  MPEG.Video.MinAvgBitRate = 0
+  MPEG.Video.MinAvgBitRate_ReadOnly = False
+  MPEG.Video.CBR_BitRate = 7000000
+  MPEG.Video.VBR_MultipassVBRAlgorithm = MPEGVideoEncoder_MultipassVBRAlgorithm_2PASS
+  MPEG.Video.VBR_AvgBitRate = 7000000
+  MPEG.Video.VBR_MaxBitRate = 8000000
+  MPEG.Video.VBR_MinBitRate = 2000000
+  MPEG.Video.VBR_MaxPassCount = 0
+  MPEG.Video.VBR_Quality_P = 0
+  MPEG.Video.VBR_Quality_B = 20
+  MPEG.Video.VBR_EnablePadding = False
+  MPEG.Video.MVBR_MaxBitRate = 8000000
+  MPEG.Video.MVBR_MinBitRate = 2000000
+  MPEG.Video.MVBR_Quality_P = 0
+  MPEG.Video.MVBR_Quality_B = 20
+  MPEG.Video.MVBR_EnablePadding = False
+  MPEG.Video.AVBR_Quality = 100
+  MPEG.Video.AVBR_MaxBitRate = 6000000
+  MPEG.Video.AVBR_MinBitRate = 0
+  MPEG.Video.AVBR_EnablePadding = False
+  MPEG.Video.CQ_Quality = 65
+  MPEG.Video.CQ_Quality_P = 0
+  MPEG.Video.CQ_Quality_B = 20
+  MPEG.Video.CQ_MaxBitRate = 8000000
+  MPEG.Video.CQ_MinBitRate = 2000000
+  MPEG.Video.CQ_EnablePadding = False
+  MPEG.Video.VBVBufferSize = 229376
+  MPEG.Video.VBVBufferSize_ReadOnly = False
+  MPEG.Video.GOP_SeqHeaderInterval = 1
+  MPEG.Video.GOP_SeqHeaderInterval_ReadOnly = False
+  MPEG.Video.GOP_I_FrameCount = 1
+  MPEG.Video.GOP_I_FrameCount_ReadOnly = False
+  MPEG.Video.GOP_P_FrameCount = 4
+  MPEG.Video.GOP_P_FrameCount_ReadOnly = False
+  MPEG.Video.GOP_B_FrameCount = 1
+  MPEG.Video.GOP_B_FrameCount_ReadOnly = False
+  MPEG.Video.GOP_BitStreamForEdit = False
+  MPEG.Video.GOP_BitStreamForEdit_ReadOnly = False
+  MPEG.Video.GOP_MaxFrameCount = 18
+  MPEG.Video.GOP_MaxFrameCount_ReadOnly = False
+  MPEG.Video.QuantizeMatrix_Intra_ReadOnly = False
+  MPEG.Video.QuantizeMatrix_NonIntra_ReadOnly = False
+  MPEG.Video.Profile = 4
+  MPEG.Video.Profile_ReadOnly = False
+  MPEG.Video.Level = 8
+  MPEG.Video.Level_ReadOnly = False
+  MPEG.Video.VideoFormat = 2
+  MPEG.Video.VideoFormat_ReadOnly = False
+  MPEG.Video.DisplayWidth = 0
+  MPEG.Video.DisplayWidth_ReadOnly = False
+  MPEG.Video.DisplayHeight = 0
+  MPEG.Video.DisplayHeight_ReadOnly = False
+  MPEG.Video.MotionSearchSpeed = MPEGVideoEncoder_MotionSearchSpeed_Slow
+  MPEG.Video.MotionSearch_AlwaysHalfPel = False
+  MPEG.Video.UseFloatDCT = False
+  MPEG.Video.QuantizeMode = False
+  MPEG.Video.QuantizeModeVal_Intra = 35
+  MPEG.Video.QuantizeModeVal_NonIntra = 35
+  MPEG.Video.YUVBasicYCbCr = False
+  MPEG.Video.QuantizeMatrix_Intra = {
+    081013161A1B1D22101016181B1D222513161A1B1D22222616161A1B1D222528
+    161A1B1D202328301A1B1D202328303A1A1B1D22262E38451B1D23262E384553}
+  MPEG.Video.QuantizeMatrix_NonIntra = {
+    1011121314151617111213141516171812131415161718191314151617181A1B
+    14151617191A1B1C151617181A1B1C1E1617181A1B1C1E1F1718191B1C1E1F21}
+  MPEG.Audio.StreamType = MPEGAudioEncoder_StreamType_MPEG1_Layer2
+  MPEG.Audio.StreamType_ReadOnly = False
+  MPEG.Audio.SamplingFrequency = 48000
+  MPEG.Audio.SamplingFrequency_ReadOnly = False
+  MPEG.Audio.ChannelMode = 0
+  MPEG.Audio.ChannelMode_ReadOnly = False
+  MPEG.Audio.CantUseMono = False
+  MPEG.Audio.BitRate = 256000
+  MPEG.Audio.BitRate_ReadOnly = False
+  MPEG.Audio.CalcCRC = False
+  MPEG.Audio.CalcCRC_ReadOnly = False
+  MPEG.Audio.OriginalFlag = False
+  MPEG.Audio.OriginalFlag_ReadOnly = False
+  MPEG.Audio.CopyrightFlag = False
+  MPEG.Audio.CopyrightFlag_ReadOnly = False
+  MPEG.Audio.PrivateFlag = False
+  MPEG.Audio.PrivateFlag_ReadOnly = False
+  MPEG.Audio.EmphasisType = 0
+  MPEG.Audio.EmphasisType_ReadOnly = False
+  MPEG.System.StreamType = MPEGSystemEncoder_StreamType_MPEG2_Program
+  MPEG.System.StreamType_ReadOnly = False
+  MPEG.System.EnableCommentText = False
+  MPEG.System.CommentText = ''
+end
diff --git a/Windows Scripts/TMPG Settings/DV to DVD 2pass VBR.mcf b/Windows Scripts/TMPG Settings/DV to DVD 2pass VBR.mcf
new file mode 100755
index 0000000..a540cce
--- /dev/null
+++ b/Windows Scripts/TMPG Settings/DV to DVD 2pass VBR.mcf	
@@ -0,0 +1,125 @@
+object TMPEGConfigFile
+  MPEG.Text = ''
+  MPEG.WizardCategoryName = ''
+  MPEG.WizardSubFormatName = ''
+  MPEG.WizardCaption = ''
+  MPEG.WizardDescription = ''
+  MPEG.WizardTargetMedia = MPEGConfig_TargetMediaType_Unknown
+  MPEG.WizardAutoCalcVideoBitRate = False
+  MPEG.WizardAutoChooseList.EnableVideoSize = False
+  MPEG.WizardAutoChooseList.VideoSize = <>
+  MPEG.WizardAutoChooseList.EnableVideoGOP = False
+  MPEG.WizardAutoChooseList.VideoGOP = <>
+  MPEG.OutputStreamType = MPEG_OutputStreamType_VideoAudio
+  MPEG.OutputStreamType_ReadOnly = False
+  MPEG.Video.StreamType = MPEGVideoEncoder_StreamType_MPEG2
+  MPEG.Video.StreamType_ReadOnly = False
+  MPEG.Video.Width = 720
+  MPEG.Video.Width_ReadOnly = False
+  MPEG.Video.Height = 480
+  MPEG.Video.Height_ReadOnly = False
+  MPEG.Video.YUVFormat = 1
+  MPEG.Video.YUVFormat_ReadOnly = False
+  MPEG.Video.DC_prec = 2
+  MPEG.Video.DC_prec_ReadOnly = False
+  MPEG.Video.VideoEncodeMode = MPEGVideoEncoder_VideoEncodeMode_Interlace
+  MPEG.Video.VideoEncodeMode_ReadOnly = False
+  MPEG.Video.FrameRate = 4
+  MPEG.Video.FrameRate_ReadOnly = False
+  MPEG.Video.AspectRatio = 2
+  MPEG.Video.AspectRatio_ReadOnly = False
+  MPEG.Video.RateControlMode = MPEGVideoEncoder_RateControlMode_VBR_2PASS
+  MPEG.Video.RateControlMode_ReadOnly = False
+  MPEG.Video.MaxBitRate = 0
+  MPEG.Video.MaxBitRate_ReadOnly = False
+  MPEG.Video.MinBitRate = 0
+  MPEG.Video.MinBitRate_ReadOnly = False
+  MPEG.Video.MinAvgBitRate = 0
+  MPEG.Video.MinAvgBitRate_ReadOnly = False
+  MPEG.Video.CBR_BitRate = 7000000
+  MPEG.Video.VBR_MultipassVBRAlgorithm = MPEGVideoEncoder_MultipassVBRAlgorithm_2PASS
+  MPEG.Video.VBR_AvgBitRate = 3000000
+  MPEG.Video.VBR_MaxBitRate = 4500000
+  MPEG.Video.VBR_MinBitRate = 2000000
+  MPEG.Video.VBR_MaxPassCount = 0
+  MPEG.Video.VBR_Quality_P = 0
+  MPEG.Video.VBR_Quality_B = 20
+  MPEG.Video.VBR_EnablePadding = False
+  MPEG.Video.MVBR_MaxBitRate = 8000000
+  MPEG.Video.MVBR_MinBitRate = 2000000
+  MPEG.Video.MVBR_Quality_P = 0
+  MPEG.Video.MVBR_Quality_B = 20
+  MPEG.Video.MVBR_EnablePadding = False
+  MPEG.Video.AVBR_Quality = 95
+  MPEG.Video.AVBR_MaxBitRate = 4500000
+  MPEG.Video.AVBR_MinBitRate = 2000000
+  MPEG.Video.AVBR_EnablePadding = False
+  MPEG.Video.CQ_Quality = 65
+  MPEG.Video.CQ_Quality_P = 0
+  MPEG.Video.CQ_Quality_B = 20
+  MPEG.Video.CQ_MaxBitRate = 8000000
+  MPEG.Video.CQ_MinBitRate = 2000000
+  MPEG.Video.CQ_EnablePadding = False
+  MPEG.Video.VBVBufferSize = 229376
+  MPEG.Video.VBVBufferSize_ReadOnly = False
+  MPEG.Video.GOP_SeqHeaderInterval = 1
+  MPEG.Video.GOP_SeqHeaderInterval_ReadOnly = False
+  MPEG.Video.GOP_I_FrameCount = 1
+  MPEG.Video.GOP_I_FrameCount_ReadOnly = False
+  MPEG.Video.GOP_P_FrameCount = 5
+  MPEG.Video.GOP_P_FrameCount_ReadOnly = False
+  MPEG.Video.GOP_B_FrameCount = 2
+  MPEG.Video.GOP_B_FrameCount_ReadOnly = False
+  MPEG.Video.GOP_BitStreamForEdit = False
+  MPEG.Video.GOP_BitStreamForEdit_ReadOnly = False
+  MPEG.Video.GOP_MaxFrameCount = 18
+  MPEG.Video.GOP_MaxFrameCount_ReadOnly = False
+  MPEG.Video.QuantizeMatrix_Intra_ReadOnly = False
+  MPEG.Video.QuantizeMatrix_NonIntra_ReadOnly = False
+  MPEG.Video.Profile = 4
+  MPEG.Video.Profile_ReadOnly = False
+  MPEG.Video.Level = 8
+  MPEG.Video.Level_ReadOnly = False
+  MPEG.Video.VideoFormat = 2
+  MPEG.Video.VideoFormat_ReadOnly = False
+  MPEG.Video.DisplayWidth = 0
+  MPEG.Video.DisplayWidth_ReadOnly = False
+  MPEG.Video.DisplayHeight = 0
+  MPEG.Video.DisplayHeight_ReadOnly = False
+  MPEG.Video.MotionSearchSpeed = MPEGVideoEncoder_MotionSearchSpeed_Slow
+  MPEG.Video.MotionSearch_AlwaysHalfPel = False
+  MPEG.Video.UseFloatDCT = False
+  MPEG.Video.QuantizeMode = False
+  MPEG.Video.QuantizeModeVal_Intra = 35
+  MPEG.Video.QuantizeModeVal_NonIntra = 35
+  MPEG.Video.YUVBasicYCbCr = False
+  MPEG.Video.QuantizeMatrix_Intra = {
+    081013161A1B1D22101016181B1D222513161A1B1D22222616161A1B1D222528
+    161A1B1D202328301A1B1D202328303A1A1B1D22262E38451B1D23262E384553}
+  MPEG.Video.QuantizeMatrix_NonIntra = {
+    1011121314151617111213141516171812131415161718191314151617181A1B
+    14151617191A1B1C151617181A1B1C1E1617181A1B1C1E1F1718191B1C1E1F21}
+  MPEG.Audio.StreamType = MPEGAudioEncoder_StreamType_MPEG1_Layer2
+  MPEG.Audio.StreamType_ReadOnly = False
+  MPEG.Audio.SamplingFrequency = 48000
+  MPEG.Audio.SamplingFrequency_ReadOnly = False
+  MPEG.Audio.ChannelMode = 0
+  MPEG.Audio.ChannelMode_ReadOnly = False
+  MPEG.Audio.CantUseMono = False
+  MPEG.Audio.BitRate = 256000
+  MPEG.Audio.BitRate_ReadOnly = False
+  MPEG.Audio.CalcCRC = False
+  MPEG.Audio.CalcCRC_ReadOnly = False
+  MPEG.Audio.OriginalFlag = False
+  MPEG.Audio.OriginalFlag_ReadOnly = False
+  MPEG.Audio.CopyrightFlag = False
+  MPEG.Audio.CopyrightFlag_ReadOnly = False
+  MPEG.Audio.PrivateFlag = False
+  MPEG.Audio.PrivateFlag_ReadOnly = False
+  MPEG.Audio.EmphasisType = 0
+  MPEG.Audio.EmphasisType_ReadOnly = False
+  MPEG.System.StreamType = MPEGSystemEncoder_StreamType_MPEG2_Program
+  MPEG.System.StreamType_ReadOnly = False
+  MPEG.System.EnableCommentText = False
+  MPEG.System.CommentText = ''
+end
diff --git a/Windows Scripts/TMPG Settings/DV to DVD CBR.mcf b/Windows Scripts/TMPG Settings/DV to DVD CBR.mcf
new file mode 100755
index 0000000..84dd0c3
--- /dev/null
+++ b/Windows Scripts/TMPG Settings/DV to DVD CBR.mcf	
@@ -0,0 +1,125 @@
+object TMPEGConfigFile
+  MPEG.Text = ''
+  MPEG.WizardCategoryName = ''
+  MPEG.WizardSubFormatName = ''
+  MPEG.WizardCaption = ''
+  MPEG.WizardDescription = ''
+  MPEG.WizardTargetMedia = MPEGConfig_TargetMediaType_Unknown
+  MPEG.WizardAutoCalcVideoBitRate = False
+  MPEG.WizardAutoChooseList.EnableVideoSize = False
+  MPEG.WizardAutoChooseList.VideoSize = <>
+  MPEG.WizardAutoChooseList.EnableVideoGOP = False
+  MPEG.WizardAutoChooseList.VideoGOP = <>
+  MPEG.OutputStreamType = MPEG_OutputStreamType_VideoAudio
+  MPEG.OutputStreamType_ReadOnly = False
+  MPEG.Video.StreamType = MPEGVideoEncoder_StreamType_MPEG2
+  MPEG.Video.StreamType_ReadOnly = False
+  MPEG.Video.Width = 720
+  MPEG.Video.Width_ReadOnly = False
+  MPEG.Video.Height = 480
+  MPEG.Video.Height_ReadOnly = False
+  MPEG.Video.YUVFormat = 1
+  MPEG.Video.YUVFormat_ReadOnly = False
+  MPEG.Video.DC_prec = 2
+  MPEG.Video.DC_prec_ReadOnly = False
+  MPEG.Video.VideoEncodeMode = MPEGVideoEncoder_VideoEncodeMode_Interlace
+  MPEG.Video.VideoEncodeMode_ReadOnly = False
+  MPEG.Video.FrameRate = 4
+  MPEG.Video.FrameRate_ReadOnly = False
+  MPEG.Video.AspectRatio = 2
+  MPEG.Video.AspectRatio_ReadOnly = False
+  MPEG.Video.RateControlMode = MPEGVideoEncoder_RateControlMode_CBR
+  MPEG.Video.RateControlMode_ReadOnly = False
+  MPEG.Video.MaxBitRate = 0
+  MPEG.Video.MaxBitRate_ReadOnly = False
+  MPEG.Video.MinBitRate = 0
+  MPEG.Video.MinBitRate_ReadOnly = False
+  MPEG.Video.MinAvgBitRate = 0
+  MPEG.Video.MinAvgBitRate_ReadOnly = False
+  MPEG.Video.CBR_BitRate = 4500000
+  MPEG.Video.VBR_MultipassVBRAlgorithm = MPEGVideoEncoder_MultipassVBRAlgorithm_2PASS
+  MPEG.Video.VBR_AvgBitRate = 3000000
+  MPEG.Video.VBR_MaxBitRate = 4500000
+  MPEG.Video.VBR_MinBitRate = 2000000
+  MPEG.Video.VBR_MaxPassCount = 0
+  MPEG.Video.VBR_Quality_P = 0
+  MPEG.Video.VBR_Quality_B = 20
+  MPEG.Video.VBR_EnablePadding = False
+  MPEG.Video.MVBR_MaxBitRate = 8000000
+  MPEG.Video.MVBR_MinBitRate = 2000000
+  MPEG.Video.MVBR_Quality_P = 0
+  MPEG.Video.MVBR_Quality_B = 20
+  MPEG.Video.MVBR_EnablePadding = False
+  MPEG.Video.AVBR_Quality = 95
+  MPEG.Video.AVBR_MaxBitRate = 4500000
+  MPEG.Video.AVBR_MinBitRate = 2000000
+  MPEG.Video.AVBR_EnablePadding = False
+  MPEG.Video.CQ_Quality = 95
+  MPEG.Video.CQ_Quality_P = 0
+  MPEG.Video.CQ_Quality_B = 20
+  MPEG.Video.CQ_MaxBitRate = 4500000
+  MPEG.Video.CQ_MinBitRate = 2000000
+  MPEG.Video.CQ_EnablePadding = False
+  MPEG.Video.VBVBufferSize = 229376
+  MPEG.Video.VBVBufferSize_ReadOnly = False
+  MPEG.Video.GOP_SeqHeaderInterval = 1
+  MPEG.Video.GOP_SeqHeaderInterval_ReadOnly = False
+  MPEG.Video.GOP_I_FrameCount = 1
+  MPEG.Video.GOP_I_FrameCount_ReadOnly = False
+  MPEG.Video.GOP_P_FrameCount = 5
+  MPEG.Video.GOP_P_FrameCount_ReadOnly = False
+  MPEG.Video.GOP_B_FrameCount = 2
+  MPEG.Video.GOP_B_FrameCount_ReadOnly = False
+  MPEG.Video.GOP_BitStreamForEdit = False
+  MPEG.Video.GOP_BitStreamForEdit_ReadOnly = False
+  MPEG.Video.GOP_MaxFrameCount = 18
+  MPEG.Video.GOP_MaxFrameCount_ReadOnly = False
+  MPEG.Video.QuantizeMatrix_Intra_ReadOnly = False
+  MPEG.Video.QuantizeMatrix_NonIntra_ReadOnly = False
+  MPEG.Video.Profile = 4
+  MPEG.Video.Profile_ReadOnly = False
+  MPEG.Video.Level = 8
+  MPEG.Video.Level_ReadOnly = False
+  MPEG.Video.VideoFormat = 2
+  MPEG.Video.VideoFormat_ReadOnly = False
+  MPEG.Video.DisplayWidth = 0
+  MPEG.Video.DisplayWidth_ReadOnly = False
+  MPEG.Video.DisplayHeight = 0
+  MPEG.Video.DisplayHeight_ReadOnly = False
+  MPEG.Video.MotionSearchSpeed = MPEGVideoEncoder_MotionSearchSpeed_Slow
+  MPEG.Video.MotionSearch_AlwaysHalfPel = False
+  MPEG.Video.UseFloatDCT = False
+  MPEG.Video.QuantizeMode = False
+  MPEG.Video.QuantizeModeVal_Intra = 35
+  MPEG.Video.QuantizeModeVal_NonIntra = 35
+  MPEG.Video.YUVBasicYCbCr = False
+  MPEG.Video.QuantizeMatrix_Intra = {
+    081013161A1B1D22101016181B1D222513161A1B1D22222616161A1B1D222528
+    161A1B1D202328301A1B1D202328303A1A1B1D22262E38451B1D23262E384553}
+  MPEG.Video.QuantizeMatrix_NonIntra = {
+    1011121314151617111213141516171812131415161718191314151617181A1B
+    14151617191A1B1C151617181A1B1C1E1617181A1B1C1E1F1718191B1C1E1F21}
+  MPEG.Audio.StreamType = MPEGAudioEncoder_StreamType_MPEG1_Layer2
+  MPEG.Audio.StreamType_ReadOnly = False
+  MPEG.Audio.SamplingFrequency = 48000
+  MPEG.Audio.SamplingFrequency_ReadOnly = False
+  MPEG.Audio.ChannelMode = 0
+  MPEG.Audio.ChannelMode_ReadOnly = False
+  MPEG.Audio.CantUseMono = False
+  MPEG.Audio.BitRate = 256000
+  MPEG.Audio.BitRate_ReadOnly = False
+  MPEG.Audio.CalcCRC = False
+  MPEG.Audio.CalcCRC_ReadOnly = False
+  MPEG.Audio.OriginalFlag = False
+  MPEG.Audio.OriginalFlag_ReadOnly = False
+  MPEG.Audio.CopyrightFlag = False
+  MPEG.Audio.CopyrightFlag_ReadOnly = False
+  MPEG.Audio.PrivateFlag = False
+  MPEG.Audio.PrivateFlag_ReadOnly = False
+  MPEG.Audio.EmphasisType = 0
+  MPEG.Audio.EmphasisType_ReadOnly = False
+  MPEG.System.StreamType = MPEGSystemEncoder_StreamType_MPEG2_Program
+  MPEG.System.StreamType_ReadOnly = False
+  MPEG.System.EnableCommentText = False
+  MPEG.System.CommentText = ''
+end
diff --git a/Windows Scripts/TMPG Settings/DV to DVD CQ.mcf b/Windows Scripts/TMPG Settings/DV to DVD CQ.mcf
new file mode 100755
index 0000000..9a54e1a
--- /dev/null
+++ b/Windows Scripts/TMPG Settings/DV to DVD CQ.mcf	
@@ -0,0 +1,125 @@
+object TMPEGConfigFile
+  MPEG.Text = ''
+  MPEG.WizardCategoryName = ''
+  MPEG.WizardSubFormatName = ''
+  MPEG.WizardCaption = ''
+  MPEG.WizardDescription = ''
+  MPEG.WizardTargetMedia = MPEGConfig_TargetMediaType_Unknown
+  MPEG.WizardAutoCalcVideoBitRate = False
+  MPEG.WizardAutoChooseList.EnableVideoSize = False
+  MPEG.WizardAutoChooseList.VideoSize = <>
+  MPEG.WizardAutoChooseList.EnableVideoGOP = False
+  MPEG.WizardAutoChooseList.VideoGOP = <>
+  MPEG.OutputStreamType = MPEG_OutputStreamType_VideoAudio
+  MPEG.OutputStreamType_ReadOnly = False
+  MPEG.Video.StreamType = MPEGVideoEncoder_StreamType_MPEG2
+  MPEG.Video.StreamType_ReadOnly = False
+  MPEG.Video.Width = 720
+  MPEG.Video.Width_ReadOnly = False
+  MPEG.Video.Height = 480
+  MPEG.Video.Height_ReadOnly = False
+  MPEG.Video.YUVFormat = 1
+  MPEG.Video.YUVFormat_ReadOnly = False
+  MPEG.Video.DC_prec = 2
+  MPEG.Video.DC_prec_ReadOnly = False
+  MPEG.Video.VideoEncodeMode = MPEGVideoEncoder_VideoEncodeMode_Interlace
+  MPEG.Video.VideoEncodeMode_ReadOnly = False
+  MPEG.Video.FrameRate = 4
+  MPEG.Video.FrameRate_ReadOnly = False
+  MPEG.Video.AspectRatio = 2
+  MPEG.Video.AspectRatio_ReadOnly = False
+  MPEG.Video.RateControlMode = MPEGVideoEncoder_RateControlMode_CQ
+  MPEG.Video.RateControlMode_ReadOnly = False
+  MPEG.Video.MaxBitRate = 0
+  MPEG.Video.MaxBitRate_ReadOnly = False
+  MPEG.Video.MinBitRate = 0
+  MPEG.Video.MinBitRate_ReadOnly = False
+  MPEG.Video.MinAvgBitRate = 0
+  MPEG.Video.MinAvgBitRate_ReadOnly = False
+  MPEG.Video.CBR_BitRate = 7000000
+  MPEG.Video.VBR_MultipassVBRAlgorithm = MPEGVideoEncoder_MultipassVBRAlgorithm_2PASS
+  MPEG.Video.VBR_AvgBitRate = 3000000
+  MPEG.Video.VBR_MaxBitRate = 4500000
+  MPEG.Video.VBR_MinBitRate = 2000000
+  MPEG.Video.VBR_MaxPassCount = 0
+  MPEG.Video.VBR_Quality_P = 0
+  MPEG.Video.VBR_Quality_B = 20
+  MPEG.Video.VBR_EnablePadding = False
+  MPEG.Video.MVBR_MaxBitRate = 8000000
+  MPEG.Video.MVBR_MinBitRate = 2000000
+  MPEG.Video.MVBR_Quality_P = 0
+  MPEG.Video.MVBR_Quality_B = 20
+  MPEG.Video.MVBR_EnablePadding = False
+  MPEG.Video.AVBR_Quality = 95
+  MPEG.Video.AVBR_MaxBitRate = 4500000
+  MPEG.Video.AVBR_MinBitRate = 2000000
+  MPEG.Video.AVBR_EnablePadding = False
+  MPEG.Video.CQ_Quality = 95
+  MPEG.Video.CQ_Quality_P = 0
+  MPEG.Video.CQ_Quality_B = 20
+  MPEG.Video.CQ_MaxBitRate = 4500000
+  MPEG.Video.CQ_MinBitRate = 2000000
+  MPEG.Video.CQ_EnablePadding = False
+  MPEG.Video.VBVBufferSize = 229376
+  MPEG.Video.VBVBufferSize_ReadOnly = False
+  MPEG.Video.GOP_SeqHeaderInterval = 1
+  MPEG.Video.GOP_SeqHeaderInterval_ReadOnly = False
+  MPEG.Video.GOP_I_FrameCount = 1
+  MPEG.Video.GOP_I_FrameCount_ReadOnly = False
+  MPEG.Video.GOP_P_FrameCount = 5
+  MPEG.Video.GOP_P_FrameCount_ReadOnly = False
+  MPEG.Video.GOP_B_FrameCount = 2
+  MPEG.Video.GOP_B_FrameCount_ReadOnly = False
+  MPEG.Video.GOP_BitStreamForEdit = False
+  MPEG.Video.GOP_BitStreamForEdit_ReadOnly = False
+  MPEG.Video.GOP_MaxFrameCount = 18
+  MPEG.Video.GOP_MaxFrameCount_ReadOnly = False
+  MPEG.Video.QuantizeMatrix_Intra_ReadOnly = False
+  MPEG.Video.QuantizeMatrix_NonIntra_ReadOnly = False
+  MPEG.Video.Profile = 4
+  MPEG.Video.Profile_ReadOnly = False
+  MPEG.Video.Level = 8
+  MPEG.Video.Level_ReadOnly = False
+  MPEG.Video.VideoFormat = 2
+  MPEG.Video.VideoFormat_ReadOnly = False
+  MPEG.Video.DisplayWidth = 0
+  MPEG.Video.DisplayWidth_ReadOnly = False
+  MPEG.Video.DisplayHeight = 0
+  MPEG.Video.DisplayHeight_ReadOnly = False
+  MPEG.Video.MotionSearchSpeed = MPEGVideoEncoder_MotionSearchSpeed_Slow
+  MPEG.Video.MotionSearch_AlwaysHalfPel = False
+  MPEG.Video.UseFloatDCT = False
+  MPEG.Video.QuantizeMode = False
+  MPEG.Video.QuantizeModeVal_Intra = 35
+  MPEG.Video.QuantizeModeVal_NonIntra = 35
+  MPEG.Video.YUVBasicYCbCr = False
+  MPEG.Video.QuantizeMatrix_Intra = {
+    081013161A1B1D22101016181B1D222513161A1B1D22222616161A1B1D222528
+    161A1B1D202328301A1B1D202328303A1A1B1D22262E38451B1D23262E384553}
+  MPEG.Video.QuantizeMatrix_NonIntra = {
+    1011121314151617111213141516171812131415161718191314151617181A1B
+    14151617191A1B1C151617181A1B1C1E1617181A1B1C1E1F1718191B1C1E1F21}
+  MPEG.Audio.StreamType = MPEGAudioEncoder_StreamType_MPEG1_Layer2
+  MPEG.Audio.StreamType_ReadOnly = False
+  MPEG.Audio.SamplingFrequency = 48000
+  MPEG.Audio.SamplingFrequency_ReadOnly = False
+  MPEG.Audio.ChannelMode = 0
+  MPEG.Audio.ChannelMode_ReadOnly = False
+  MPEG.Audio.CantUseMono = False
+  MPEG.Audio.BitRate = 256000
+  MPEG.Audio.BitRate_ReadOnly = False
+  MPEG.Audio.CalcCRC = False
+  MPEG.Audio.CalcCRC_ReadOnly = False
+  MPEG.Audio.OriginalFlag = False
+  MPEG.Audio.OriginalFlag_ReadOnly = False
+  MPEG.Audio.CopyrightFlag = False
+  MPEG.Audio.CopyrightFlag_ReadOnly = False
+  MPEG.Audio.PrivateFlag = False
+  MPEG.Audio.PrivateFlag_ReadOnly = False
+  MPEG.Audio.EmphasisType = 0
+  MPEG.Audio.EmphasisType_ReadOnly = False
+  MPEG.System.StreamType = MPEGSystemEncoder_StreamType_MPEG2_Program
+  MPEG.System.StreamType_ReadOnly = False
+  MPEG.System.EnableCommentText = False
+  MPEG.System.CommentText = ''
+end
diff --git a/Windows Scripts/TMPG Settings/DV to DVD wizard.mcf b/Windows Scripts/TMPG Settings/DV to DVD wizard.mcf
new file mode 100755
index 0000000..ddf55d2
--- /dev/null
+++ b/Windows Scripts/TMPG Settings/DV to DVD wizard.mcf	
@@ -0,0 +1,125 @@
+object TMPEGConfigFile
+  MPEG.Text = ''
+  MPEG.WizardCategoryName = ''
+  MPEG.WizardSubFormatName = ''
+  MPEG.WizardCaption = ''
+  MPEG.WizardDescription = ''
+  MPEG.WizardTargetMedia = MPEGConfig_TargetMediaType_Unknown
+  MPEG.WizardAutoCalcVideoBitRate = False
+  MPEG.WizardAutoChooseList.EnableVideoSize = False
+  MPEG.WizardAutoChooseList.VideoSize = <>
+  MPEG.WizardAutoChooseList.EnableVideoGOP = False
+  MPEG.WizardAutoChooseList.VideoGOP = <>
+  MPEG.OutputStreamType = MPEG_OutputStreamType_VideoAudio
+  MPEG.OutputStreamType_ReadOnly = False
+  MPEG.Video.StreamType = MPEGVideoEncoder_StreamType_MPEG2
+  MPEG.Video.StreamType_ReadOnly = False
+  MPEG.Video.Width = 720
+  MPEG.Video.Width_ReadOnly = False
+  MPEG.Video.Height = 480
+  MPEG.Video.Height_ReadOnly = False
+  MPEG.Video.YUVFormat = 1
+  MPEG.Video.YUVFormat_ReadOnly = False
+  MPEG.Video.DC_prec = 2
+  MPEG.Video.DC_prec_ReadOnly = False
+  MPEG.Video.VideoEncodeMode = MPEGVideoEncoder_VideoEncodeMode_Interlace
+  MPEG.Video.VideoEncodeMode_ReadOnly = False
+  MPEG.Video.FrameRate = 4
+  MPEG.Video.FrameRate_ReadOnly = False
+  MPEG.Video.AspectRatio = 2
+  MPEG.Video.AspectRatio_ReadOnly = False
+  MPEG.Video.RateControlMode = MPEGVideoEncoder_RateControlMode_VBR_2PASS
+  MPEG.Video.RateControlMode_ReadOnly = False
+  MPEG.Video.MaxBitRate = 0
+  MPEG.Video.MaxBitRate_ReadOnly = False
+  MPEG.Video.MinBitRate = 0
+  MPEG.Video.MinBitRate_ReadOnly = False
+  MPEG.Video.MinAvgBitRate = 0
+  MPEG.Video.MinAvgBitRate_ReadOnly = False
+  MPEG.Video.CBR_BitRate = 4500000
+  MPEG.Video.VBR_MultipassVBRAlgorithm = MPEGVideoEncoder_MultipassVBRAlgorithm_2PASS
+  MPEG.Video.VBR_AvgBitRate = 6000000
+  MPEG.Video.VBR_MaxBitRate = 7000000
+  MPEG.Video.VBR_MinBitRate = 0
+  MPEG.Video.VBR_MaxPassCount = 0
+  MPEG.Video.VBR_Quality_P = 0
+  MPEG.Video.VBR_Quality_B = 20
+  MPEG.Video.VBR_EnablePadding = False
+  MPEG.Video.MVBR_MaxBitRate = 8000000
+  MPEG.Video.MVBR_MinBitRate = 2000000
+  MPEG.Video.MVBR_Quality_P = 0
+  MPEG.Video.MVBR_Quality_B = 20
+  MPEG.Video.MVBR_EnablePadding = False
+  MPEG.Video.AVBR_Quality = 95
+  MPEG.Video.AVBR_MaxBitRate = 4500000
+  MPEG.Video.AVBR_MinBitRate = 2000000
+  MPEG.Video.AVBR_EnablePadding = False
+  MPEG.Video.CQ_Quality = 95
+  MPEG.Video.CQ_Quality_P = 0
+  MPEG.Video.CQ_Quality_B = 20
+  MPEG.Video.CQ_MaxBitRate = 4500000
+  MPEG.Video.CQ_MinBitRate = 2000000
+  MPEG.Video.CQ_EnablePadding = False
+  MPEG.Video.VBVBufferSize = 229376
+  MPEG.Video.VBVBufferSize_ReadOnly = False
+  MPEG.Video.GOP_SeqHeaderInterval = 1
+  MPEG.Video.GOP_SeqHeaderInterval_ReadOnly = False
+  MPEG.Video.GOP_I_FrameCount = 1
+  MPEG.Video.GOP_I_FrameCount_ReadOnly = False
+  MPEG.Video.GOP_P_FrameCount = 4
+  MPEG.Video.GOP_P_FrameCount_ReadOnly = False
+  MPEG.Video.GOP_B_FrameCount = 1
+  MPEG.Video.GOP_B_FrameCount_ReadOnly = False
+  MPEG.Video.GOP_BitStreamForEdit = False
+  MPEG.Video.GOP_BitStreamForEdit_ReadOnly = False
+  MPEG.Video.GOP_MaxFrameCount = 18
+  MPEG.Video.GOP_MaxFrameCount_ReadOnly = False
+  MPEG.Video.QuantizeMatrix_Intra_ReadOnly = False
+  MPEG.Video.QuantizeMatrix_NonIntra_ReadOnly = False
+  MPEG.Video.Profile = 4
+  MPEG.Video.Profile_ReadOnly = False
+  MPEG.Video.Level = 8
+  MPEG.Video.Level_ReadOnly = False
+  MPEG.Video.VideoFormat = 2
+  MPEG.Video.VideoFormat_ReadOnly = False
+  MPEG.Video.DisplayWidth = 0
+  MPEG.Video.DisplayWidth_ReadOnly = False
+  MPEG.Video.DisplayHeight = 0
+  MPEG.Video.DisplayHeight_ReadOnly = False
+  MPEG.Video.MotionSearchSpeed = MPEGVideoEncoder_MotionSearchSpeed_Slow
+  MPEG.Video.MotionSearch_AlwaysHalfPel = True
+  MPEG.Video.UseFloatDCT = False
+  MPEG.Video.QuantizeMode = False
+  MPEG.Video.QuantizeModeVal_Intra = 35
+  MPEG.Video.QuantizeModeVal_NonIntra = 35
+  MPEG.Video.YUVBasicYCbCr = True
+  MPEG.Video.QuantizeMatrix_Intra = {
+    081013161A1B1D22101016181B1D222513161A1B1D22222616161A1B1D222528
+    161A1B1D202328301A1B1D202328303A1A1B1D22262E38451B1D23262E384553}
+  MPEG.Video.QuantizeMatrix_NonIntra = {
+    1011121314151617111213141516171812131415161718191314151617181A1B
+    14151617191A1B1C151617181A1B1C1E1617181A1B1C1E1F1718191B1C1E1F21}
+  MPEG.Audio.StreamType = MPEGAudioEncoder_StreamType_MPEG1_Layer2
+  MPEG.Audio.StreamType_ReadOnly = False
+  MPEG.Audio.SamplingFrequency = 48000
+  MPEG.Audio.SamplingFrequency_ReadOnly = False
+  MPEG.Audio.ChannelMode = 0
+  MPEG.Audio.ChannelMode_ReadOnly = False
+  MPEG.Audio.CantUseMono = False
+  MPEG.Audio.BitRate = 256000
+  MPEG.Audio.BitRate_ReadOnly = False
+  MPEG.Audio.CalcCRC = False
+  MPEG.Audio.CalcCRC_ReadOnly = False
+  MPEG.Audio.OriginalFlag = False
+  MPEG.Audio.OriginalFlag_ReadOnly = False
+  MPEG.Audio.CopyrightFlag = False
+  MPEG.Audio.CopyrightFlag_ReadOnly = False
+  MPEG.Audio.PrivateFlag = False
+  MPEG.Audio.PrivateFlag_ReadOnly = False
+  MPEG.Audio.EmphasisType = 0
+  MPEG.Audio.EmphasisType_ReadOnly = False
+  MPEG.System.StreamType = MPEGSystemEncoder_StreamType_MPEG2_Program
+  MPEG.System.StreamType_ReadOnly = False
+  MPEG.System.EnableCommentText = False
+  MPEG.System.CommentText = ''
+end
diff --git a/Windows Scripts/TMPG Settings/DV to DVD.mcf b/Windows Scripts/TMPG Settings/DV to DVD.mcf
new file mode 100755
index 0000000..d70d1f3
--- /dev/null
+++ b/Windows Scripts/TMPG Settings/DV to DVD.mcf	
@@ -0,0 +1,125 @@
+object TMPEGConfigFile
+  MPEG.Text = ''
+  MPEG.WizardCategoryName = ''
+  MPEG.WizardSubFormatName = ''
+  MPEG.WizardCaption = ''
+  MPEG.WizardDescription = ''
+  MPEG.WizardTargetMedia = MPEGConfig_TargetMediaType_Unknown
+  MPEG.WizardAutoCalcVideoBitRate = False
+  MPEG.WizardAutoChooseList.EnableVideoSize = False
+  MPEG.WizardAutoChooseList.VideoSize = <>
+  MPEG.WizardAutoChooseList.EnableVideoGOP = False
+  MPEG.WizardAutoChooseList.VideoGOP = <>
+  MPEG.OutputStreamType = MPEG_OutputStreamType_VideoAudio
+  MPEG.OutputStreamType_ReadOnly = False
+  MPEG.Video.StreamType = MPEGVideoEncoder_StreamType_MPEG2
+  MPEG.Video.StreamType_ReadOnly = False
+  MPEG.Video.Width = 720
+  MPEG.Video.Width_ReadOnly = False
+  MPEG.Video.Height = 480
+  MPEG.Video.Height_ReadOnly = False
+  MPEG.Video.YUVFormat = 1
+  MPEG.Video.YUVFormat_ReadOnly = False
+  MPEG.Video.DC_prec = 2
+  MPEG.Video.DC_prec_ReadOnly = False
+  MPEG.Video.VideoEncodeMode = MPEGVideoEncoder_VideoEncodeMode_Interlace
+  MPEG.Video.VideoEncodeMode_ReadOnly = False
+  MPEG.Video.FrameRate = 4
+  MPEG.Video.FrameRate_ReadOnly = False
+  MPEG.Video.AspectRatio = 2
+  MPEG.Video.AspectRatio_ReadOnly = False
+  MPEG.Video.RateControlMode = MPEGVideoEncoder_RateControlMode_VBR_Auto
+  MPEG.Video.RateControlMode_ReadOnly = False
+  MPEG.Video.MaxBitRate = 0
+  MPEG.Video.MaxBitRate_ReadOnly = False
+  MPEG.Video.MinBitRate = 0
+  MPEG.Video.MinBitRate_ReadOnly = False
+  MPEG.Video.MinAvgBitRate = 0
+  MPEG.Video.MinAvgBitRate_ReadOnly = False
+  MPEG.Video.CBR_BitRate = 7000000
+  MPEG.Video.VBR_MultipassVBRAlgorithm = MPEGVideoEncoder_MultipassVBRAlgorithm_2PASS
+  MPEG.Video.VBR_AvgBitRate = 7000000
+  MPEG.Video.VBR_MaxBitRate = 8000000
+  MPEG.Video.VBR_MinBitRate = 2000000
+  MPEG.Video.VBR_MaxPassCount = 0
+  MPEG.Video.VBR_Quality_P = 0
+  MPEG.Video.VBR_Quality_B = 20
+  MPEG.Video.VBR_EnablePadding = False
+  MPEG.Video.MVBR_MaxBitRate = 8000000
+  MPEG.Video.MVBR_MinBitRate = 2000000
+  MPEG.Video.MVBR_Quality_P = 0
+  MPEG.Video.MVBR_Quality_B = 20
+  MPEG.Video.MVBR_EnablePadding = False
+  MPEG.Video.AVBR_Quality = 95
+  MPEG.Video.AVBR_MaxBitRate = 4500000
+  MPEG.Video.AVBR_MinBitRate = 2000000
+  MPEG.Video.AVBR_EnablePadding = False
+  MPEG.Video.CQ_Quality = 65
+  MPEG.Video.CQ_Quality_P = 0
+  MPEG.Video.CQ_Quality_B = 20
+  MPEG.Video.CQ_MaxBitRate = 8000000
+  MPEG.Video.CQ_MinBitRate = 2000000
+  MPEG.Video.CQ_EnablePadding = False
+  MPEG.Video.VBVBufferSize = 229376
+  MPEG.Video.VBVBufferSize_ReadOnly = False
+  MPEG.Video.GOP_SeqHeaderInterval = 1
+  MPEG.Video.GOP_SeqHeaderInterval_ReadOnly = False
+  MPEG.Video.GOP_I_FrameCount = 1
+  MPEG.Video.GOP_I_FrameCount_ReadOnly = False
+  MPEG.Video.GOP_P_FrameCount = 4
+  MPEG.Video.GOP_P_FrameCount_ReadOnly = False
+  MPEG.Video.GOP_B_FrameCount = 1
+  MPEG.Video.GOP_B_FrameCount_ReadOnly = False
+  MPEG.Video.GOP_BitStreamForEdit = False
+  MPEG.Video.GOP_BitStreamForEdit_ReadOnly = False
+  MPEG.Video.GOP_MaxFrameCount = 18
+  MPEG.Video.GOP_MaxFrameCount_ReadOnly = False
+  MPEG.Video.QuantizeMatrix_Intra_ReadOnly = False
+  MPEG.Video.QuantizeMatrix_NonIntra_ReadOnly = False
+  MPEG.Video.Profile = 4
+  MPEG.Video.Profile_ReadOnly = False
+  MPEG.Video.Level = 8
+  MPEG.Video.Level_ReadOnly = False
+  MPEG.Video.VideoFormat = 2
+  MPEG.Video.VideoFormat_ReadOnly = False
+  MPEG.Video.DisplayWidth = 0
+  MPEG.Video.DisplayWidth_ReadOnly = False
+  MPEG.Video.DisplayHeight = 0
+  MPEG.Video.DisplayHeight_ReadOnly = False
+  MPEG.Video.MotionSearchSpeed = MPEGVideoEncoder_MotionSearchSpeed_Slow
+  MPEG.Video.MotionSearch_AlwaysHalfPel = False
+  MPEG.Video.UseFloatDCT = False
+  MPEG.Video.QuantizeMode = False
+  MPEG.Video.QuantizeModeVal_Intra = 35
+  MPEG.Video.QuantizeModeVal_NonIntra = 35
+  MPEG.Video.YUVBasicYCbCr = False
+  MPEG.Video.QuantizeMatrix_Intra = {
+    081013161A1B1D22101016181B1D222513161A1B1D22222616161A1B1D222528
+    161A1B1D202328301A1B1D202328303A1A1B1D22262E38451B1D23262E384553}
+  MPEG.Video.QuantizeMatrix_NonIntra = {
+    1011121314151617111213141516171812131415161718191314151617181A1B
+    14151617191A1B1C151617181A1B1C1E1617181A1B1C1E1F1718191B1C1E1F21}
+  MPEG.Audio.StreamType = MPEGAudioEncoder_StreamType_MPEG1_Layer2
+  MPEG.Audio.StreamType_ReadOnly = False
+  MPEG.Audio.SamplingFrequency = 48000
+  MPEG.Audio.SamplingFrequency_ReadOnly = False
+  MPEG.Audio.ChannelMode = 0
+  MPEG.Audio.ChannelMode_ReadOnly = False
+  MPEG.Audio.CantUseMono = False
+  MPEG.Audio.BitRate = 256000
+  MPEG.Audio.BitRate_ReadOnly = False
+  MPEG.Audio.CalcCRC = False
+  MPEG.Audio.CalcCRC_ReadOnly = False
+  MPEG.Audio.OriginalFlag = False
+  MPEG.Audio.OriginalFlag_ReadOnly = False
+  MPEG.Audio.CopyrightFlag = False
+  MPEG.Audio.CopyrightFlag_ReadOnly = False
+  MPEG.Audio.PrivateFlag = False
+  MPEG.Audio.PrivateFlag_ReadOnly = False
+  MPEG.Audio.EmphasisType = 0
+  MPEG.Audio.EmphasisType_ReadOnly = False
+  MPEG.System.StreamType = MPEGSystemEncoder_StreamType_MPEG2_Program
+  MPEG.System.StreamType_ReadOnly = False
+  MPEG.System.EnableCommentText = False
+  MPEG.System.CommentText = ''
+end
diff --git a/Windows Scripts/TMPG Settings/TV to DVD wizard CBR.mcf b/Windows Scripts/TMPG Settings/TV to DVD wizard CBR.mcf
new file mode 100755
index 0000000..f3d3af4
--- /dev/null
+++ b/Windows Scripts/TMPG Settings/TV to DVD wizard CBR.mcf	
@@ -0,0 +1,127 @@
+object TMPEGConfigFile
+  MPEG.Text = '$$DVD_NTSC_4_3_LowResolution'
+  MPEG.WizardCategoryName = '$$DVD\$$NTSC_LowResolution'
+  MPEG.WizardSubFormatName = 'CBR   $$WS_Audio_MPEG1LayerII'
+  MPEG.WizardCaption = '$$WC_DVD_NTSC_4_3_LowResolution'
+  MPEG.WizardDescription = 
+    '$$WD_Header_DVD'#13#10#13#10'$$WD_FileInfo_DVD_Lowres'#13#10#13#10'$$WD_TVSystem_NTS' +
+    'C'#13#10#13#10'$$WD_RecTime_DVD_MPA_max'
+  MPEG.WizardTargetMedia = MPEGConfig_TargetMediaType_DVD_47GB
+  MPEG.WizardAutoCalcVideoBitRate = False
+  MPEG.WizardAutoChooseList.EnableVideoSize = False
+  MPEG.WizardAutoChooseList.VideoSize = <>
+  MPEG.WizardAutoChooseList.EnableVideoGOP = False
+  MPEG.WizardAutoChooseList.VideoGOP = <>
+  MPEG.OutputStreamType = MPEG_OutputStreamType_VideoAudio
+  MPEG.OutputStreamType_ReadOnly = False
+  MPEG.Video.StreamType = MPEGVideoEncoder_StreamType_MPEG2
+  MPEG.Video.StreamType_ReadOnly = True
+  MPEG.Video.Width = 352
+  MPEG.Video.Width_ReadOnly = True
+  MPEG.Video.Height = 240
+  MPEG.Video.Height_ReadOnly = True
+  MPEG.Video.YUVFormat = 1
+  MPEG.Video.YUVFormat_ReadOnly = True
+  MPEG.Video.DC_prec = 1
+  MPEG.Video.DC_prec_ReadOnly = False
+  MPEG.Video.VideoEncodeMode = MPEGVideoEncoder_VideoEncodeMode_Progressive
+  MPEG.Video.VideoEncodeMode_ReadOnly = True
+  MPEG.Video.FrameRate = 4
+  MPEG.Video.FrameRate_ReadOnly = True
+  MPEG.Video.AspectRatio = 2
+  MPEG.Video.AspectRatio_ReadOnly = True
+  MPEG.Video.RateControlMode = MPEGVideoEncoder_RateControlMode_CBR
+  MPEG.Video.RateControlMode_ReadOnly = False
+  MPEG.Video.MaxBitRate = 8000000
+  MPEG.Video.MaxBitRate_ReadOnly = False
+  MPEG.Video.MinBitRate = 0
+  MPEG.Video.MinBitRate_ReadOnly = False
+  MPEG.Video.MinAvgBitRate = 750000
+  MPEG.Video.MinAvgBitRate_ReadOnly = False
+  MPEG.Video.CBR_BitRate = 1000000
+  MPEG.Video.VBR_MultipassVBRAlgorithm = MPEGVideoEncoder_MultipassVBRAlgorithm_MultipassCQ
+  MPEG.Video.VBR_AvgBitRate = 2000000
+  MPEG.Video.VBR_MaxBitRate = 8000000
+  MPEG.Video.VBR_MinBitRate = 0
+  MPEG.Video.VBR_MaxPassCount = 2
+  MPEG.Video.VBR_Quality_P = 0
+  MPEG.Video.VBR_Quality_B = 20
+  MPEG.Video.VBR_EnablePadding = True
+  MPEG.Video.MVBR_MaxBitRate = 8000000
+  MPEG.Video.MVBR_MinBitRate = 1000000
+  MPEG.Video.MVBR_Quality_P = 0
+  MPEG.Video.MVBR_Quality_B = 20
+  MPEG.Video.MVBR_EnablePadding = True
+  MPEG.Video.AVBR_Quality = 50
+  MPEG.Video.AVBR_MaxBitRate = 8000000
+  MPEG.Video.AVBR_MinBitRate = 1000000
+  MPEG.Video.AVBR_EnablePadding = True
+  MPEG.Video.CQ_Quality = 65
+  MPEG.Video.CQ_Quality_P = 0
+  MPEG.Video.CQ_Quality_B = 20
+  MPEG.Video.CQ_MaxBitRate = 8000000
+  MPEG.Video.CQ_MinBitRate = 1000000
+  MPEG.Video.CQ_EnablePadding = True
+  MPEG.Video.VBVBufferSize = 229376
+  MPEG.Video.VBVBufferSize_ReadOnly = True
+  MPEG.Video.GOP_SeqHeaderInterval = 1
+  MPEG.Video.GOP_SeqHeaderInterval_ReadOnly = True
+  MPEG.Video.GOP_I_FrameCount = 1
+  MPEG.Video.GOP_I_FrameCount_ReadOnly = True
+  MPEG.Video.GOP_P_FrameCount = 5
+  MPEG.Video.GOP_P_FrameCount_ReadOnly = True
+  MPEG.Video.GOP_B_FrameCount = 2
+  MPEG.Video.GOP_B_FrameCount_ReadOnly = True
+  MPEG.Video.GOP_BitStreamForEdit = True
+  MPEG.Video.GOP_BitStreamForEdit_ReadOnly = False
+  MPEG.Video.GOP_MaxFrameCount = 18
+  MPEG.Video.GOP_MaxFrameCount_ReadOnly = True
+  MPEG.Video.QuantizeMatrix_Intra_ReadOnly = False
+  MPEG.Video.QuantizeMatrix_NonIntra_ReadOnly = False
+  MPEG.Video.Profile = 4
+  MPEG.Video.Profile_ReadOnly = True
+  MPEG.Video.Level = 8
+  MPEG.Video.Level_ReadOnly = True
+  MPEG.Video.VideoFormat = 2
+  MPEG.Video.VideoFormat_ReadOnly = True
+  MPEG.Video.DisplayWidth = 0
+  MPEG.Video.DisplayWidth_ReadOnly = False
+  MPEG.Video.DisplayHeight = 0
+  MPEG.Video.DisplayHeight_ReadOnly = False
+  MPEG.Video.MotionSearchSpeed = MPEGVideoEncoder_MotionSearchSpeed_MotionEstimate
+  MPEG.Video.MotionSearch_AlwaysHalfPel = False
+  MPEG.Video.UseFloatDCT = False
+  MPEG.Video.QuantizeMode = False
+  MPEG.Video.QuantizeModeVal_Intra = 35
+  MPEG.Video.QuantizeModeVal_NonIntra = 35
+  MPEG.Video.YUVBasicYCbCr = False
+  MPEG.Video.QuantizeMatrix_Intra = {
+    081013161A1B1D22101016181B1D222513161A1B1D22222616161A1B1D222528
+    161A1B1D202328301A1B1D202328303A1A1B1D22262E38451B1D23262E384553}
+  MPEG.Video.QuantizeMatrix_NonIntra = {
+    1011121314151617111213141516171812131415161718191314151617181A1B
+    14151617191A1B1C151617181A1B1C1E1617181A1B1C1E1F1718191B1C1E1F21}
+  MPEG.Audio.StreamType = MPEGAudioEncoder_StreamType_MPEG1_Layer2
+  MPEG.Audio.StreamType_ReadOnly = True
+  MPEG.Audio.SamplingFrequency = 48000
+  MPEG.Audio.SamplingFrequency_ReadOnly = True
+  MPEG.Audio.ChannelMode = 0
+  MPEG.Audio.ChannelMode_ReadOnly = False
+  MPEG.Audio.CantUseMono = True
+  MPEG.Audio.BitRate = 256000
+  MPEG.Audio.BitRate_ReadOnly = False
+  MPEG.Audio.CalcCRC = True
+  MPEG.Audio.CalcCRC_ReadOnly = False
+  MPEG.Audio.OriginalFlag = False
+  MPEG.Audio.OriginalFlag_ReadOnly = False
+  MPEG.Audio.CopyrightFlag = False
+  MPEG.Audio.CopyrightFlag_ReadOnly = False
+  MPEG.Audio.PrivateFlag = False
+  MPEG.Audio.PrivateFlag_ReadOnly = False
+  MPEG.Audio.EmphasisType = 0
+  MPEG.Audio.EmphasisType_ReadOnly = False
+  MPEG.System.StreamType = MPEGSystemEncoder_StreamType_MPEG2_Program
+  MPEG.System.StreamType_ReadOnly = True
+  MPEG.System.EnableCommentText = False
+  MPEG.System.CommentText = ''
+end
diff --git a/Windows Scripts/TMPG Settings/TV to DVD wizard VBR.mcf b/Windows Scripts/TMPG Settings/TV to DVD wizard VBR.mcf
new file mode 100755
index 0000000..904a5ec
--- /dev/null
+++ b/Windows Scripts/TMPG Settings/TV to DVD wizard VBR.mcf	
@@ -0,0 +1,127 @@
+object TMPEGConfigFile
+  MPEG.Text = '$$DVD_NTSC_4_3_LowResolution'
+  MPEG.WizardCategoryName = '$$DVD\$$NTSC_LowResolution'
+  MPEG.WizardSubFormatName = 'VBR   $$WS_Audio_MPEG1LayerII'
+  MPEG.WizardCaption = '$$WC_DVD_NTSC_4_3_LowResolution'
+  MPEG.WizardDescription = 
+    '$$WD_Header_DVD'#13#10#13#10'$$WD_FileInfo_DVD_Lowres'#13#10#13#10'$$WD_TVSystem_NTS' +
+    'C'#13#10#13#10'$$WD_RecTime_DVD_MPA_max'#13#10#13#10'$$WD_2passVBR'
+  MPEG.WizardTargetMedia = MPEGConfig_TargetMediaType_DVD_47GB
+  MPEG.WizardAutoCalcVideoBitRate = False
+  MPEG.WizardAutoChooseList.EnableVideoSize = False
+  MPEG.WizardAutoChooseList.VideoSize = <>
+  MPEG.WizardAutoChooseList.EnableVideoGOP = False
+  MPEG.WizardAutoChooseList.VideoGOP = <>
+  MPEG.OutputStreamType = MPEG_OutputStreamType_VideoAudio
+  MPEG.OutputStreamType_ReadOnly = False
+  MPEG.Video.StreamType = MPEGVideoEncoder_StreamType_MPEG2
+  MPEG.Video.StreamType_ReadOnly = True
+  MPEG.Video.Width = 352
+  MPEG.Video.Width_ReadOnly = True
+  MPEG.Video.Height = 240
+  MPEG.Video.Height_ReadOnly = True
+  MPEG.Video.YUVFormat = 1
+  MPEG.Video.YUVFormat_ReadOnly = True
+  MPEG.Video.DC_prec = 1
+  MPEG.Video.DC_prec_ReadOnly = False
+  MPEG.Video.VideoEncodeMode = MPEGVideoEncoder_VideoEncodeMode_Progressive
+  MPEG.Video.VideoEncodeMode_ReadOnly = True
+  MPEG.Video.FrameRate = 4
+  MPEG.Video.FrameRate_ReadOnly = True
+  MPEG.Video.AspectRatio = 2
+  MPEG.Video.AspectRatio_ReadOnly = True
+  MPEG.Video.RateControlMode = MPEGVideoEncoder_RateControlMode_VBR_2PASS
+  MPEG.Video.RateControlMode_ReadOnly = False
+  MPEG.Video.MaxBitRate = 8000000
+  MPEG.Video.MaxBitRate_ReadOnly = False
+  MPEG.Video.MinBitRate = 0
+  MPEG.Video.MinBitRate_ReadOnly = False
+  MPEG.Video.MinAvgBitRate = 750000
+  MPEG.Video.MinAvgBitRate_ReadOnly = False
+  MPEG.Video.CBR_BitRate = 2000000
+  MPEG.Video.VBR_MultipassVBRAlgorithm = MPEGVideoEncoder_MultipassVBRAlgorithm_MultipassCQ
+  MPEG.Video.VBR_AvgBitRate = 1000000
+  MPEG.Video.VBR_MaxBitRate = 8000000
+  MPEG.Video.VBR_MinBitRate = 0
+  MPEG.Video.VBR_MaxPassCount = 2
+  MPEG.Video.VBR_Quality_P = 0
+  MPEG.Video.VBR_Quality_B = 20
+  MPEG.Video.VBR_EnablePadding = True
+  MPEG.Video.MVBR_MaxBitRate = 8000000
+  MPEG.Video.MVBR_MinBitRate = 1000000
+  MPEG.Video.MVBR_Quality_P = 0
+  MPEG.Video.MVBR_Quality_B = 20
+  MPEG.Video.MVBR_EnablePadding = True
+  MPEG.Video.AVBR_Quality = 50
+  MPEG.Video.AVBR_MaxBitRate = 8000000
+  MPEG.Video.AVBR_MinBitRate = 1000000
+  MPEG.Video.AVBR_EnablePadding = True
+  MPEG.Video.CQ_Quality = 65
+  MPEG.Video.CQ_Quality_P = 0
+  MPEG.Video.CQ_Quality_B = 20
+  MPEG.Video.CQ_MaxBitRate = 8000000
+  MPEG.Video.CQ_MinBitRate = 1000000
+  MPEG.Video.CQ_EnablePadding = True
+  MPEG.Video.VBVBufferSize = 229376
+  MPEG.Video.VBVBufferSize_ReadOnly = True
+  MPEG.Video.GOP_SeqHeaderInterval = 1
+  MPEG.Video.GOP_SeqHeaderInterval_ReadOnly = True
+  MPEG.Video.GOP_I_FrameCount = 1
+  MPEG.Video.GOP_I_FrameCount_ReadOnly = True
+  MPEG.Video.GOP_P_FrameCount = 5
+  MPEG.Video.GOP_P_FrameCount_ReadOnly = True
+  MPEG.Video.GOP_B_FrameCount = 2
+  MPEG.Video.GOP_B_FrameCount_ReadOnly = True
+  MPEG.Video.GOP_BitStreamForEdit = True
+  MPEG.Video.GOP_BitStreamForEdit_ReadOnly = False
+  MPEG.Video.GOP_MaxFrameCount = 18
+  MPEG.Video.GOP_MaxFrameCount_ReadOnly = True
+  MPEG.Video.QuantizeMatrix_Intra_ReadOnly = False
+  MPEG.Video.QuantizeMatrix_NonIntra_ReadOnly = False
+  MPEG.Video.Profile = 4
+  MPEG.Video.Profile_ReadOnly = True
+  MPEG.Video.Level = 8
+  MPEG.Video.Level_ReadOnly = True
+  MPEG.Video.VideoFormat = 2
+  MPEG.Video.VideoFormat_ReadOnly = True
+  MPEG.Video.DisplayWidth = 0
+  MPEG.Video.DisplayWidth_ReadOnly = False
+  MPEG.Video.DisplayHeight = 0
+  MPEG.Video.DisplayHeight_ReadOnly = False
+  MPEG.Video.MotionSearchSpeed = MPEGVideoEncoder_MotionSearchSpeed_MotionEstimate
+  MPEG.Video.MotionSearch_AlwaysHalfPel = False
+  MPEG.Video.UseFloatDCT = False
+  MPEG.Video.QuantizeMode = False
+  MPEG.Video.QuantizeModeVal_Intra = 35
+  MPEG.Video.QuantizeModeVal_NonIntra = 35
+  MPEG.Video.YUVBasicYCbCr = False
+  MPEG.Video.QuantizeMatrix_Intra = {
+    081013161A1B1D22101016181B1D222513161A1B1D22222616161A1B1D222528
+    161A1B1D202328301A1B1D202328303A1A1B1D22262E38451B1D23262E384553}
+  MPEG.Video.QuantizeMatrix_NonIntra = {
+    1011121314151617111213141516171812131415161718191314151617181A1B
+    14151617191A1B1C151617181A1B1C1E1617181A1B1C1E1F1718191B1C1E1F21}
+  MPEG.Audio.StreamType = MPEGAudioEncoder_StreamType_MPEG1_Layer2
+  MPEG.Audio.StreamType_ReadOnly = True
+  MPEG.Audio.SamplingFrequency = 48000
+  MPEG.Audio.SamplingFrequency_ReadOnly = True
+  MPEG.Audio.ChannelMode = 0
+  MPEG.Audio.ChannelMode_ReadOnly = False
+  MPEG.Audio.CantUseMono = True
+  MPEG.Audio.BitRate = 256000
+  MPEG.Audio.BitRate_ReadOnly = False
+  MPEG.Audio.CalcCRC = True
+  MPEG.Audio.CalcCRC_ReadOnly = False
+  MPEG.Audio.OriginalFlag = False
+  MPEG.Audio.OriginalFlag_ReadOnly = False
+  MPEG.Audio.CopyrightFlag = False
+  MPEG.Audio.CopyrightFlag_ReadOnly = False
+  MPEG.Audio.PrivateFlag = False
+  MPEG.Audio.PrivateFlag_ReadOnly = False
+  MPEG.Audio.EmphasisType = 0
+  MPEG.Audio.EmphasisType_ReadOnly = False
+  MPEG.System.StreamType = MPEGSystemEncoder_StreamType_MPEG2_Program
+  MPEG.System.StreamType_ReadOnly = True
+  MPEG.System.EnableCommentText = False
+  MPEG.System.CommentText = ''
+end
diff --git a/Windows Scripts/TMPG Settings/TV to DVD.mcf b/Windows Scripts/TMPG Settings/TV to DVD.mcf
new file mode 100755
index 0000000..265b898
--- /dev/null
+++ b/Windows Scripts/TMPG Settings/TV to DVD.mcf	
@@ -0,0 +1,141 @@
+object TMPEGConfigFile
+  MPEG.Text = ''
+  MPEG.WizardCategoryName = ''
+  MPEG.WizardSubFormatName = ''
+  MPEG.WizardCaption = ''
+  MPEG.WizardDescription = ''
+  MPEG.WizardTargetMedia = MPEGConfig_TargetMediaType_Unknown
+  MPEG.WizardAutoCalcVideoBitRate = False
+  MPEG.WizardAutoChooseList.EnableVideoSize = False
+  MPEG.WizardAutoChooseList.VideoSize = <
+    item
+      MinVideoBitRate = 2000000
+      Width = 352
+      Height = 480
+      VideoEncodeMode = MPEGVideoEncoder_VideoEncodeMode_Interlace
+      FrameRate = 4
+      AspectRatio = 2
+    end
+    item
+      MinVideoBitRate = 4000000
+      Width = 720
+      Height = 480
+      VideoEncodeMode = MPEGVideoEncoder_VideoEncodeMode_Interlace
+      FrameRate = 4
+      AspectRatio = 2
+    end>
+  MPEG.WizardAutoChooseList.EnableVideoGOP = False
+  MPEG.WizardAutoChooseList.VideoGOP = <>
+  MPEG.OutputStreamType = MPEG_OutputStreamType_VideoAudio
+  MPEG.OutputStreamType_ReadOnly = False
+  MPEG.Video.StreamType = MPEGVideoEncoder_StreamType_MPEG2
+  MPEG.Video.StreamType_ReadOnly = False
+  MPEG.Video.Width = 352
+  MPEG.Video.Width_ReadOnly = False
+  MPEG.Video.Height = 240
+  MPEG.Video.Height_ReadOnly = False
+  MPEG.Video.YUVFormat = 1
+  MPEG.Video.YUVFormat_ReadOnly = False
+  MPEG.Video.DC_prec = 2
+  MPEG.Video.DC_prec_ReadOnly = False
+  MPEG.Video.VideoEncodeMode = MPEGVideoEncoder_VideoEncodeMode_Interlace
+  MPEG.Video.VideoEncodeMode_ReadOnly = False
+  MPEG.Video.FrameRate = 4
+  MPEG.Video.FrameRate_ReadOnly = False
+  MPEG.Video.AspectRatio = 2
+  MPEG.Video.AspectRatio_ReadOnly = False
+  MPEG.Video.RateControlMode = MPEGVideoEncoder_RateControlMode_VBR_Auto
+  MPEG.Video.RateControlMode_ReadOnly = False
+  MPEG.Video.MaxBitRate = 0
+  MPEG.Video.MaxBitRate_ReadOnly = False
+  MPEG.Video.MinBitRate = 0
+  MPEG.Video.MinBitRate_ReadOnly = False
+  MPEG.Video.MinAvgBitRate = 0
+  MPEG.Video.MinAvgBitRate_ReadOnly = False
+  MPEG.Video.CBR_BitRate = 7000000
+  MPEG.Video.VBR_MultipassVBRAlgorithm = MPEGVideoEncoder_MultipassVBRAlgorithm_2PASS
+  MPEG.Video.VBR_AvgBitRate = 7000000
+  MPEG.Video.VBR_MaxBitRate = 8000000
+  MPEG.Video.VBR_MinBitRate = 2000000
+  MPEG.Video.VBR_MaxPassCount = 0
+  MPEG.Video.VBR_Quality_P = 0
+  MPEG.Video.VBR_Quality_B = 20
+  MPEG.Video.VBR_EnablePadding = False
+  MPEG.Video.MVBR_MaxBitRate = 8000000
+  MPEG.Video.MVBR_MinBitRate = 2000000
+  MPEG.Video.MVBR_Quality_P = 0
+  MPEG.Video.MVBR_Quality_B = 20
+  MPEG.Video.MVBR_EnablePadding = False
+  MPEG.Video.AVBR_Quality = 95
+  MPEG.Video.AVBR_MaxBitRate = 4500000
+  MPEG.Video.AVBR_MinBitRate = 1000000
+  MPEG.Video.AVBR_EnablePadding = True
+  MPEG.Video.CQ_Quality = 65
+  MPEG.Video.CQ_Quality_P = 0
+  MPEG.Video.CQ_Quality_B = 20
+  MPEG.Video.CQ_MaxBitRate = 8000000
+  MPEG.Video.CQ_MinBitRate = 2000000
+  MPEG.Video.CQ_EnablePadding = False
+  MPEG.Video.VBVBufferSize = 229376
+  MPEG.Video.VBVBufferSize_ReadOnly = False
+  MPEG.Video.GOP_SeqHeaderInterval = 1
+  MPEG.Video.GOP_SeqHeaderInterval_ReadOnly = False
+  MPEG.Video.GOP_I_FrameCount = 1
+  MPEG.Video.GOP_I_FrameCount_ReadOnly = False
+  MPEG.Video.GOP_P_FrameCount = 4
+  MPEG.Video.GOP_P_FrameCount_ReadOnly = False
+  MPEG.Video.GOP_B_FrameCount = 1
+  MPEG.Video.GOP_B_FrameCount_ReadOnly = False
+  MPEG.Video.GOP_BitStreamForEdit = False
+  MPEG.Video.GOP_BitStreamForEdit_ReadOnly = False
+  MPEG.Video.GOP_MaxFrameCount = 18
+  MPEG.Video.GOP_MaxFrameCount_ReadOnly = False
+  MPEG.Video.QuantizeMatrix_Intra_ReadOnly = False
+  MPEG.Video.QuantizeMatrix_NonIntra_ReadOnly = False
+  MPEG.Video.Profile = 4
+  MPEG.Video.Profile_ReadOnly = False
+  MPEG.Video.Level = 8
+  MPEG.Video.Level_ReadOnly = False
+  MPEG.Video.VideoFormat = 2
+  MPEG.Video.VideoFormat_ReadOnly = False
+  MPEG.Video.DisplayWidth = 0
+  MPEG.Video.DisplayWidth_ReadOnly = False
+  MPEG.Video.DisplayHeight = 0
+  MPEG.Video.DisplayHeight_ReadOnly = False
+  MPEG.Video.MotionSearchSpeed = MPEGVideoEncoder_MotionSearchSpeed_Normal
+  MPEG.Video.MotionSearch_AlwaysHalfPel = False
+  MPEG.Video.UseFloatDCT = False
+  MPEG.Video.QuantizeMode = False
+  MPEG.Video.QuantizeModeVal_Intra = 35
+  MPEG.Video.QuantizeModeVal_NonIntra = 35
+  MPEG.Video.YUVBasicYCbCr = False
+  MPEG.Video.QuantizeMatrix_Intra = {
+    081013161A1B1D22101016181B1D222513161A1B1D22222616161A1B1D222528
+    161A1B1D202328301A1B1D202328303A1A1B1D22262E38451B1D23262E384553}
+  MPEG.Video.QuantizeMatrix_NonIntra = {
+    1011121314151617111213141516171812131415161718191314151617181A1B
+    14151617191A1B1C151617181A1B1C1E1617181A1B1C1E1F1718191B1C1E1F21}
+  MPEG.Audio.StreamType = MPEGAudioEncoder_StreamType_MPEG1_Layer2
+  MPEG.Audio.StreamType_ReadOnly = False
+  MPEG.Audio.SamplingFrequency = 48000
+  MPEG.Audio.SamplingFrequency_ReadOnly = False
+  MPEG.Audio.ChannelMode = 0
+  MPEG.Audio.ChannelMode_ReadOnly = False
+  MPEG.Audio.CantUseMono = False
+  MPEG.Audio.BitRate = 256000
+  MPEG.Audio.BitRate_ReadOnly = False
+  MPEG.Audio.CalcCRC = False
+  MPEG.Audio.CalcCRC_ReadOnly = False
+  MPEG.Audio.OriginalFlag = False
+  MPEG.Audio.OriginalFlag_ReadOnly = False
+  MPEG.Audio.CopyrightFlag = False
+  MPEG.Audio.CopyrightFlag_ReadOnly = False
+  MPEG.Audio.PrivateFlag = False
+  MPEG.Audio.PrivateFlag_ReadOnly = False
+  MPEG.Audio.EmphasisType = 0
+  MPEG.Audio.EmphasisType_ReadOnly = False
+  MPEG.System.StreamType = MPEGSystemEncoder_StreamType_MPEG2_Program
+  MPEG.System.StreamType_ReadOnly = False
+  MPEG.System.EnableCommentText = False
+  MPEG.System.CommentText = ''
+end
diff --git a/Windows Scripts/Thumbs.db b/Windows Scripts/Thumbs.db
new file mode 100755
index 0000000000000000000000000000000000000000..784cb688d52716cdd60af21bf1c11952024dfcc0
GIT binary patch
literal 28672
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

literal 0
HcmV?d00001

diff --git a/Windows Scripts/dv2all.bat b/Windows Scripts/dv2all.bat
new file mode 100755
index 0000000..aa09c9a
--- /dev/null
+++ b/Windows Scripts/dv2all.bat	
@@ -0,0 +1,17 @@
+echo ########################
+echo Converting DV to DIVX...
+echo ########################
+echo.
+dv2divx.bat
+
+echo ######################
+echo Converting DV to RM...
+echo ######################
+echo.
+C:\Perl\bin\perl -w dv2rm.pl
+
+######
+DONE!!
+######
+
+pause
\ No newline at end of file
diff --git a/Windows Scripts/dv2divx.bat b/Windows Scripts/dv2divx.bat
new file mode 100755
index 0000000..6067262
--- /dev/null
+++ b/Windows Scripts/dv2divx.bat	
@@ -0,0 +1 @@
+"C:\Program Files\Java\j2re1.4.0\bin\javaw.exe" -jar "C:\Program Files\DubMan\DubMan.jar" "V:\Videos\DubMan Templates\Convert DV to DivX.djt" /r
diff --git a/Windows Scripts/dv2divx_2pass.bat b/Windows Scripts/dv2divx_2pass.bat
new file mode 100755
index 0000000..913737e
--- /dev/null
+++ b/Windows Scripts/dv2divx_2pass.bat	
@@ -0,0 +1 @@
+"C:\Program Files\Java\j2re1.4.1_02\bin\javaw.exe" -jar "C:\Program Files\DubMan\DubMan.jar" "V:\Videos\DubMan Templates\Convert DV to DivX 2 passes.djt" /r
diff --git a/Windows Scripts/dv2divx_2pass_HQ.bat b/Windows Scripts/dv2divx_2pass_HQ.bat
new file mode 100755
index 0000000..1e22866
--- /dev/null
+++ b/Windows Scripts/dv2divx_2pass_HQ.bat	
@@ -0,0 +1 @@
+"C:\Program Files\Java\j2re1.4.0\bin\javaw.exe" -jar "C:\Program Files\DubMan\DubMan.jar" "V:\Videos\DubMan Templates\Convert DV to DivX 2nd pass HQ.djt" /r
diff --git a/Windows Scripts/dv2rm.bat b/Windows Scripts/dv2rm.bat
new file mode 100755
index 0000000..3a1ed91
--- /dev/null
+++ b/Windows Scripts/dv2rm.bat	
@@ -0,0 +1 @@
+C:\Perl\bin\perl V:\Videos\dv2rm.pl
\ No newline at end of file
diff --git a/Windows Scripts/dv2rm.pl b/Windows Scripts/dv2rm.pl
new file mode 100755
index 0000000..460b888
--- /dev/null
+++ b/Windows Scripts/dv2rm.pl	
@@ -0,0 +1,125 @@
+# Author: Alan J. Pippin
+# Perl script written for a windows based machine running
+# Real Producer to auotmatically create rm videos for all
+# the avi files in a given directory.
+
+#$dvpath = "U:\\MiniDV\\";
+#$dvpath = "U:\\DVtoRM\\";
+$dvpath = "V:\\MiniDV\\";
+$webdir = "V:\\RealContent\\www";
+$ipaqdir= "V:\\RealContent\\ipaq";
+$hqdir  = "V:\\RealContent\\HQ";
+$producer = "C:\\Program\ Files\\Real\\Helix\ Producer\ Plus\\producer.exe";
+$author = "Alan J. Pippin";
+$date_prog = "F:\\cygwin\\bin\\date.exe";
+$logfile = "V:\\RealContent\\convert.log";
+$audiogain = 0; # Can be -12 to 12
+
+$makeweb  = 1; # Can be 0 or 1
+$makeipaq = 0; # Can be 0 or 1
+$makehq   = 0; # Can be 0 or 1
+
+opendir( DIR, $dvpath ) or die "Can't open $path: $!";
+chdir $dvpath;
+unlink "$logfile";
+
+$start_time = `$date_prog`; chomp $start_time;
+
+$numfiles=0;
+while ( $file  = readdir( DIR ) ) {
+    if( -d "$path\\$file" ) { next; }
+    if( $file !~ /\.avi|mpg|mpg2$/) { next; }
+    $numfiles++;
+}
+close(DIR);
+
+if($makeweb==1) {
+opendir( DIR, $dvpath );
+print "------------------------------------------------------------------\n";
+print "-> Converting all video files in $dvpath to web streamed rm files...\n";
+print "------------------------------------------------------------------\n\n";
+$fileno = 0;
+while ( $file  = readdir( DIR ) ) {
+    if( -d "$path\\$file" ) { next; }
+    if( $file !~ /\.avi|mpg|mpg2$/) { next; }
+    $fileno++;
+    $file =~ /^(.*?)\.(avi|mpg|mpg2)$/; $filename = $1; $ext = $2;
+    $date = `$date_prog`;
+    $outfile = "$filename.rm"; $outfile =~ s/\s/_/g; $outfile =~ tr/[A-Z]/[a-z]/;
+    $outfile = "$webdir\\$outfile";
+    print "-> [$fileno/$numfiles] Encoding $filename.$ext -> $outfile\n";
+    print "   Started $date";
+    if( -e "$outfile") { print "   Output file $outfile already exists...\n"; next; }
+    $options = "-t \"$filename\" -a \"$author\" -i \"$file\" ";
+    $options.= "-o \"$outfile\" -ad \"28k,56k,128k,150k\" ";
+    $options.= "-rs 320x213 -ag $audiogain";
+    system("\"$producer\" $options");
+    print "\n";
+    $date = `$date_prog`;
+    print "   Finished $date\n\n";
+}
+close(DIR);
+}
+
+if($makeipaq==1) {
+opendir( DIR, $dvpath );
+print "-------------------------------------------------------------------------\n";
+print "-> Converting all avi files in $dvpath to ipaq single streamed rm files...\n";
+print "-------------------------------------------------------------------------\n\n";
+$fileno = 0;
+while ( $file  = readdir( DIR ) ) {
+    if( -d "$path\\$file" ) { next; }
+    if( $file !~ /\.avi$/) { next; }
+    $fileno++;
+    $file =~ /^(.*?)\.avi$/; $filename = $1;
+    $date = `$date_prog`;
+    $outfile = "$filename"; $outfile =~ s/\s/_/g; $outfile =~ tr/[A-Z]/[a-z]/; $outfile.="_ipaq.rm";
+    $outfile = "$ipaqdir\\$outfile";
+    print "-> [$fileno/$numfiles] Encoding $filename.avi -> $outfile\n";
+    print "   Started $date";
+    if( -e "$outfile") { print "   Output file already exists...\n"; next; }
+    $options = "-t \"$filename\" -a \"$author\" -i \"$file\" ";
+    $options.= "-o \"$outfile\" -ad \"128k\" ";
+    $options.= "-rs 320x240 -ag $audiogain";
+    system("\"$producer\" $options");
+    print "\n";
+    $date = `$date_prog`;
+    print "   Finished $date\n\n";
+}
+close(DIR);
+}
+
+if($makehq==1) {
+opendir( DIR, $dvpath );
+print "-------------------------------------------------------------------------\n";
+print "-> Converting all avi files in $dvpath to HighQual single streamed rm files...\n";
+print "-------------------------------------------------------------------------\n\n";
+$fileno = 0;
+while ( $file  = readdir( DIR ) ) {
+    if( -d "$path\\$file" ) { next; }
+    if( $file !~ /\.avi$/) { next; }
+    $fileno++;
+    $file =~ /^(.*?)\.avi$/; $filename = $1;
+    $date = `$date_prog`;
+    $outfile = "$filename"; $outfile =~ s/\s/_/g; $outfile =~ tr/[A-Z]/[a-z]/; $outfile.="_hq.rm";
+    $outfile = "$hqdir\\$outfile";
+    print "-> [$fileno/$numfiles] Encoding $filename.avi -> $outfile\n";
+    print "   Started $date";
+    if( -e "$outfile") { print "   Output file already exists...\n"; next; }
+    $options = "-t \"$filename\" -a \"$author\" -i \"$file\" ";
+    $options.= "-o \"$outfile\" -ad \"512k\" ";
+    $options.= "-rs 720x480 -ag $audiogain";
+    system("\"$producer\" $options");
+    print "\n";
+    $date = `$date_prog`;
+    print "   Finished $date\n\n";
+}
+close(DIR);
+}
+
+$stop_time = `$date_prog`; chomp $stop_time;
+
+print "Total Time Summary:\n$start_time\n$stop_time\n\n";
+print "Press 'Enter' to continue..."; <STDIN>
+
+
diff --git a/avi2divx b/avi2divx
new file mode 100755
index 0000000..511ac6f
--- /dev/null
+++ b/avi2divx
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+MINBITRATE=6000
+MAXBITRATE=8000
+
+BITRATE="vbitrate=$MINBITRATE:vrc_maxrate=$MAXBITRATE:vrc_buf_size=1835:vrc_minrate=$MINBITRATE"
+PASS1_OPTS="-mc 0 -oac mp3lame -lameopts cbr:cbr=196 -ffourcc XVID -fps 29.97 -ovc lavc "
+PASS1_OPTS="$PASS1_OPTS -lavcopts vcodec=mpeg4:vhq:keyint=15:vpass=1:$BITRATE -vf pp=ci"
+PASS2_OPTS="-mc 0 -oac mp3lame -lameopts cbr:cbr=196 -ffourcc XVID -fps 29.97 -ovc lavc "
+PASS2_OPTS="$PASS2_OPTS -lavcopts vcodec=mpeg4:vhq:keyint=15:vpass=2:$BITRATE -vf pp=ci"
+
+INFILE=$*
+OUTFILE=`echo $* | sed 's/\.avi/\.divx.avi/g'`
+
+date
+echo "-> 1st pass: /usr/bin/mencoder $PASS1_OPTS -o \"$OUTFILE\" -idx \"$INFILE\""
+/usr/bin/mencoder $PASS1_OPTS -o "$OUTFILE" -idx "$INFILE"
+date
+echo "-> 2nd pasS: /usr/bin/mencoder $PASS2_OPTS -o \"$OUTFILE\" -idx \"$INFILE\""
+/usr/bin/mencoder $PASS2_OPTS -o "$OUTFILE" -idx "$INFILE"
+date
+
diff --git a/avi2divx4 b/avi2divx4
new file mode 100755
index 0000000..c86cc16
--- /dev/null
+++ b/avi2divx4
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+BITRATE=6000
+PASS1_OPTS="-mc 0 -oac mp3lame -lameopts cbr:cbr=196 -ffourcc XVID -fps 29.97 "
+PASS1_OPTS="$PASS1_OPTS -ovc divx4 -divx4opts q=5:br=$BITRATE:key=30"
+INFILE=$*
+OUTFILE=`echo $* | sed 's/\.avi/\.divx4.avi/g'`
+
+date
+echo "-> 1st pass: /usr/bin/mencoder $PASS1_OPTS -o \"$OUTFILE\" -idx \"$INFILE\""
+/usr/bin/mencoder $PASS1_OPTS -o "$OUTFILE" -idx "$INFILE"
+date
+
diff --git a/avi2flv b/avi2flv
new file mode 100755
index 0000000..89a7784
--- /dev/null
+++ b/avi2flv
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+if [[ -z "$1" ]];
+then
+  echo "Usage: $0 <filename>"
+  exit 1
+fi
+
+echo "-> Encoding $1 to flash video format..."
+
+if [[ ! -f "$1" ]];
+then
+  echo "-E- Unable to find file to encode: $1"
+  exit 1
+fi
+
+# set output filename
+output=`echo $1 | sed -e 's/\..*$/\.flv/'`
+
+# first pass
+ffmpeg -y -i $1 -s 320x240 -pass 1 -acodec copy $output
+
+# second pass
+ffmpeg -y -i $1 -s 320x240 -pass 2 -acodec copy $output
+
diff --git a/avi2mp3avi b/avi2mp3avi
new file mode 100755
index 0000000..8880d82
--- /dev/null
+++ b/avi2mp3avi
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+cat "$1" | mencoder -oac mp3lame -ovc copy - -o "$2"
+
diff --git a/avi2raw b/avi2raw
new file mode 100755
index 0000000..18f52f8
--- /dev/null
+++ b/avi2raw
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+OPTS="-oac pcm -ovc raw -vf format"
+INFILE=$*
+OUTFILE=`echo $* | sed 's/\.avi/\.raw.avi/g'`
+
+date
+echo "-> /usr/bin/mencoder $OPTS -o \"$OUTFILE\" -idx \"$INFILE\""
+/usr/bin/mencoder $OPTS -o "$OUTFILE" -idx "$INFILE"
+
diff --git a/avi2xvid b/avi2xvid
new file mode 100755
index 0000000..2a4f7fc
--- /dev/null
+++ b/avi2xvid
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+BITRATE=6000
+PASS1_OPTS="-mc 0 -oac mp3lame -lameopts cbr:cbr=196 -ffourcc XVID -fps 29.97 "
+PASS1_OPTS="$PASS1_OPTS -ovc xvid -xvidencopts me_quality=0:vhq=0:pass=1:bitrate=$BITRATE"
+PASS2_OPTS="-mc 0 -oac mp3lame -lameopts cbr:cbr=196 -ffourcc XVID -fps 29.97 "
+PASS2_OPTS="$PASS2_OPTS -ovc xvid -xvidencopts me_quality=6:vhq=3:pass=2:bitrate=$BITRATE"
+INFILE=$*
+OUTFILE=`echo $* | sed 's/\.avi/\.xvid.avi/g'`
+
+date
+echo "-> 1st pass: /usr/bin/mencoder $PASS1_OPTS -o \"$OUTFILE\" -idx \"$INFILE\""
+/usr/bin/mencoder $PASS1_OPTS -o "$OUTFILE" -idx "$INFILE"
+date
+echo "-> 2nd pasS: /usr/bin/mencoder $PASS2_OPTS -o \"$OUTFILE\" -idx \"$INFILE\""
+/usr/bin/mencoder $PASS2_OPTS -o "$OUTFILE" -idx "$INFILE"
+date
+
diff --git a/avimerge b/avimerge
new file mode 100755
index 0000000000000000000000000000000000000000..7b680b4631d10ad18d1e32b1c5a60258c22fd600
GIT binary patch
literal 63788
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%0ArGpt~H2SkR)gv6jTkdAL{s3
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
JTuP_we*hVT82$hN

literal 0
HcmV?d00001

diff --git a/backup_system.cmd b/backup_system.cmd
new file mode 100755
index 0000000..c46b8ae
--- /dev/null
+++ b/backup_system.cmd
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+# Remove any old backup images
+rm -rf /home/backup/*
+
+# Since this entire system fits on 1 DVD, blow away old backup database
+rm -f /var/lib/backups/backups.db
+
+# Create a new backup image
+/usr/local/bin/pack-image.sh
+
+# Burn the new backup image
+/usr/local/bin/burn-imgs.sh
+
diff --git a/burniso.cmd b/burniso.cmd
new file mode 100755
index 0000000..ae8c602
--- /dev/null
+++ b/burniso.cmd
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+wodim -v -dao dev=/dev/hda $*
diff --git a/copy_home_videos.cmd b/copy_home_videos.cmd
new file mode 100755
index 0000000..f672576
--- /dev/null
+++ b/copy_home_videos.cmd
@@ -0,0 +1,64 @@
+#!/bin/bash
+# DESCRIPTION:
+# Wrapper script around make_home_videos.pl script that
+# facilitates copying over the daily_clips to another
+# linux server location, properly merging the clips
+# created with the existing clips and playlists on
+# the remote server.
+# USAGE:   copy_home_videos.cmd <tapename>
+# EXAMPLE: copy_home_videos.cmd Dec06-Apr07
+
+SERVER="/mnt/p/video/HomeVideos"
+
+# Copy the daily clips over to the main file server
+pushd "$*/daily_clips" > /dev/null
+lastyear=""
+for i in `/bin/ls -1 *.avi`;
+do 
+  filename=`echo "$i" | sed 's/.avi//g'`
+  year=`echo "$filename" | awk --field-separator - '{print $1}'`
+  month=`echo "$filename" | awk --field-separator - '{print $2}'`
+  day=`echo "$filename" | awk --field-separator - '{print $3}'`
+
+  # set lastyear if we haven't done so yet
+  if [[ -z "$lastyear" ]]; 
+  then
+    lastyear="$year"
+  fi
+
+  # if we have changed year directories, remake the playlists for lastyear
+  if [[ "$year" != "$lastyear" ]]; 
+  then
+    pushd "$SERVER/$lastyear" > /dev/null
+    make_home_videos.pl -p -d .
+    popd > /dev/null
+  fi
+
+  # make the destination directory if it is missing
+  if [[ ! -d "$SERVER/$year" ]]; 
+  then 
+    mkdir "$SERVER/$year"
+  fi
+
+  # don't overwrite existing filenames
+  basefilename="$filename"
+  num=0
+  while [[ -f "$SERVER/$year/$filename.avi" ]];
+  do 
+    ((num++))
+    filename="$basefilename.$num"
+  done
+
+  echo "Copying $i to $SERVER/$year/$filename.avi"
+  cp "$i" "$SERVER/$year/$filename.avi"
+  
+  lastyear=$year
+done
+
+# remake the playlists for year
+pushd "$SERVER/$year" > /dev/null
+make_home_videos.pl -p -d .
+popd > /dev/null
+
+popd > /dev/null
+
diff --git a/create_merge_videos b/create_merge_videos
new file mode 100644
index 0000000..aaa1c9a
--- /dev/null
+++ b/create_merge_videos
@@ -0,0 +1 @@
+make_home_video.pl -m -d <path to video dir>
diff --git a/dos2ux b/dos2ux
new file mode 100755
index 0000000000000000000000000000000000000000..a1a2cec5164910cf18d392659c7d236fff23eef9
GIT binary patch
literal 19771
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
Y&t!aU3(r~1U-Z!>>=)o8NPdC;2c1}bi~s-t

literal 0
HcmV?d00001

diff --git a/dump_raw_video_files_from_camera b/dump_raw_video_files_from_camera
new file mode 100755
index 0000000..d540dd7
--- /dev/null
+++ b/dump_raw_video_files_from_camera
@@ -0,0 +1 @@
+/usr/bin/dvgrab --autosplit --timestamp --format dv2  --opendml --size 22000 home_video_
diff --git a/em b/em
new file mode 100755
index 0000000..90b80f1
--- /dev/null
+++ b/em
@@ -0,0 +1,3 @@
+#!/bin/bash
+/usr/bin/emacs -fn 8x13 $* &
+
diff --git a/fix_video_names b/fix_video_names
new file mode 100644
index 0000000..266f312
--- /dev/null
+++ b/fix_video_names
@@ -0,0 +1 @@
+rn 's/\.00\.avi/-00_xvid2500\.avi/' *
diff --git a/make_home_videos.cmd b/make_home_videos.cmd
new file mode 100755
index 0000000..ac3fa22
--- /dev/null
+++ b/make_home_videos.cmd
@@ -0,0 +1,72 @@
+#!/bin/bash
+# DESCRIPTION:
+# Wrapper script around make_home_videos.pl script that
+# facilitates copying over the daily_clips to another
+# linux server location, properly merging the clips
+# created with the existing clips and playlists on
+# the remote server.
+# USAGE:   make_home_videos.cmd <tapename>
+# EXAMPLE: make_home_videos.cmd Dec06-Apr07
+
+SERVER="/mnt/server/videos/HomeVideos"
+MAKE_VIDEOS="/mnt/server/videos/bin/make_home_videos.pl"
+
+$MAKE_VIDEOS -e -c -m -p -a -n $*
+
+# Copy the daily clips over to the main file server
+pushd "$*/daily_clips" > /dev/null
+lastyear=""
+for i in `/bin/ls -1 *.avi`;
+do 
+  filename=`echo "$i" | sed 's/.avi//g'`
+  year=`echo "$filename" | awk --field-separator - '{print $1}'`
+  month=`echo "$filename" | awk --field-separator - '{print $2}'`
+  day=`echo "$filename" | awk --field-separator - '{print $3}'`
+
+  # set lastyear if we haven't done so yet
+  if [[ -z "$lastyear" ]]; 
+  then
+    lastyear="$year"
+  fi
+
+  # if we have changed year directories, remake the playlists for lastyear
+  if [[ "$year" != "$lastyear" ]]; 
+  then
+    pushd "$SERVER/$lastyear" > /dev/null
+    $MAKE_VIDEOS -p -d .
+    popd > /dev/null
+  fi
+
+  # make the destination directory if it is missing
+  if [[ ! -d "$SERVER/$year" ]]; 
+  then 
+    mkdir "$SERVER/$year"
+  fi
+
+  # don't overwrite existing filenames
+  basefilename="$filename"
+  num=0
+  while [[ -f "$SERVER/$year/$filename.avi" ]];
+  do 
+    ((num++))
+    filename="$basefilename.$num"
+  done
+
+  echo "Copying $i to $SERVER/$year/$filename.avi"
+  cp "$i" "$SERVER/$year/$filename.avi"
+  
+  lastyear=$year
+done
+
+# remake the playlists for year
+pushd "$SERVER/$year" > /dev/null
+$MAKE_VIDEOS -p -d .
+popd > /dev/null
+
+popd > /dev/null
+
+echo "-> Rebooting the system in 10 seconds... Press CTRL-C to abort..."
+sleep 10
+echo "-> Rebooting now..."
+sudo /sbin/reboot
+
diff --git a/make_home_videos.cmd.noreboot b/make_home_videos.cmd.noreboot
new file mode 100755
index 0000000..a34a1a5
--- /dev/null
+++ b/make_home_videos.cmd.noreboot
@@ -0,0 +1,67 @@
+#!/bin/bash
+# DESCRIPTION:
+# Wrapper script around make_home_videos.pl script that
+# facilitates copying over the daily_clips to another
+# linux server location, properly merging the clips
+# created with the existing clips and playlists on
+# the remote server.
+# USAGE:   make_home_videos.cmd <tapename>
+# EXAMPLE: make_home_videos.cmd Dec06-Apr07
+
+SERVER="/mnt/server/videos/HomeVideos"
+MAKE_VIDEOS="/mnt/server/videos/bin/make_home_videos.pl"
+
+$MAKE_VIDEOS -e -c -m -p -a -n $*
+
+# Copy the daily clips over to the main file server
+pushd "$*/daily_clips" > /dev/null
+lastyear=""
+for i in `/bin/ls -1 *.avi`;
+do 
+  filename=`echo "$i" | sed 's/.avi//g'`
+  year=`echo "$filename" | awk --field-separator - '{print $1}'`
+  month=`echo "$filename" | awk --field-separator - '{print $2}'`
+  day=`echo "$filename" | awk --field-separator - '{print $3}'`
+
+  # set lastyear if we haven't done so yet
+  if [[ -z "$lastyear" ]]; 
+  then
+    lastyear="$year"
+  fi
+
+  # if we have changed year directories, remake the playlists for lastyear
+  if [[ "$year" != "$lastyear" ]]; 
+  then
+    pushd "$SERVER/$lastyear" > /dev/null
+    $MAKE_VIDEOS -p -d .
+    popd > /dev/null
+  fi
+
+  # make the destination directory if it is missing
+  if [[ ! -d "$SERVER/$year" ]]; 
+  then 
+    mkdir "$SERVER/$year"
+  fi
+
+  # don't overwrite existing filenames
+  basefilename="$filename"
+  num=0
+  while [[ -f "$SERVER/$year/$filename.avi" ]];
+  do 
+    ((num++))
+    filename="$basefilename.$num"
+  done
+
+  echo "Copying $i to $SERVER/$year/$filename.avi"
+  cp "$i" "$SERVER/$year/$filename.avi"
+  
+  lastyear=$year
+done
+
+# remake the playlists for year
+pushd "$SERVER/$year" > /dev/null
+$MAKE_VIDEOS -p -d .
+popd > /dev/null
+
+popd > /dev/null
+
diff --git a/make_home_videos.pl b/make_home_videos.pl
new file mode 100755
index 0000000..a35a983
--- /dev/null
+++ b/make_home_videos.pl
@@ -0,0 +1,352 @@
+#!/usr/bin/perl
+
+# Prerequisites:
+# This script requires the following linux packages to be installed:
+# 1) dvgrab    : apt-get install dvgrab
+# 2) mencoder  : http://www.mplayerhq.hu/homepage/design7/dload.html
+# 3) transcode : vi sources.list; deb ftp://ftp.nerim.net/debian-marillat sarge main
+#                apt-get install transcode
+
+use Getopt::Std;
+
+############################################################
+# GLOBALS
+############################################################
+$uid = "ajp";
+$gid = "ajp";
+#bitrate=3000 is a good choice to allow 2 90 minutes tapes to fit on one DVD
+#bitrate=4500 is a good choice to allow 2 60 minute tapes to fit on one DVD
+$bitrate = 4500; 
+$encoded_dir = "xvid_clips";
+$merge_dir = "daily_clips";
+$default_tape_name = "home_video";
+$playlist_extension = "pls";
+$dvgrab = "/usr/local/bin/dvgrab";
+$mencoder = "/usr/bin/mencoder";
+$mplayer = "/usr/bin/mplayer";
+$avimerge = "/usr/bin/avimerge";
+$avisplit = "/usr/bin/avisplit";
+$xvid_suffix = "_xvid$bitrate";
+$dvgrab_log = "../dvgrab.log";
+$mencoder_log = "../encoding_errors.log";
+$merge_log = "../avimerge.log";
+$max_dv_clip_size_in_mb = "1023"; #I had to keep it at this size to avoid errors until avisplit fixed them.
+#$max_dv_clip_size_in_mb = "22000"; #avisplit still doesn't seem to do things right for large clips
+# max_tape_grab_time=7200 Allows Max time of 2 hours to allow a tape to be dumped (good for 90 min tape)
+# max_tape_grab_time=5400 Allows Max time of 1.5 hours to allow a tape to be dumped (good for 60 min tape)
+$max_tape_grab_time = 5400;
+$dvgrab_options = "--autosplit --timestamp --format dv2 --opendml --buffers 500";
+$encode_options_pass1 = "-mc 0 -oac mp3lame -lameopts cbr:cbr=128 -ffourcc XVID -fps 29.97 -ovc lavc ";
+$encode_options_pass1.= "-lavcopts vcodec=mpeg4:vhq:vbitrate=$bitrate:keyint=15:vpass=1 -vf pp=ci";
+$encode_options_pass2 = "-mc 0 -oac mp3lame -lameopts cbr:cbr=128 -ffourcc XVID -fps 29.97 -ovc lavc ";
+$encode_options_pass2.= "-lavcopts vcodec=mpeg4:vhq:vbitrate=$bitrate:keyint=15:vpass=2 -vf pp=ci";
+$mplayer_identify_options = "-vo null -ao null -identify -frames 0";
+
+$SIG{ALRM} = \&stop_dvgrab;
+$SIG{INT}  = \&exit_now;
+$SIG{SUSP} = \&exit_now;
+
+############################################################
+# COMMAND LINE OPTIONS & PROCESSING
+############################################################
+getopts('hecrasvpmb:t:n:d:');
+if($opt_h) { &usage(); }
+
+sub usage() {
+    print "\n";
+    print "Usage: $0 <options>\n";
+    print "   -e         Encode captured raw video from camera.\n";
+    print "   -c         Capture raw video from camera.\n";
+    print "   -m         Merge videos clips found in the directory specified by -d <dir>. \n";
+    print "   -p         Create video playlists for each year & month of video clips in the directory specified by -d <dir>.\n";
+    print "   -n <tape>  Name of the tape to prepend to the front of each videoclip filename.\n";
+    print "   -d <dir>   Directory we want to encode. If not specified, <dir>=<tape>\n";
+    print "   -a         Use abbreviated names for merged video clips: yyyy-mm-dd.avi vs. <tape>.yyyy.mm.dd.avi\n";
+    print "   -s         Simulate Mode. Don't encode, just tell me what you would do.\n";
+    print "   -h         Show this usage\n";
+    print "   -v         Show verbosity\n";
+    print "   -t <min>   Time in minutes to grab from the camera (default "; print $max_tape_grab_time/60; print ")\n";
+    print "   -b <mb>    Max size each clip grabbed should be in MB (default $max_dv_clip_size_in_mb)\n";
+    print "   -r         Reboot the system once the script completes.\n";
+    print "\n";
+    print "File Structure:\n";
+    print "   <dir>/<tape>*.avi               MiniDV Raw AVI files\n";
+    print "   <dir>/$encoded_dir/<tape>*.avi    XVID compressed versions of the Raw AVI files\n";
+    print "   <dir>/$merge_dir/<tape>*.avi   All XVID clips taken on each day combined together\n";
+    print "\n";
+    exit 1;
+}
+
+if(!$opt_n && !$opt_d) { &usage(); }
+
+if(!$opt_c && !$opt_e && !$opt_p && $opt_m) {
+    if(!$opt_d) { &usage(); }
+    $opt_m = $opt_d;
+    $merge_only = 1;
+}
+else { $merge_only = 0; }
+
+if(!$opt_c && !$opt_e && !$opt_m && $opt_p) {
+    if(!$opt_d) { &usage(); }
+    $opt_p = $opt_d;
+    $playlist_only = 1;
+}
+else { $playlist_only = 0; }
+
+if(!$opt_d) { 
+    system("mkdir -p $opt_n");
+    chdir "$opt_n";
+    $opt_d = $opt_n;
+} else {
+    if(! -d $opt_d) { die "-E- Could not cd to $opt_d\n"; }
+    chdir "$opt_d";
+    if(!$opt_n) { $opt_n = $default_tape_name; }
+}
+if($opt_t) { $max_tape_grab_time = $opt_t * 60; }
+if($opt_b) { $max_dv_clip_size_in_mb = $opt_b; }
+$video_directory = qx[pwd]; chomp($video_directory);
+
+print "\n-> Changed working directory to: $video_directory\n";
+
+############################################################
+# MAIN
+############################################################
+print "\n";
+
+if($opt_c) { &capture_videos(); }
+if($opt_e) { &encode_videos(); }
+if($opt_m) { &merge_videos(); }
+if($opt_p) { &create_playlists(); }
+
+# Fix the permissions
+print "-> Fixing permissions: chown -R $uid.$gid\n";
+system("chown -R $uid.$gid ../$opt_d");
+
+print "\n";
+if($opt_r) { &reboot_system(); }
+
+############################################################
+# SUBROUTINES
+############################################################
+
+sub exit_now {
+    print "-E- Interupt signal recieved. Exiting..\n";
+    &stop_dvgrab();
+    exit 1;
+}
+
+# A little routine to stop dvgrab. It hangs when it hits the end of a tape.
+sub stop_dvgrab {
+    my $prog = "dvgrab";
+    my @pids;
+    my $numkilled = 0;
+    @pids = `ps -efw | grep $prog | grep -v grep | grep -v $0`;
+    foreach $pid ( @pids ) {
+	$oldpid = $pid;
+	if( $pid =~ s/^\S*\s*(\d*).*$prog.*\n$/$1/ ) {
+	    if($pid eq "") { next; }
+	    print "$date : -I- Stopped dvgrab Process id: \"$pid\"\n";
+	    system("kill -9 $pid");
+	    $numkilled++;
+	}
+    }
+    sleep 5;
+}
+
+sub capture_videos {
+    if(! -f $dvgrab ){ die "-E- Missing required component: $dvgrab\n"; }
+    alarm($max_tape_grab_time);
+    $minutes = $max_tape_grab_time / 60;
+    print "-> Max tape grab time set to $minutes minutes\n";
+    print "-> Grabbing raw video from the camera\n";
+    print "   Sending the status of grabbing the raw video to $dvgrab_log\n";
+    print "   Press CTRL-C once to stop the video grab and move onto the next step\n";
+    print "   Press CTRL-C three times to stop the video grab and exit\n";
+    print "\n";
+    if(!$opt_s) {
+	system("rm -f $dvgrab_log; touch $dvgrab_log; tail -f $dvgrab_log &");
+	print "$dvgrab $dvgrab_options --size $max_dv_clip_size_in_mb ${opt_n}_\n";
+	system("$dvgrab $dvgrab_options --size $max_dv_clip_size_in_mb ${opt_n}_ 2> $dvgrab_log");
+    }
+    else { print "   $dvgrab $dvgrab_options --size $max_dv_clip_size_in_mb ${opt_n}_ 2> $dvgrab_log\n"; }
+    alarm(0);
+    sleep 5; # Give some time to catch an interrupt if needed
+    print "-> Done grabbing video from camera\n\n";
+}
+
+sub encode_videos {
+    if(! -f $mencoder) { die "-E- Missing required component: $mencoder\n"; }
+    print "-> Creating high quality xvid copies of each video clip\n";
+  
+    system("rm -f $mencoder_log");
+    system("touch $mencoder_log");
+    
+    my $current_file = "";
+    my $current_output_file = "";
+    my $prev_output_file_dv = "";
+    my $prev_output_file_xvid = "";
+
+    print "   Processing All Videos in Directory: $video_directory\n";
+    
+    opendir(VIDEODIR, $video_directory) or die "-E- Could not open: $video_directory";
+    my @all_files = readdir VIDEODIR;
+    closedir(VIDEODIR);
+    @all_files = sort @all_files;
+    system "mkdir -p $encoded_dir";
+    
+    foreach $current_file (@all_files) {
+	next if -d $current_file;
+	next if (!($current_file =~ /\.avi$/));
+	$current_output_file = $current_file;
+	$current_output_file =~ s/\.avi$/$xvid_suffix\.avi/;
+	if (-f "./$encoded_dir/$current_output_file") {
+	    print "   skipping $current_file - ./$encoded_dir/$current_output_file already exists.\n";
+	    next;
+	}
+	print "   $current_file -> ./$encoded_dir/$current_output_file\n";
+	if($opt_v) {
+	    print "$mencoder $encode_options_pass1 -o ./$encoded_dir/$current_output_file -idx $current_file\n";
+	    print "$mencoder $encode_options_pass2 -o ./$encoded_dir/$current_output_file -idx $current_file\n";
+	}
+	if(!$opt_s) {
+	    $tempfile = `tempfile`; chomp($tempfile);
+	    system("$mencoder $encode_options_pass1 -o ./$encoded_dir/$current_output_file -idx $current_file 2>$tempfile");
+	    system("$mencoder $encode_options_pass2 -o ./$encoded_dir/$current_output_file -idx $current_file 2>>$tempfile");
+	    if(! -e "./$encoded_dir/$current_output_file") {
+		print "-WARNING- File could not be encoded. Attempting repair through avisplit. Encoding reattempt will follow.\n";
+		if(! -f $avisplit) { die "-E- Missing required component: $avisplit\n"; }
+		$split_size = $max_dv_clip_size_in_mb * 10;
+		system("$avisplit -s $split_size -i $current_file");
+		#print "$avisplit -s $split_size -i $current_file\n";
+		system("mv $current_file-0000 $current_file");
+		system("$mencoder $encode_options_pass1 -o ./$encoded_dir/$current_output_file -idx $current_file 2>>$tempfile");
+		system("$mencoder $encode_options_pass2 -o ./$encoded_dir/$current_output_file -idx $current_file 2>>$tempfile");
+		if(! -e "./$encoded_dir/$current_output_file") {
+		    print "-E- Errors encountered encoding $current_file\n";
+		    system("echo \"-> Errors encountered encoding $current_file\" >> $mencoder_log");
+		    system("cat $tempfile >> $mencoder_log");
+		}
+	    }
+	    unlink "$tempfile";
+	    sleep 2; # Give some time to catch an interrupt if needed
+	}
+    }
+    
+    $current_output_file = "";
+    print "-> Done creating xvid copies\n\n";
+}
+
+sub merge_videos {
+    if(! -f $avimerge) { die "-E- Missing required component: $avimerge\n"; }
+    print "-> Now creating merged videos for each day\n";
+    
+    system("rm -f $merge_log");
+    system("touch $merge_log");
+    system "mkdir -p $merge_dir";
+    
+    if($merge_only) {
+	print "-> Merging all videos by day from this directory: $video_directory\n";
+	opendir(VIDEODIR, "$video_directory") or die "-E- Could not open: $video_directory";
+    } else {
+	print "-> Merging all videos by day from this directory: $video_directory/$encoded_dir\n";
+	opendir(VIDEODIR, "$video_directory/$encoded_dir") or die "-E- Could not open: $video_directory/$encoded_dir";
+    }
+    print "\n";
+    
+    my @all_files = readdir VIDEODIR;
+    closedir(VIDEODIR);
+    @all_files = sort @all_files;
+    foreach $current_file (@all_files) {
+	next if -d $current_file;
+	next if (!($current_file =~ /\.avi$/));
+	next if (system("$mplayer $mplayer_identify_options $current_file 2>&1 | grep \"Missing video stream\" > /dev/null") == 0);
+	$current_output_file = $current_file;
+	$current_output_file =~ s/_[\-0-9]{8}\.avi$/\.avi/;
+	$current_output_file =~ s/_[\-0-9]{8}$xvid_suffix\.avi$/\.avi/;
+	if($opt_a && $current_output_file =~ /.*?(\d\d\d\d)\.(\d\d)\.(\d\d)/) {
+	    $current_output_file = "$1-$2-$3.avi";
+	    if( -f "./$merge_dir/$current_output_file" ) {
+		my $num = 1;
+		while(-f "./$merge_dir/$1-$2-$3.$num.avi") { $num++; }
+		$current_output_file = "$1-$2-$3.$num.avi";
+	    }
+	}
+	if (!($prev_output_file eq $current_output_file) && !($prev_output_file eq "")) {
+	    print "   Creating merged video: ./$merge_dir/$prev_output_file_xvid\n";
+	    if($opt_v) {
+		print "   $avimerge -c -o ./$merge_dir/$prev_output_file_xvid -i $files_to_merge\n";
+	    }
+	    if(!$opt_s) {
+		system("$avimerge -c -o ./$merge_dir/$prev_output_file_xvid -i $files_to_merge >> $merge_log");
+		sleep 2; # Give some time to catch an interrupt if needed
+	    }
+	    $files_to_merge = "";
+	    print "\n";
+	}
+	#store all the file names into one variable
+	if($merge_only) {	    
+	    $files_to_merge .= " ./$current_file";
+	    print "   adding ./$current_file to merge list\n";
+	} else {
+	    $files_to_merge .= " ./$encoded_dir/$current_file";
+	    print "   adding ./$encoded_dir/$current_file to merge list\n";
+	}
+	$prev_output_file = $current_output_file;
+	$prev_output_file_xvid = $current_output_file;
+    }
+    
+    #Now merge the last one
+    if (!($current_output_file eq "")) {
+	print "   Creating merged video: ./$merge_dir/$prev_output_file_xvid\n";
+	if($opt_v) {
+	    print "   $avimerge -o ./$merge_dir/$prev_output_file_xvid -i $files_to_merge\n";
+	}
+	if(!$opt_s) {
+	    system("$avimerge -o ./$merge_dir/$prev_output_file_xvid -i $files_to_merge");
+	}
+	$files_to_merge = "";
+	print "\n";
+    }
+    
+    print "-> Done creating merged videos for each day\n\n";
+}
+
+sub create_playlists {
+    print "-> Now creating playlists of merged videos for each month & year\n";
+
+    if($playlist_only) {
+	print "-> Creating playlists for each month & year of clips from this directory: $video_directory\n";
+	opendir(VIDEODIR, "$video_directory") or die "-E- could not open: $video_directory";
+	chdir "$video_directory";
+    } else {
+	print "-> Creating playlists for each month & year of clips from this directory: $video_directory/$merge_dir\n";
+	opendir(VIDEODIR, "$video_directory/$merge_dir") or die "-E- could not open: $video_directory/$merge_dir";	
+	chdir "$video_directory/$merge_dir";
+    }
+
+    my @all_files = readdir VIDEODIR;
+    closedir(VIDEODIR);
+    @all_files = sort @all_files;
+
+    print "   Removing all existing playlists from the directory\n";
+    system("rm *.$playlist_extension > /dev/null 2>&1");
+    
+    foreach $file (@all_files) {
+	next if -d $file;
+	next if ($file !~ /\.avi$/ && $file !~ /\.mpg$/);
+	if($opt_a) { $file =~ /(\d\d\d\d)-(\d\d)-(\d\d)/; $year = $1; $month = $2; }
+	else { $file =~ /(\d\d\d\d).(\d\d).(\d\d)/; $year = $1; $month = $2; }
+	print "   Adding $file to $year.$playlist_extension & $year-$month.$playlist_extension\n";
+	system("echo \"$file\" >> $year.$playlist_extension");
+	system("echo \"$file\" >> $year-$month.$playlist_extension");
+    }
+    chdir "$video_directory";
+}
+
+# Reboot the system if requested
+sub reboot_system {
+    print "-> Rebooting the system in 10 seconds... Press CTRL-C to abort...\n";
+    sleep 10;
+    system("sudo /sbin/reboot") if(!$opt_s);
+}
+
diff --git a/merge_all_new_mpg_clips.pl b/merge_all_new_mpg_clips.pl
new file mode 100755
index 0000000..6d5e81c
--- /dev/null
+++ b/merge_all_new_mpg_clips.pl
@@ -0,0 +1,56 @@
+#!/usr/bin/perl
+
+$mpg_dir   = "/home/pictures";
+$video_dir = "/home/videos/HomeVideos"; 
+
+opendir(DIR, "$mpg_dir");
+@year_dirs = grep { /\d\d\d\d/ } readdir(DIR);
+closedir(DIR);
+chdir $mpg_dir;
+
+foreach $year_dir (sort @year_dirs) {
+    chdir "$mpg_dir/$year_dir";
+    #print "Parsing $mpg_dir/$year_dir\n";
+    opendir(DIR, "$mpg_dir/$year_dir");
+    @month_dirs = readdir(DIR);
+    closedir(DIR);
+    foreach $month_dir (sort @month_dirs) {
+	chdir "$mpg_dir/$year_dir/$month_dir";
+	#print "Parsing $year_dir/$month_dir\n";
+	opendir(DIR, "$mpg_dir/$year_dir/$month_dir");
+	@mpg_files = grep { /\.mpg|\.MPG/ } readdir(DIR);
+	closedir(DIR);
+	foreach $mpg_file (sort @mpg_files) {
+	    #print "Found $year_dir/$month_dir/$mpg_file\n";
+	    $mpg_file =~ /(\d\d)(\w\w\w)/; $day = $1;
+	    $month_dir =~ /(\d\d)/; $month = $1;
+	    $year = $year_dir;
+	    $merged_file = "$video_dir/$year/$year-$month-$day.mpg";
+	    $new_merged_file = "$merged_file.new";
+	    if(-e "$merged_file") { next; }
+	    if(-e "$new_merged_file") {
+		print "Merging $mpg_file with $new_merged_file\n";
+		#print "/usr/bin/mpgtx -j $new_merged_file $mpg_file -o $new_merged_file.tmp\n";
+		#print "mv \"$new_merged_file.tmp\" \"$new_merged_file\"\n";
+		system("/usr/bin/mpgtx -j \"$new_merged_file\" \"$mpg_file\" -o \"$new_merged_file.tmp\"");
+		system("mv \"$new_merged_file.tmp\" \"$new_merged_file\"");
+		$new_files{$new_merged_file} = 1;
+	    } else {
+		print "Merging $mpg_file with $new_merged_file\n";
+		#print "cp $mpg_file $new_merged_file\n";
+		system("cp \"$mpg_file\" \"$new_merged_file\"");
+		$new_files{$new_merged_file} = 1;
+	    }
+	}
+    }
+}
+
+foreach $file (keys %new_files) {
+    $newfile = $file;
+    $newfile =~ s/\.new//g;
+    #print "mv $file $newfile\n";
+    system("mv $file $newfile");
+}
+
+
+
diff --git a/merge_mpg_clips b/merge_mpg_clips
new file mode 100755
index 0000000..2528772
--- /dev/null
+++ b/merge_mpg_clips
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+echo "-> Merging the following clips: $*"
+
+/usr/bin/mpgtx -j $* -o merged_clips.mpg
+
+echo "-> Clips merged to: merged_clips.mpg"
+
diff --git a/mov2avi b/mov2avi
new file mode 100755
index 0000000..f9cf2d1
--- /dev/null
+++ b/mov2avi
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+#transcode -i $* -y ffmpeg -F wmv2 -o $*.avi
+#find . -name "*.mov" | xargs -l1 /home/ajp/bin/mov2avi
+
+mencoder -o "$*.avi" -ovc lavc -oac lavc -lavcopts acodec=mp3:vcodec=mpeg4:vbitrate=6000 -srate 48000 "$*"
+
diff --git a/setprompt.pl b/setprompt.pl
new file mode 100755
index 0000000..c1c4280
--- /dev/null
+++ b/setprompt.pl
@@ -0,0 +1,50 @@
+#!/usr/bin/perl
+
+$host = `hostname`; chomp($host);
+%hostaliases = (
+		"hpesajp" => "hp",
+		"pippin" => "pippin",
+		);
+$pwd = $ENV{PWD};
+
+@aliases = (
+	    "/tmp_mnt/auto=>",
+	    "$ENV{HOME}=>~",
+	    "/net/=>",
+	    "/home/=>/~",
+	    );
+
+$host = $hostaliases{$host} if defined $hostaliases{$host};
+foreach $alias (@aliases) {
+    @alias = split(/=>/, $alias);
+    if ( $alias[0] ne "" ) {
+        $pwd =~ s/$alias[0]/$alias[1]/;
+    }
+}
+if ($pwd =~ /^(~)?(.+)(\/.*?\/.*?\/.*)/) {
+    @prec = split(/\//, $2);
+    $pwd = "$1($#prec)$3" if $#prec;
+}
+
+while ($pwd =~ /[\/]+([^\/]{13,})/) {
+    $segment = $oldseg = $1;
+    $segment =~ s/^(.{4}).*?(.{5})$/$1\.\.\.$2/;
+    $pwd =~ s/$oldseg/$segment/;
+}
+$whoami = `whoami`;
+chomp( $whoami );
+if ( $whoami eq "root" ) {
+    $user = "\\[\\]ROOT\\[\\]:";
+} elsif( $whoami ne "ajp" ) {
+    $user = "\\[\\]$whoami\\[\\]@";
+}
+
+#Colors
+if ( $ENV{COLOR_PROMPT} ne "no" )
+{
+  $host = "\\[\\]$host\\[\\]" if $host;
+  $pwd  = "\\[\\]$pwd\\[\\]";
+}
+
+print "$user$host:$pwd> ";
+
diff --git a/vob2avi b/vob2avi
new file mode 100755
index 0000000..3fb7656
--- /dev/null
+++ b/vob2avi
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+BITRATE=6000
+cat "$1" | mencoder -oac mp3lame -ffourcc XVID -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=$BITRATE - -o "$2"
+
+# Deinterlace - DV to DIVX AVI
+# cat "$1" | mencoder -oac mp3lame -lameopts cbr:cbr=256 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=6000 -vf pp=ci - -o "$2"
+
-- 
2.34.1