From c557492f3e191e64e0a2737152e4c77a35476e1a Mon Sep 17 00:00:00 2001 From: "Alan J. Pippin" 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 zcmeFZbyOVN_vqOKf(Hu_975v_1b0uc;O>Or9vYY6fdGNV0tAA)yM_?lEl6;;#@%&_ zd*7XTGi&{3?t9-qX1%rEW__}&j#kx?bnUZG{T{|$%BUb&2K_%o1cV5>e?S8v|99aC z!0{u02@VMK1UPu){^8-_??4a;IQ-x8zt9u71FrQ2(0J+qK$C)=0z9@k3IHkq8UQ)~ z1^_0&GXN|AY=Fmh#|1PVz;gh600IC)0BQg+0Ac_V08#)l0CE5d07?KVfR_M|=4X48Q{LnEn-@*#Ou9H~=^SxB$2TcmQ|-_y8W$3IJLVKnOq> zKm-gr6#!KLHGs!7{{S5R zFCnU+55S)@&=!&)dq6vaJb*j-_d*Etn162cvG4r9N%~dICKGQv0^(z$$A$;wvHkuN zK>|HN_^19y{cp-b0uudr?4*D^_MQJk9_vQ{3V6Jye_Q`!eN&GE2$08q`=7}F%>5Gq z6&gMcSU?`H{c#R|y#B}M@;@^EALonzYWzRWDUbF1oALiRSAYTj?f7Q}(*E1=|2VJw zSL6S2tcnBi|BQcM;P}59|8hXw|JV3`oI@Yy6iomv0Bryr09^n*0DS-h07HOx07d}s z0gM4m089bQ0L%d_04xEl0IUIQ0Biy50PF!i05||Z0UQCG0Gt6_09*mw0Neo{N3$n@ z7r;jVZvY>F$9wk!G$z1f9~c1oowXd^(20X$4Sw1DtYfny^iRa}rXE=U3wB#sMu zm;qrSsRC1^1PFM1qM&2<1b60LgNl@3tcFKx zsSqZUzaF)eSw=q^X41Ld5rW#gHl`yX6(*3X0M1Lm%X8|@EY^FY^EKwF98N)o{)wbM zrbD_Pdk9(TzA;6@%la$IcTwce?jj0T(HA+J`S&9#bR8=2gbH5r|*E}CUXGH~*x8!DJm4@vmpn7IPH7ZJh>otq$od?iFX>*4U zX4MfR?EaYueghE4vzQ_*PW)H4{9-%3w_&{jIxBLLq{N| zJ1-68d|7%TvbB5S;kWG*&flDOa%!s>Y0JfMj-mcTO3TTonN<_LQTDCIUV+!xZ-;M4 z)8`7c>yEI}#MMQs=8;boIxY;;l&l#G4@hl~{dU=~&+;dvLwl$Y?zi&eb*LP3Koor* znMFz@iUa7+RtrMh=_Aa0<9YxK)x{&1u0LK(;l_^16#f%)*U{Zj#L1ZXjU zf7|{?C_iPvV2|Nug4K(pl;Vl-=!Q8Z3Dh$BUlT0!RiK}&U5ok_Ir#9@2|*=R zNP;=|si|7@FcH-fR%-P!7lvKAymoY7J^xM@>efsgoxjmE{CSik8QF~yEHH=QtvF@8 z>i}so4&R`rG0%HbB#Nwt!r?k|LNW1e!6e4otuNnX?9$l;{kG(u1T}>0w_svHN8{%u z<|SSmA)~kos2IFRSf8^;&j{)AO4@wOq*PD+8BAKyOE7k2T@^orSbj6L7RF?Tu#S}K zsooBEa2kG_sHp9Enwb}~AYHc*(t#KV`@<=AK)9~jLPp}%GEAr;3tCzUOOqQjYo=a! znIL2*CgOFdWu~s zQRYdv^jrS=R55Ne!_x9*RKGJiZ%Teb^DyrC8} zi}p-hr-xn;i7xBuCbVn6jojT#$7+&4NmUx7yt5u_K2*nKe@_OXzKA#Jy*7COl}I{` zeH1)GVwSMtaU=8I%oY<>#op4tUBvz={v3}hpN?of=1unrLC6C7L_1zQjzYJ3w5Xya z!IG~ zMCbQ4WlmPKcd!(Uo;G}WxDew<9ZXLHeA?0a{X`Aff@r*!1w z7t94YDSW}I?HN{b7r7GH}m-o{4A zvFFlYmHcQ}w^dG~HkDteJfn+mh`-pqgmA_^*RAb<=m2I}vSpW&6O!qDk3#OGcPuu@ zY+H0uPjOWmCZpX?EXik&(5*kBwK8JAM(w`b$I5GGn0)a7qDYR^t)uwv03U>jel_7E z7e3lL7>nM~G^t1&{uX*1Zr}akqo>#Dn&*gN)zSm#a|BN$WZR+ldE;%^sud!+&u7sb z&sRaW&x9uuzzegz6c-)uC++#VoHm_KR~qe5+8hV-dL~r__HC)_`lOL8M1b@J6WW)8 za-(}w+RyVU>}IE_W1T#2msU4uousD7|L>qmr1i&tyzijb67 z*FcDQut=G9sbjq?O7+Pc1)gPwjeb%LfAi~Q#E8fxZdYEU&tjalUaLbh^8$Ufss6r( zjDPo%dyzwS=-2NZI0B6P$`y#+$C<_A`Pw{htt;kmx0rZ0GmB^Ya{}vaq7}vWm@Q79 zWCy?%`7O`1;YZCIxA;x;#Z7B8|!g^)0P(sjC7X=tSC3M zfe2TDl3pnO!D&v*Q6mU5rbo2E37_UI@V} zZoP|gM@(vCezVMeemQ%ubBHX3^6@b>g7z!IeKl@g<8Wa{&JlE5vw&@DilgWqp;>d3nmaL2Y4C9*@|9Cp zPQn->((}|ck^=0|vIS(#hW0LWLd)^WYa<+S{xjsT-}f{1b+y3@D|%o0D;sC5jFc~h z+3=Z`u9JN<-q#cu*9DW732g5cL~q0k@nFk8ov9ag@}C^dwv*D{TM1s?XlP(E^~eoD zZr$>0R7adl7Y!nCHF&LOl*uBb*P#XKTZCY%@+9Ml&QO=g7K2c!T6CkZ^bQeGL(kG^agq0>Ww<@EhBF zy-qI^{)m>=h$+VN83D?}TWkIjR&GcI4YC3ZS*Xq^Zx%7*0fgNZcEt_$|NbSI**Az* zAK{&7H$Jj>m2xb7X0hL7bhiy|?1gUjv{2A<#_lCag89wpZRB=&IV+kQ3i!!)bl)#Q zVB)hild>A;AI@$MAd9gWG*cV919r5`$CKhhSqH1ink4ge%=({ZHhkmqme{^yd8rw_PpqP4i4;3- z!AFsL|7W;0&-(d7N%qUc(#LRO`urgWVd1+Xyk{cUUY#`|oZRh9PiIj64&E%&y@VbP zGZN+$6i2re(;SmyZK1Zp!wL3aP0~%CpWD-dW8N`)#%KHx8FwgZ_?aYVwTq zJbm@#5`R9^a6Vqn%x;gAah{QgPYAaz{cKx!vq-mQ<1-4(o;%hK?MC?2H8wQl>TMk} z!H;r;ZwTX0-~T45E0N96b8qvuospof8wb}U()l*l{4%Ne%nbZCcR`TZd}e7Kv!&_z zXQ(FB|CiN%U_L$SA4$m_dAZ8{@}hNntJz7{z3yl z#-XvEB^aO3d1htyVKV1@H+L0Fm0r0o4IQ%kHfYTY)@*1)3JA)3h{foC_FcC9! zEyUnmZwK};NbqG|wvA?d%fe;6fjHlX%7BWlFllrRVyuI)q>81W&pw)Luk? zEVUaihUV)BeP99UAA7V6IxYx|o-x=tL5sL&95!$?a3$7|+4Iq{>66hRNuOKe6$)sx zY&^~S`n2xAvfrW->DP@A*8G%Sp9-xaFSbpnF0xc#T-)YKDbtPGV-#BOW3o9oply0m zVDt4=AKnEG!l(D`x!_n@&#lyAijoi8QIel{Qf9!Px>%9T&<3Rh1C7 ze7c&Z)G?_-hG)gYJmbb&3dczc>HE9jqWQGz$D}FRM~vp*Ns3i}Ar9 zK&6(2ymc3qQf`-C>PT*cYY!l%0vD)z|H-Cq!m_>6ap5GVK_&SNT~?Znqi-BR-QoB4 zv{|jOZC;L#@y8zz zL=?%ArO;Y+5Nr!ue8#Mr!P2{|=;_RVjVtL%TNhGx_5i{ysZGwEX`6Yyp?F38@f7WN zl?cl#JgB?G4SJcNazq(QJ$7m|QOk3TcT$B%N7NQXg~k5!SY~JrY9Oz>kyYv*08wB` znwcQR+H%9AC3-0ll@)F;v}R$?msz-jz5ME#^@v zoj(qZjIB$K5aI6<7;+-tc=PI}y*s>1wq+%#B6Ga0EHILLB28Mq4#UP$${Mv|KyhZ*UbUNQs7rT=bJlx#`M&Z2P3id1M+B*o!{ zbCLU#TokqD{neu(gv=CZna<1%cgN&8HImYTK66k&ok_VxVDzm)r=)k$>=(@>n?bhM zB=^V5_87MI9qHu!lpO*vYgi8Vk2e-EH*d8^d_B0_6sRH^$^D(`qHka4Z-gBmkll)n z(H`FZ@J@-9NdU#Nv?JLiN8C8F<*j#lMzr|DJ{ENuGLNnvp4QgJJ1UV)-<`GM#x%Td zwzyDyPAqi$m}0V%q?W{7k1XR3~)HI_*Uw?((4_4y0ntlW*!79!{#(o z>Zreg@V)WVi_CnRq!k<8;^PWcS~22^h{37Y@FNWu15@kC*hb7yFsOF%XL|7Q4*PCYSf7zFFzoM~2T2u@i}ul29hBQ4C3@Pzyc2$7!c{7j~lckntH*Qy()i=&I+ zs;#Yf?J$NqK^ufejzXe0>@}Q?~3Vi@o`Bv=H)CKdEl9;^-H5QX;rS0t&btA(K zKL*~5{Ldx4;FHu99nzzfZMc%JrWM(cpYofy++;`Q2y0AcP=~EP7oV)wyK1h;OQmTr z1_iiAXn2US_uL|^E>2P`DvY1*B)(8e(jHxkyBqIf!(Us5N$+$wmk8RB&gvuyGE#6Q ze-)&idUEX04UR0M951mG?fS)D8@$rF`)0GxShSv<114_f9#&3IzcFkiCAe$lLwocz z{6#IUjz=iRw_Y54vzwMU_pn+;+4(dmEbrahKWB{$ABs!%FtWFeZC_XCU->f}5xh^C zciNN^h$*+*g_lQvcqcnhwUu*z`LCLqaQh zj~572$@~2fJlS6Q@YLIl@}&`)v3dKA^5%x0%)>&J&oY4MUQAhfnzRIwpBrJjKlxW5 zK*VngU!Cp=ER4LcRI_7}@eVfSBj?{TFbrLdB#^|1Dp}=pS{G{F3!BM`B%UauG%L2% zR6l_5FF*H6*4K{4;6}O5^pZ844kw9G1`9Lf?g;E>6}FD z527_(QXC&Z>NS4S&zh$56RNEsqXT7YPKu6Bth5q$V~r-C&TBtNk#_iZe7Pp z3#wE77OsvS-4hK(mwOvy`paJfHMzQ zH_#WxZ@26Z3;(KC*SvQ5>dRjDBjGp8u2ot~l?K6>^O`~1(6*9UqvQiT?k+@=~OAR< z5=*z}0FfJ|4Ih8s5`x`p!t|twq#wQYIH;>+S~;7O72AYgs73Z#*nm@)oCVswA93E( zAQ-!(9nDLa7(B-&TW3#Kj#8MRU}6%SBOhgvqZnmsdLsF@R$Jcaj$QSO{&~SCij>W) zUGNX5eJh_H%Nx-e0^IVKiu`-wY81oZ9PW}!dVDQW;XiR*#m-Z-nhoLh(NgY+X@|v( zADH2PnyZWxbvHzl-Vpcs2i_CJIx)YSku!;*NA!X)k~z4a?MX^{;k7>(bPybIBMRf# zYa!oa#gPh!r)QRb8j*IWqnm-msl}3IFMo!nE(V!(x|ZwHwsn%VV!dsa5a!^g3^MQZ zKDQcO;amO6*sHk;9s@^Ts;JCZ>GI?iEc7$geC3dO!!8YG$^fi(;$2PwY|uzg8Q-b{ z7f3hh?tAy)_>eVQnsbI1xw30c;gq^ErF*nL8yL#0@WWgS`L8&<@G-{tw}#jcBwteo zReMu=44#)12zISWug%6Ov(Mq&{5TVhvk(%nj}%%}n{YuhavfjW-Oa<}#Z82YXF0nZ`q)!H6QnW!u)TH?Nys-exO($}^KG}0ki~||WJV{! z<^t(qaAo|E-TofOi=c(YTLrftD8V&KwD-eKc8!!w`ycM<8d)eM$Kzid)7SOBi*uvA zrwf}=px3Xl{CQ!JpT^&o#&t2n*~Na)+HGiKxjD0*@nw&N#;NM~( zZ-{|icaBvyn4BG$q#gM2A3#)|YCod{RFwPey4cu9Gu^Es2vOcbVjIVt-#z1=$Rrfh zVb#Biq*+5FjrAj16?P{W)ZdyB@u!{0sTH&WqF^UDG$!#an9$Up=smx91oTx6WY_f$ zY+rb=H#P7P3ws_ilsXyy;kqjBr=7$8w0JDTnc9wcd!$1$kzqdZ>B~2z9=-J_iz$=a z(_#fBl`1cZej(}gIi5a*b4vJV*xK69FFm-$`5niFXsah14O+j##jD>&q^cv1T~G4T zo>G%%s`Iab=0!^gGIHeYSkpb|n1~8YA{!4PtsC<6Nv$%X7cI?I^@wK=F4ZTTJn*C; zvNf_#zf(GU-jiDv&P)cKp`Crd${1S@m>jefDqDXklJOk`yY-wftXm$GvNOK7Rgdvzzx-oEYE^u?Q@>Aw zSG=u)XKG8ai(WxLMj1iyFbx=}|F`_dPk=A8;rotq1XZ{lQalrAXCeQc_SNeP3(JE} zac^TVWuskI!AjVArHP`)FqP3{JlWGhcb&FU1$>Fb-Wl0z)i*!)?Q>&j;m~c%+yS&i z4pd+uY(|+Y3+I1*&VVu+R)wA%m5+9@lB+=Wjlu^HpOi!i{WPn( zGPLn$>TbUAt5*zk*oRY+cA?-|XI-M18-6+RG#G4eIY)Lk>L?JIho5k<<6^a;t)Cqg zKMR(cww$9_%@=~rLFIpr+vSFQdzIm?Q!7Z5#$}HU9e2HBD3(*;xZd}eV9aG*BP`B68qDt-aNc;HwnHs$M0NMdD0)32rhR54P8}3LIoOzTG zWVKW3u-2280ryUI{jO9VGFeF1tDt+~6YXfjPUIYhKB+-Jlkfnvvo3_;X8u8^^XqUP z&w=UL=R62u9OxDQEf~KJ4ZoXIorg167-BFX7}9`3<6N3eRJuaE&lxD`aVZ`kL#ZhY z>2lqte0#NO$+r@w{vlBbkz&3;!^eSfJ6*tElGh`CvmBBdNG{4`&#R~)9WjYCq8S}3 zbS&DamJV3J(5r|+rz>G*T_?nt$Qw^J*nj&nk#VJ`6T4k$IKiq*Dby;Y4DR2kY+IJu zM|Mm=HwO!JymRl7n8@hX+#N-Zq-LO#=?@^1i_MxHZRaX)+Y8?4m&%);vfhwhhLJar zdy8V#oHqTc!t_*b_TMivQOy`9lnUoP!Z&Up_r0FCEY*Dgb?CzCOTlky>+DHr9koxF zn$-Z)4P_elkhQ?weq~ItL$?*$m5xdsdzU~1Jb;58)-=qW!m>9}T-i$o)$Le>Fr^I6 z2EbEMds@i7QY}jz`OCPxCR0Z}UOKfSjQnc2S&VS9zPQ#{{!y8-`e9|QT%=prmt?)v zsG+jaE5ww^_e&At+3>rruq}nby;}(LQL$Nzc?7~t-d60O{oFfi-Edi!-|DpD$E!$G zw`f9R8}+{$!-b+lzWRNvKgRJvO0~>_Mj{0u3&I{iIj_mWL?@6@wv;=mFyDl=oc7|Y z%Ha)!P*`Xnv7@@)e;mt!@kcSo_7fpd&L{io##kCBam%vOMTnzZSlAIzPIYS|m?CD8 zr41z2py$iKAq9DFaOapF6~6~-y_8-siM<}tM}LFz5%;m}jupPG9#a40>r#)SDj>sg z&kPDN+D9aJhlf2mkpaW`GLxe1j9tSm0+Urk&TB1km-7p#BR80kl}dy#oz$pJ=x62K7Eg6-^}5xO+)uC;n{cV-5;EITl}u0y2^5AC-M%u$ZjKyymVd z4<(oF-ifyt$zDmgjjd6Dg-r7MRn``^i!!mg6kTjOj8IJuwh>|?XdyAJ544UFa+9~e3KrAPnD5CSo>M#cN;f1 z22s0!B|h6{`5sH2F8L)NUa|6W@0E1OlloE9;7FIlo8c|ey?vRA9+3J`|-Nl)hJ2jy~J**$GD$*_ct3OkL4 zRSxy|`+rcfZe)(c3s!D%-kK;IgtQf!V8c=bM)Z?w`#A%*u|{7khF?E`(&V+C2^Y>i zHA1f#B6?-$K1?qPA0vQ|>E%q!uVOmYO6tcB6T{Qsk+}?o3OHI!(|u_wVT0_If)G|> zMeKHY+3(k*}&axG?s;YSXb%Mw(^ZZ?G2i3OzYa zyI{H~|Diua47qwJN#K_feGQasVDPx-MDBOnGFvm$PN!Z-_wt?rT~MBJYwqzHB$?f` zS;Y95}X_&Im05<$^JF7$JKEP zWRx5RNe{lqh+0{2iS57XRP==Lm++Mte|HFWiBlsDOFk=D{uON8|Fo~S>hbK9O9jp- zbilVa5oeAGJ;4*C`1;GSp_LUn8&1Mx8qZLUBg767 zWW_d?!PihLW}alRLpK{^)>Q;OfP|nE1u2fi_9UqI#IZC9RM;(n*U(E1o+Bhq{hE?$ zokR}VsEGP=syn`Wb&ZJ^)a*BH^L?v%TUsP?^WWyMq@ZI2(9~Nh!FD{(YJ}qv1tktK z+{xRgoOr(w@sx5s)r|%j(65GlJXQ2n-}OR2e0J8Nf_O!i5^=sJ2~g;KjG( z_!2!Oe5)iV`>d|5W*2-&r)iMDTv&=HB4J1!>G|jR04(hHy=3>^y(=@;<<-yD^}7<0 zh~}bzRT*h=X(6wRVN&+XfFV6CTx%RD8LDmw0Vx(57?zbPd;<^2?=0%ef9X)%#L-@3 zE?w6AHEIx#j|ky=KE>Hk>nbCXjUDvK+d_xZyU)!f1mj!JI|g`XyN=6y?0In`eY_!g zW4fS^BlZ#C(xn#6=x$&!Z(^3VuyXE;W#Wc%OAs-b;sF#ykU5CE(`62Z8M7TUwySW z>J*31*u!(V)`o`(P6K`7z(v?SEm(m?Uokc7cdkhr@-6opozM3 z{@*M)wea^FGDX9yfjV`+sBAF4qFLB9O?kvTy;Hdd6SDLol00uft7mZYQHOQ`;<;@H%qBCv}_Y8$!qtX z)Hkr$CBp~4n%u<^^bTiF<2L2Qf$q2SDbq9aU{DhOW~!5#&&LILquf^?mtoCpTt`{0 z>%p)c>s3*X*iHh~YbD{=7Jlw(slwYOXSL&4G+N5;AV&zN=IAHawiUsziRz~sRFOVE zM|4U>eBTbdk6&rnAok(QjN@CS=Xy!pGGsLpo&3Z}l1Jym**+R9M;se>#dER!uYG(9qkz7F1lw#=1Z>K zhAGV?kl$R5jS*6FiSHxy$+Mp_$&%smuW5PY7!G?`C9;fYlNW=)(XH2!Ii5U`-cVnw zn|@O)qN1lnSD)YMN9GW??W!o%dmyG}JJWAzN(TMhi$!<juSlgOM6|f`SFKBvE!GoiOb9~GgtEW$W`VeyDPDKvO-aucsvb^v8P;W zGZSJN=~2mt66NnB-_Im78;IDr(F?J?j*=ctJ0}KV+pnG5eWn5~04Y;j)>RrZWd}YZ z&|TJD&@@NFnpPDxv`%Sj`dK_ggzZ9gZ^EU;oY>A_&w0=NX(xz}`~lQeU|4`-f_MN+ zi@?WsP?GT2x&;11E3}BT6lr+?y}Pe@Ycgxm8t{Y4OjUnQNh~NMSbw16A-)>U z)bOUI1%G&aR%6 z31%4O{f+x}O=8^?_suX!dhG}~^Lvh0gW!Ey4jH1=Yxp9;__Vvn%2*~x*)Sy7II%C> z6dRuQQAKx#dqs+zhC^ti;R@OpI4M%ke=t#VDmWfQIlxgp(jbVUjQws>G{W}MOBqHG z^>*~Fh|U1EfJfn@&*A^5-~isEkAAQJ z$iK-i1|-6K@^{KdpY8ud9{pb*i$Vc-yoP^M78pphi2rxWM}P7EME+;|Zy)_viwOR% zmFGXH9LW1vKQf>n{q+Cs{l5XyMq>g00P>IjpDN%F{OJED0cayYivj#w|G$kK9P6lW zwJXb78&a#}mBNyyg9N2@)~#C43)ffeQ7&Jc!S&Nw|SINGzDvBrfbR}CP zu32t;HV`YiDJdPT^>^mNC@Ye(c~&GrC-#-K@v5KWF^2_|5+Fhope@t)_)_u&Ip*4k$e66_mU6wScYDAvFM{)>^ zY|AcByF-6E{6^(kRc{EBomCp0p{R&%1yxAncT4hl5qf(W@J3|yo1IEsjXDtv%bKy5 zBi!Pap}1%7{nx5^Gc!jl=#I`7k}9F`P>z1!XaTD6*9OOy&r~OphQZU>L&UUjn4V! zB`xxlT)gZEI@06NM^nD+#Gv2KU9VKvC_NJ=OyM3JEOwH|`c0y?p0SVi)W_Z%DrutA zTc9UaJ8_Py17ZC=(SR&|KhjHc=dlgJ8rbHUSXr3pf=HUpkW3l%H1CncC{3o;4CzT1 z%(k9;dGYQ23I1baM%5!a!%tH;Ij182Yn-_z-`>DjJByTu#yXpU{#m!KbW?Nr#QTP5 zV;K`to^0!SWks}Z-7+XNU)u&}UM4!5fyY+nk88frb6E3G*uj~C`7^;bUV)4_l@9vd zgNSKI5ktXaY2E!ZVdF)`!<3=CjY7UpcPTw{7|}ti%``5h!zzD_$`5P0a^TdmYiU&t zq*X78{>lRBDLzBpsMR4tfMBN#Gb=eNHR~SI{?J?)j${vI-s`1rpkFNccmbu7OE?jo zV5dz9mK7fI-ptb`I9|1&!Gs1XZ+*hB?7xPFl~~pFhgY<8TSJV&#GA4d8#Sxb;o%bj z_}xfpCHUuWm<7^2oibxMlbk-$n3|@Zs94GiHT$inHWYW5F5(;O8o=qxdLr`3Sr9m#Cz}u zFJmVlhRg`Nv6G;Gdj3;goZ}0O#vBJ;yr5nbN*0fW>P8(iH9v8bFo>GM4^98)LVj4! z1eLydpnfhN*3Gb?V$VE^VkixmuJgl(&P@y;)y^TpF1hnQoM5`1fx{rGr2Ki18tpXe zv9M9u+8|XW>)*kT2l7b}rQH$j){VJRSw4)pBRxU^-6BN3&AGGQl{&7b7lZXr-fVin zYZ;0gayZy+!yTbX(~J1fWvLEC7`s7$BtA~a3VME4dS=0JO$gPYS6CVNNlO5hb#*bu z6Ks?wf?bo28S}{8tGYV*^FZ9HIGTcP(9!i|L0%}=JXm4T+i}>Oom6D>Z7m-P;#t|7 z$PNMf*j)RcDM`a2(_t|h6)i$QH#EyGS|ROds*i5L@)_!^rHX{kVB4<#QuKB&jDJqo z0H<`MR>)jD>em)46 zT69>i`aQ{CWEC~n3-0jQ>OB>y)(X2E+J~fQ^@nhTIF^>cNO#i2AnhM*Jf2OIt+)Op zLeRnz;GGol(+a-qI>sn5ivevL_4Skr@OV3V8Ha6DuuHL<#;|u2mnv@X(}sT{7Wvb& zt$92*T^FBSzJ?&FJ64u0Hx-yts5qeEWx=jQWb2<&F9g+&Mh<(!a=aGTx+m!=5^Bc1 zRzzm0H*HfsvPawaRhrD~qzgrNv${yfegl`r?5YcY#Gu;OWXz-`)X;2c`556A@@wq$ zO`VuUI5K(FLKBMY;Y$89A!8v24>*?=Oa41qCl^RhOO%XZ3-)_unbqO15zUNkN8uVP z(X$EK=iw9#g-;yC=N5y+Ea>@d$B~@^<1>qX-Yz)`grgUq7%OCvdirl^q}p|Z4uu)Y zw2la)O$xSXtIG)&WCQi3>F&Z&`1s(lFobL4Ci)IfjrgK$%H3?b>Gfw&(t{bX-d1oj z1s`QFq-pYWmR$PnQ2eLa>ef}V?w8?y5+16HU;Jy-&30nk~Y3B!~XG%goHH=dC}(>(TU>((eT z2XU%2+qDq`19r^ls*Hvt(gqQ5K$e`*+$sO0|@W(7jLk|=m%3=wtn+jB(|-9 zJ}l8;g7(YrT~K2yE}IQpHaO4aRTJ`(sM2V|JA%t;;_UBI&F_f~eI29+cXh-cK*ITD zL=6q~jrB1b8xqHTv)@uVY`Rjd4))D{)Y}b%?ahTuC!<5@$LVACw=U!$_U2o$l2oo{ zt>(86ptqrylq@uli!ZVtxXWfTY=T(u>V_)9*)Img(W+v$U%J$Hk-~8g|47N$S|q)y zMqDpizx_pYvk`Vyg01G*76LOZ5PHv1x;KTiIAId}mo$T%fUzNVrvDs~aA7yLw)vyLA2M_)1bm`DzrLw*lwHHU+rS03Cm*Y2mtP^N#lpXY^S z4#vzdZE?jtf(@QP4KtSSr1nt<6fnQjv^cGYn^b+A)ACMVG-xG`$ncIa;%5)2-}SL) zD48CU7&nIGZ!H~ljo(FRgC&xq7zEZ%fPhb|A|oyibN7J2 zqd61it-G+oPmWk*-#UkKc>|mq&upU+yA{j_*885_ZRP}<+Rzh;Iw#+Z+3kaEWKl$& zQ>9<4%*=JzWh17d4QFJQZ(z;T6bJm7SAX6dUAG9nJ<)kVEYSHWcz*58TxXX!6h2NkDfu0_4Sh#nR^vcc1TkJ-}kdw^}{2-!c5j~dD0hk57gzqAD+1P;h3qGEc z^;!>dWH&sNI)bgbTDR!7ejB8b_PUgaR4=FcB`?6ReOQ}kJu$MS`$>tsg(fQ%@rk#$ z)1}4%rZtbFZf=6_^KNMUS08`>i?iWnt)JZ9mgl{>?>a{GO|L%uW)rz@xMe6U9qOAI zkct0YXuAI6*f-9_RgMUpALbr6SEM zd9cwVR$JTN5T<7trj#EoE-QB43EgUq!;erx=XBH8maZu9yg$KTMw+Ao9yzLR_4^nmG8JNcRa@h_I!1 zXYY1LO*)#s`sonDN6gfp&Y3?#xO!PjGH^VQrJ1KVsPQ43QGwaw2^my-9kl zUXo=^XlTAJPJu1rY?>S?X0@07Zu&(ZLwMkDYPh0wy69+_X>C-uWz3w+2uFB1P0Ug< z@XKy>Cgq$@vy-kqs-q8UNtPCPSKT?dQZvM1S+SCh@T0A#siy~F`UrWc7|t#)Qn)** zjT*weQ8e>INZp~Zs#7#GBbl#NDjPUrAD|K znukZXf{~8GPYhd^7fCKZsEn>8!Br}&zGZ&-#;W~>V92SuVa-7XsC<}9eNs2gpPqDW z!r8m`Bp7zZi|Gkk%uxdNnfTk2dQ5PoY@GxWY}*r^B2@as8G8*Q$^%wKJ1f1|4GN8I zLP{}G`YlOE!&jFTrb$e#%NTX>=So-ZG4mB9u*ILCcp;Mj_SDN#uZ~50X3@&g#kRT< z+SBB#Vf#gD|FH|;-Gn@ncoV8^`0_F?FGT?I0b@}pp>mZ|xbb5ciqe9~hL8(N_$goJ zPbR69eRy;rUt;)x_F4l!4SX{8taZ?XH2y}Tx1F!v#9{V3^V(W$^4ZQ~a6#X&Q;_)! z?DOEcX$yLqWOx}15KN%3V!1wBUb{|-Iro)04$`}zR8|2^q6@wcEwC8rxV2Fi)WE*3>CpjRr6gqxG_uc-@)C- z_;=iN+V-ocsJ+pO-l(=dekz)$-|_2{wkI4$>gBU|`>T(_?@j9D{|sWw>lN7VnyJEY zzFIs^pQ4}b6HCYmTkRLNhm=*tJ{9ry2Tmp5lm9Re3$5;N{9?Rl_VpVaSB57_c5Ueb zWu5=DFxK+og=QLUaYk0XcD6w_`7{k;cb|_cc8*%($iDq9R==zp&Cc`E(L6VLl;5}6 zly4#LS|{uX^9QM=4!f=rHoBHm6UjMYf3lYEMEmQ_Of`dO=U)wmho2IiQGC6lR6L&l zGa@g?v&FIKZjs*Y1pH!6rr@j`q0_Uf{thKl80oaDujPHJO8hN+ZKa0$OOXQ4G0|Re zRxmrRFDn{Zvb}OPp)qHCH&Oma$>q+Z>$%MyX6+|B@9SexXr8v3+dD$L7>Yi^r0H{=7RUHEl5&sE@L}dAxT0PI#@Jw3lTwaZdzOt{NlwXr*~jyF#GHPk zC73|6#aIbJk9#6Zg31?nb}18(!IoAlHZ99c#$J_j>w!HSgK5Hv zmg$QFZ{Uj{pPF4=v)${QScAEY2rx1O+78wI)kOM z!yoUz9neOA76bU#_n%wQU`D^Y7lkY)bmw{|#t@E>WrBG9IKHrtx+D6*&vV#Pw57)?+rnJZ-kvDI%_12=&mbs`fq&e z?i-$40-jsa>Dk!r4fl(qPHG;Z*6`AMaY(8(|HVdA>cHCx^dB*=g;+sxL}qTsX!^(e zfRRAbai;mx%!sO1bV8V`l%e1>Tq2;F(2DMmX! z7?o@+6Nymz0i}JK(BxN$SqwCuAYTE0} z9AS90>^BPsKCrMj5*hq3=d*&0**sYUOyCR&$LU&a?{sSEyJOF+`!+uk8~+_cf#GV8 zcU|-W@rOjQg+d~?O?R4;;rfEX?yu4_QRP>^%x<w z783cGAf@`UOG5q+i3NJ^&GIkPi0&kG#=*Kuo8APDLcX~*dI!A zj`2l1PL4l@8m*-VK@p7}_U&LR?3m@1^!R~!?4E;y4PJo-hlKhe-~So8#Fg?wqq*L< zrj|)JdJ1?94)neIF+^TZ!$l-%mMj8T#jF zTkcqp)gpj7I{h8CAEQ8ZhVA8BqfHR0vFbM!FgYX`m|6Qq{>u#xZfHY)EN-Jg=z*f50iI8HA&i)#&bwlS=bY2x0E>s^)&opN4t77aqNUKz@ZV+vq?n{~|6fVpsPILk9B+Pjm zGcB+ztL_2zv8`k>az|APhs# zZl5_JzY|mso#QMQ(}rcu-4hJWD+rI*j?N{-8#I^;i(T9@l&oU5VP^Gk@Xsh%B7N`c zzY|fY8EMC&_I@w6pcAzzExts`12Hw9$TN)L~^$;uF=# zVxCIk9Ynp-k7B}?*niQ$msx&5Y4&I0ZrjY`Nhrb)-_F)TB^*jNNfkN;w)&Vc_LKR6kM)8&Y=L9M2Qjx5qKb^*$*HKbBoWaa;$?yZC3>e?^SMuG)sSWO3C#n?F??3y>*|Ir4>>xfDUiBg8#5_1(+ST z>dmtPY3RK+R@hP8nCzT*XEOTY3xfIIx<+9JL#Ep``viLN8{N0HiUqV9Ho+-Fko z>sx#-!4sYhK0ilt1GdMn;GdYg4zuG2CxqRb?VGHyNT}qif8sDEB)f?O-XbNSigY53 zg2`u!A*Lh_DehoKSVm3U!SRR?fqLoN+6LjgAMrcfpYNM6-h|YvJq_Q%E+#+d@P{1cPZ(_iRyoszT^19lj zx&d3=)!FF`1zEA~@@Et+i(?2fhtkP1EDz*Z+oM2mLDKnoc_y=wUPEp|&4yU?9Z)5( zaO2M$v&#tyVNq#qOqABM21xw-s-g#cZN{cgs?$`nzG0+faq;p=DAN8$UJ3ec>2vC; z#89RM;*YScG@YqOVMSGamnE|~G$)~C&WW;K7d7(Rm?FVm>t3FB*ev<-Bdmolzi|;x zKap_Es+t$PHiuGsGz#kwQywmjx$o<&YP8$vXJ8F(9u9zM?~=h}s)T7~KMTKq1qwNA z{=in<7foEtzg65}+l;XOkji`_6r*}kz@KbRZHnBsh%gH}Bf{?8@VUiAE#rsHpk;AM2zrS!KN^?u7aW|80>E7+wr zXk$;y!Sg|(k3X6ViI!Mx50!0~X{Y3g?fq7zLjc^-YN@p1#-5kS2Ar&=f@61g@xNv7GN zOjYYvWWzmrohoZAj^%?|#~~K!>)g7LPib>J3kmPvV8s1K-+{{u4jgtKXxFYVe6^-2 zGOp5Q?IVe&h}@BWy{CjpZY_Mcam32!0Z^Igfep+I50O#217I)z z`P*0C9Cq2x>1=tD4gcxDT5Z)>ui8K$130)-=LGtH)rOIRvG3V=N1iuFDWP7HbioR* zCY-7fa(F#6Y~Pn<(e5k#2xvq6?@kw5kEyB~H)IL5&Fg-$TG1v!{jS$}1pq%nj7ivL3>J;Opx$ zQ%#X{rpAq4l5o91*$GCjWp-P4RWm;vjxOZAe%r(v@%OdCzfjL*vK=W($s#uoVNqw@1~5Km3^w}?d2wi}UVJhsf}i<`A^E|}_u zDJ2yP12<}eenwz@L8aMalaLrj*m(O1r9^KeB9(t5&DKJp>B19p)&Ah2ofz*Thkd%< z$UF*qg%SuscbEpm*n+UbrM1Pq;xhbKHHmqJHcrUlFgcO74l=d3@3VLWuP<}YMtGG1 z_u}=NS>4=lJ6PJtimBvGJ88p}r7cZ{rf4Ts4Gp;W38l%~vifJPt=MyQ(O)no9gH3r z8b_{u(ApSkiZEazC7gIO?EQnXvSC`Xu19$A`=4&wM>?PEwzqrs6*orsiiB1TQRe=x zooZPTKoJ=->+_59`CuXx&un+k+AO!0&33PK_7B3 zTBRo|Iv1S`c1fdQof-T-soy7ZLIVur;iQMG&o8c+no6*AxiDBZEvm&Wiucr(N$_sRP26jtllR`o8Y^4rS(xV<7t47}l&i^nTLV zAk;ap?hg;FUv$ZMzqP&**Zc<%IzAWe~is_)A;)5Q}*$Ud5ZYKh0djQQN!CE zDSr6^vWX(eNq!R5O$xsC5qojCT$^=bxv*?7n3tjJ2G7oxiBq$Vl2bm~AkJ zSDH~;QUmeH2C%wG_y*;v#!Wm?-72LjZNgQe9_X-ZnU4%ZAqH{XhvH!a?U ze2YSXb5W00X;kP>%s#>Rxd{nZ!6PX9wsC`w22&7|aRT;>K2c*ABE3xl00iBjXc5OW zCS?V?%q`wFG^gP?O=3A-C4+YXBYmxQb|%Ga4#-7sNuk|?azhgz&U4P)anJrs`OC$w zLhsYOA(62l<$6276jw=2EZ^rMPWza& zLl3OcrC5LI@JcEHb_i@od33maV;TW9NIV^q>?Io|rZEhsrB}kzz8DeKemRgg+m*b_ z)MTTRow|-;Uuhm5HcMqZDcT+D5>I=xX)^g5QgI?-8 z<187yG_Cid^Ck(sO}pwjiA&~od46ED3=zat!3B(Kn4gqwRY3VD5$Jj%qVtkyPeUdQ z{DPb9d55}$hHtLpH-mrIB^B(RAUB4MAe&sN7Txe|{R)&qH9+gTQ!GGs zXHTEv&Mfc3z5zRP(?0u)vRpYyB^b3CQkypAI6!+ho!e}q3BqeMlQD24)BYMDH@TIm z1(ge#t?%Xl1CE?eABggNjQi*))&u>P*D0@=^Z=W#G2i|HATO>e2yce7mX__W8Yrrc zG-?fzbfVq|w~vY1ke88rW!ul*dUK^4@y;&t#3cF=2h*l)GE2BQIsub)j_5h$NgP~Z zbU9<;H``5n3M=~aE1W$ihP5=H(A;^RT67iq9tPxFt>nzNLocF{l#C_lvNKdA^)oYU z+ph$To3+H1oh!&C=@d{Z^FN>aCd%b8R_F@LKS`stO2WV|JFFRw@pc0s3zxsZ$UA!Q zKL8(X4+tIQepyUv1|inZSfyUw|0 z{E4-Xn(jN;!=~J{cu=ybVEA#eH9pN3!>4U83{iez35Z|3*r61>gPt8M;RPRZs*kMc ze(4+0m63PyIe^hVNc(>4Lmc}SQQ5aBm5Ma5Nn_2YI4b_&&j z#WvF{=Ilvqt%dXd$~IjJ7N>dE`eigjIl{L8l_Y0t4Q&vX;q?zDxqPdgz9h?`*Qxv} z92vvT=;Y=M*_vx6H)}OjzM3zjm$-GhX;eu2~Y(eeK?XSI{7JkH2as-F%FvkCz6{PF7jI`Kysu{i0#4CuBG{2$Rx6!dlMZ!UWu2`*EG)H7^>B; zH+1z`O*il3=c%}i*DUm{mHpXG7S)s4arqS4R5~V=wWi2?$v@hFdCiE{{NSow-o|<3 z-?^@r_=iTOFJo-UBG(RkcpE#-9Xil1@%LFvmt;CYt@7C*=RX|;PdXq8F$H>EzZ}#Q zdy~M6F0%#zEZ@;BgU2$fctiGbEG0rL00v~IB9HuK8U+zaHb-b@J)?ES^03ahny{k> zn;b2T8}>H4b~idJp8)R5wJj4r)V1|1XdK;J=wDKJs7uHwJY!L7l}>pZ{I_ z_e$>GaIGlP?36Hm;~{-^^l{jzAHj9c)h%^>y=Ok=N|)dWotD?BIGvApuEeQ5J!#Rxx(9c&SsGJoFLRnqt($A0l!vtE7~4v-x6GPP zWbX;6*?cXUo1{3d)eKr(|7S?1*AV{xV5 z)tUP>A@9!O-zy)d8^b-D#{NFG3VJ|Rh&DmV1CbH z9^1IPzK=-2{KMGzBQ#GmdPHc%)@_PnlKWN8f?KiJq_(Qbz~-}s7!%{^vkL4?JC z$3#`?wQ8j;h9!oP&*Rm&pu)!;;OX|~4X08?#((_?ZOtUCtEbeF2c0IX#&o+BC9LJQ z-gCB)`jKj&SlRU13=#8dtKvVEKm5#LxOpH4F+BBDOnglyYJ*KMY}FP**Rb}3oh9}5|TE=b-H}v zMoQfm6k0}7pefc8sX4d-`&K~bp6NGJa}sf%x0XErObDGo^?er1HKBGxaKwEXs&V4| z8CJHv=T>}ewl9BQqktedCA@lLTOB&~ts~*0&klV5d>uRW=QQE-7AmqDe*%kfwHOSa z#L=&{*K&8^pi@}Td*wZ4dd$-o=^p%~pa7B|KAj9Vr*BVJm5I|~-B#vGIOi-9G5ra5 zs%q_Ft&-!vspWaSybvOd_cUU8im$`?Zh^QD$;;N)^E#(7oz-@>kY{DhI3wRu{RPvw zvx2ZurlZt8z@D*2qJn;jgRNl-F>Qvy>@S`4%n^|exqwSt4j-}fV1>xnm_CtI0DCpG z-!;BTU9ai zMQj$24o}F|R-H*ZapO3Uv~hobvG(a)WAvM3oG(Zlak_U2j1O-fY*$Xge4vyKAUs62 z{zv0Uv1#atDD5xrnh$t=9cP&R!3oq^D50N#b26Y{UIT?fYQ%ix^LDd{GB=%h_EJow z4;sHBK26mTHspiUvw$4ltu`c1?-C%%K%)qy)T*Jw>q+%Jt5ZpWt8 z9iT|Zu|a^5$SGE&7Q3hJIB?<0Q=U#!u?B0N(mexqjnU>d?o(rYasYajzql+-%OqCQ zVPUCa*l*Ujy5lnHg0079d9zYBy!GV+9`BzpL5|Hg<{$!+@J{ef=yHK^bXsfn>uMY5 zaU(D@BhrLdymR$LNpRJ>cvsXPBE;L0WWqTz}c>$FthAX@2c+j~@OWU79k0v!5e|@M( zW!`6lU~R?`E1@mbEM}ND9jNFAm^9V>D(92^aGwbSro@LN{>?|&!N0uA=qu4*T&Z6QooYJ_unN@cHBk*3t0*p+H3@RqfF~QseBTL zy*ui*Gw822As|YRn|gK~*mj_%9Hor)jj+mjZC7t;(`K-&JNGL_%-49K@P&nC=yt(P zddY{k&xFM-YCw|5xK^>`Y`WFHEERmAuX`4ncIwky&*v=OZ3)z-8s?>YtI0yH%Uyr4 z8oW)O_+bA`-V8YyTSD=bd|uJwQpERITG{;cbGfARfPbt{naFG8-AKtB zq>aJnKFf0;UY7p`Ur`?F55!Y&Sy<76M#f^9N}M4yyS^g8e;r@(U0cj=<0fW-ca#be z`@SZCehiF+xS9HIJ8(XHVT)!_y{}*MZys;4i#A~dA>4u>cv}M>!}EQ;4x()o58Agb{8s7v_DHk1_BzBREFG;L7Q1vNqlh3?D06$-?;F`Iq0 zWB2U6R!*C|n0(~QsJP!|AAZZ6P+3`;v0(%W~ArR{AIWK*85k6)fF ztYZ9Wv34D8r2HMsHa2-r7hGKKXx8We2=>Nkyg&UN4AgHH2zBNwtie2c4Y;rWy^$G! zHv1?8O;J0sYRD_K;uKa-@L|512V>ATj+P0lo>(>ImRjLIl`&jRd1bfCCE|Mdz-Fl4 zF^~L2AyB7(5Y8%mpKeX#bq!{jxyUYIAb_ZpHVE)ao&kQw5aPx2${OsP6b7$7^9Z$U zYEFJ0i)G;>s3s$KkTC`9B&P9bYMFi<<>(OZISCl-u?Ro6Mp*zW9U4f`WjGv?5{DV^ zy6GTfTvspz_m0@+_a+0w*lo6*U&(1C5VZ4{%>lu5E^iRBjrlA33TYP9mTg1wjwD@+ ztQJEQpe^^%-M_i)LdTdP&G#iW0l$5aQV~=lZ{RzjM{E_dW@j3h7FOolf=G<;IvIJ& zCHTh^kzO+zxu0z4ycFhb{kvdc4U4$w*`i$84rC|OZmt2gxOdiZUK`){#{$ho;voEB#Fx&#Zc^$%lnODiF3-}~ zkiLz_?IsiC)I>E3oPb`urntdY3By0AmGRg2)c|ti&qw53aZ^e#nb zxIfpm5~5eBgofe~Vp9P@*0iBo#_yV2n;VIH=zuQ3k>@U5;YeE8YKGhM7zOs>BM16t zRi@@uE<04n0IMeXG6IV%*nK#GYi59!<54tU%Woap-v)Bxi)i~Y{=pICnrFrQJ3xS& zXzm~H;_4bUQ(<$4?<}{|mg7E>#nz03{{SSF&$E*pwcb;R<3K*5)cOy0W*zaXwdO7? zTPlHmF@x#ORw-^319g!;sxye?HrDd+_Y<7vEupU`wCc?;n!hz(o1uZ}I;fCJuKLY^ z5v2kyo(Y&|QdBuv{lIw3P{?$YHVN-)YjlOsJ(2G2o@*EEw_PsBSi8 z2Z~~N3z5%B4`3Lv{Do*_&TRfiV*59@uIIFfC-(ZtHMxQ3&+Mh8i20wkXgISixvZRx z#-!Z9mC-BokZY9BpBWma zpdK6B#_3I?Lt`#}{!nH9aoTT!J#-d}1HKlD{;1L_ zvzE5uGWTM>qz2y460{xAGc87}dc1oHi2R zit5j7dO$4oa-dY8*7WmJc6Qzh*Dj`vq=SZgyH}tvw=#3c*8xr2Io+^l@vTfn1I9ZG$n7D^1&_4l z^Yjg6t@4-oT;%cV#j(a=uE_R{wED3nDKg2C7i?icze5OI;k+U!)kmOxK~3d!*@e%7 zywnR@lriy7QZa1L;8ajl`uj{NofbUhwIfQCY>H{=3HGuFQKMZCOjt`a^DB zMYKC8d-u2YIr0wSoiOlqIjoh=1kyA z|CQGD*eH0T#oqpTwGS!yXW0wKxkGq{|G2z48IQ6P5Ibmlk(+-58&&5))#g!o;l)C0 zzoHZ7)5gxdJ1ytXW$aVFEUjSf()8F38yaO41qV70aMHAVBEKsmyJh%Hrj)-Ky`Wr1 z+ApbxTNxiT&R$ML(8Q2L9_8Y&gmRDYP!TnU?VJp|skeQB7+b^Trii{GLX5 zowL^Kni+W~42(9Qrr#~3Y@IYu0Ex!wPPpsM>^`P{-g1!mMk}pnJwy6kK9J5YUC@b2 z5iqAM;kr`}2+Oi8LkkLd(<64gfRsB0FRS>bB?5B7KSv5)+pYZoQRYlLqO<-3Q1J_H zwJGwb%>57}jd}O5U$-_vFPuSOZsl_@U4GB|u$dNxd|^H!YuqNSKK0gLm7qG&YH<#7 zcR9MFRVNRus_{(*{K?$G%%Ht|S#i@KUo+{^5-kC=j+f^hM9mXtZpSrBOF8F#RxN0B z5E7lcKBW(@HSE)G4u6uc)vqd?xQ5xspY#sy>phfx=?HtJh{fL7fq9wT@OqWO0t)Uh ztbS!+4#ViRwHqvRWH>pDCGQi)KyDdDRp@onr#q4oaRO5n%rUYcLAu#LqE59yCqJ?a z820sVwR85lK$GPf*C?q3+rZ@3Lf~^rd{raDjSM2aH6`2*@@aEKqNeaoXf(6KeOWE- zUCd*h#liRsD3uOF5;QzhHFM9vxyOchFWFtxr8=qqn(8r8)1Gz1zcHLt-?amYy~U?4 zEtjtP#T^B-@js^xoHW=8r69UdaJc3GGroz)??z&06?1(#5m9~il37+6{*Z;1hnZUF#JVXiR~Z6)0aU60h0bC#ICcvd%sFP-Xx#WnN89C3>rO)brC(y&YzI{dc^%HI<-$J=+fY1 zfnD13BM^(*btLH0@WzzG{-G#>P5cX3aCABQTTy&{f55knek=xH)g5(04=>Jdrk8Z9 zKe1?lv;vb8b&rfnU)Hh|uzwD6&(TF)W!G>th!!}J2n77}s&Gzfv!{`Aexvu1Df}A# zykXEj{6y;bH2OORtf}ifCUM-5dUqaP#-UZO6)*qFVa<;aXFvq7-K;+(oL)o5Ek644 zcZBhKl7wBs1EbV+e&rf*LMe{)uxkj(sJ=UYlwU~3SJYj1^nBrOt3gZp5#vUi z)B1(}*AXQFLXq7HQugGHv@I%GkyFESF0$&a#*H-gtdoZDjZ-dILs~|Se&2EP+fQh4 ztTzdn>V3i*eqPBxm?pLK`+S&QC+d72KvE5i7H!a#giiC3pHgI0j*^5@819=p#ES#l zr>+jAomjdKDPB>?9l!3b`0(>%5YVP%dYQ1QwoyK(v6-W(tL7Cp#69A=^zh}#g4|Tr z52*aIToj|AVF4q|ck<=DPo1) z7L8T~7ct^Mo1)+~`myd$hHT?FhqMwBccGp4w(9REHv&)RrKpa8h9M8)2RBpvDPksG z_B>Z^ivo!)Qi0;D<3Ud+8S$$4OT1mr20UM> z&c;6>x9BIrv_e=s?FPuUiF45rZo1J-(FY5?T1GiG#d_x2e=?6Wb6-pt{(sBxa=5xO zx*_su3m91D?xnEK!bKJ2v{9kZJw9O(smv=N)h@;jM9n;GvXW*Y3PI|z+A#mAAJjeVy_J2@MhtOmJEx zh7i+B4z%ylI`uU>(o`Ks@UfgDQG^TV@{RjdNtQvgC_p4blSHfxa1s;~N`+sV?z^tHkD9ZzP4(|_^kYtjpWU znCm^VOs{6LpgCDM+!|7^+K)NGM3?0ntDm*{m<_!;;K97pP((v}XKshqVc?qi{^B3N z%eMM)(-egWQyTNLzMcyMqN#rc`+k`OzQidzBktpFUor?b%G?|`@?LMG_@Eu_coku+t!O&fBOsRVCf3(_-AlsJyy$ha7rj!vM@tg%h5ck0T zO2E;I)$lx)%_p%|I_!Dy`^)SK$rIVk9O9J56Y_{{f7CXxf;;Ds3J230C&yJPcSW$?#2A3ThNf zA}{)WQ+#JA)sGmpuUw7y3*=eJoT&9sCSNu%_I);&Xw^sKx_5yLHqLt)y1vj-a!xSq zuM;A{5u7Z1_rO}V>Q|FHF#pUHad)BWyh8o-I5v0R{S069#(!NN` zBl)=9U1+#cvbQkvLOo;aJ@QAeaToL)g07ml=`?VhwyNt*4sn?)#~tGz5#qNgbiS!c z5t*^snTa`2v7<5+bwF3-8oxPxu=|ny-p^xpGihFo9%bHJk>^7?j^6fr^i4+4Ay)5R z|ET&Q%;P?H;vU1UxFXo)oTu|_gGL*?`E2Tua__jyHVD05r6O4PCz7EhX3JnB4pDG| zR1U)1cXVKCtZf_bDt@;Du?x3@yNANVUCOJcyKoO*zm1TFzogmFxYck+ELF3Y)>cOP zD-JWVA)h@xEexRut2v~ndOjrP^N9*WM11FRZ`iQv%Wo}Z+$S_e1VYw@ z^zB9&zYcJQzomC*^!a^zcrGG-d3Ui5U2~p16pH@MHq-kH~ohxU05is#X85U+}KJbc(UYUZb zL%{eg0C@X@a~HIA)Xm9Drihy5eUaeh25Qey`+W`7pbR;gIp%q$@p;=nR&hf*xU+Rm@GxwNB_EiMCO;v(|! zm|eUtgo>#` zxR3n=^~H@H8S=*oYW8T**O?~aiM>;EVX*9{g3W*AC5bcA%wXBARdq=4ELh(|cs0LzRjs{PZe%@YP zTrwX8;!`pfzbuRv;b>2JcEf?ATOh-NaxIdbDiR>-NtXt=HiP8*-s4$b_$5u4Ob??xATI|3>8Z zOaPIxf@FvH#ys>l8DSIUaoXN9fV&~Oi(q!n55anC&4Ksa8;ym>ZjPx)&D&3F?^_)f z-Vl~VGDMKKZTsH&$#+hcm}0Qu?-l+EH_L#&_!?U55c>W6^%)Om?+jNid| z7W@45DJrZ@Dqe1-gp>@vA7It}SR=m;sZ^_-vzi3hsVHZ!dzwTgmgI#I%WG43 ztjL^^%5rp-Z&<$|D4LjJ?U<2zkzLDKz+)4;X$b}7EZ1_foO$?!yY&JvrhfgAZ!KeD zT#OGv+qWrX3K71Y%&6RLYo~^S1;EK}iiDC^_jcgb6~=h?WZH<|tR?!hv7*Nfd3vOz z{%E_{3bmkt4UAc@>|EF}Aav~Pr?C3i5s+%sAkB}i$GpM-Wom+3u^)+A;JY*tzk6>Z zK)t^bzjn&Rb+6A~M^S$c~LB1kVfm z_Lsbp#OkT$_MdMy#iSNLOS&gU;ed+b zx@aPCP+9^q_SFz9qKYzBCmRCq(`jgsW_t3&t9@^Jzra`f81zbl2T->9s-paqya9ft zGyZ(#QwHbr<*Z+xn3ER+%q%-VGlI*P-+#THQJO>;+;2K6`K7TBn<2z%d!TMQnd+H? zjW||Pye}MTtjW8&c~doUpTJ$E4f?hgn^bqD4TtqbcC6ph z*-hedyUMHfp9r+S1NRKLt&Bc~|F$Vnkw$4N1R-whYJJPL*^2@cq8VD-skU#YTL#2< z?&VMqqY>yt*oH=Zlxf)d5$n{JnxGErJzB2~@@0u5b?=kmDcA3}s#Y&#*D|yc%~k57 z%p$k_kjyYkJNz?l6D>> zifM;#I^jy)#G2J-sz_wlESj z5L)Jrj$hr>%#8RVqqMjr;{d?=QuIPgvxw6d)DomY17KOnoUU>FN>gO95R%!#5TVk* zs0=)0eBCcbSgVz-kc09LC5xkU?=>QQg#n>{Wr_YCbL4m;>0}Vy&0X;&mAI0UO`!&P z-{syuuboJNH~VFwSNsa^A9~gzFisB)-EV{JQnmKMcE3^P?oL%<6@asWk?*J04?xlt zS@fY+58D4_#?oIs>|bT9JE|J=Usdd1C&&L;3Hw*i`?sbyATBWfzbj$?*R}$GbN>ei z%75^`?Eff%8t>uX^~b^g2V?*3`q%&PuYUQj+V_9g|L|`u@1ehi%l|JOf5-jL@qg)( z|E0_PXY9Y{|58U(43r+mm!4?_yZdCC0Cuah;j_Zgm-+08A6d}t(v zi~13on+V&yl(DTIofziLL!jsK6rJS^H=*ZzSB9zvq-?|nJj${oXC%z&|bYIHW+Wf-;GEi z-w{Mk#_ZZd#^il*CbgbBuWQky3K}dJ?TL*22dD4wr)PuE#tnq>1hn?FC`sGreB+UM z1A9LAY~$-ox${J#R3Em$;&P@IY4fuY0ON%v%K8Jw76M+c>HrWXeI^5dvk^opjlDYB zj3ypMzeXuh3Y65Yu)v~6zj7VKFBSwEhuogD5LWzFnE59#`Zs)$AxsRK8?q{jCdbgA zYt&P^X7XaLH6je>mkPm~!_I+&VJ{)CjP)gx25~Zi=SUQ9W5%#xR%oG=n^6OUVAEt1 z^{wOl-lz&4Cr{h@A&Fvc$bv;1FCLT1wxq3{Ic%to3>;p^^KZI`&wwxPZ_1p45SLoIP7-Yr0|TR8kp80yls%z!a?XNn z5KD+bZzy^8Xawy-r0CgThEw#fPla!_Jd$OFbqF+B>P=khzg-0)Y2Br@QK*f~=OPSu zmz;7tL1Y4&)OC7@h;0h0YUm)XvlE$l8QCBImTtRPk?uo0GPFK_jVqF`tI}R9Hb_48 z4-<~7c*n%nbfa%I8!srQFS)F~N;MLthO&v=VABS(#m^{5)saAIN`>K4U}oPt47ga5 zCdD{^6=>q;3ywK8iG@4DzlQEwCW4?qdsf%!8aKe@TXkxc)Xo9XsULQQZ-1DGyAPAo zO6SF*jr6hNjiSzDwx0J^mxwJ3^qojvi}fw!;Cw1q8OhZ=irB?x;FX3&e=9PC{jEb2+U zy^0%Z@#_cA@`Q(X9w1O&NuSj6gp72xDH*yEILKR+t}MADJ}0*E)=eqcct;CZjTu2p z@U-=e=ko3{yNT0_|C2_eE#Y(gEtprw;q9X*^1!uu|N8Z-uKOQ4SMy>$kDeVq`LD2A zJV7CBPb7#%zcQp4PeYMz)gk<-)hEOc=B@h?*=TP>ko#k8psWH`1@{Ab-X@Q3cUM*J$BrGZ+nY!rs|+9;1=-B?9x7a%niTPTl78_n{en z7zt^=s!sa8yHX{YsS}%^4AEiX{g-#vEOj=$>`O9FT0xN}ACu<+jOWJ}BR2Ufy4-QU za^@zt=!&DK2&*f34pC)vC#v(JLru)tRmYJODqGleKa)@UpiOAvW7@5PceKW zV}16Tg+`rqiR1(f4!~un8qW--IXJsT48W1!b;|{GF?XeTMH@*)Aew{0)DZ9t^O{1t z%LgPXPf{tO*(de-Pd5y{XkBK1!}Ka`~T6aQ|VSO?mRhhe-7n zvxrXh47lL&&GfI4#MFM=nkPzcCRu(2qIgivuQ<#>Bn>t+O1$8KW0akE1o_tT+llhh zx|Edu#QC3vg@2SV0BEYmXPMn;=P~4aGyHztO<~40sLTQ(1^{dP_zWS!{uAPuzoc)k zrnotDWgACAW7}Z@VD!H)*cZ&M)b75XNg1X~n&7AW9QhNAK6i&9kN-9Hit%Xu;4SS@ zkK)!ULy42vV2#)sIl>oT-xvt!k%6>gU5|VqyKM03=@O?zvZTD6?Cjs6pS|-Wm)Sduo9})DsPT{c!_dUnA%~M8;f2%u+gSPZ|ZQywb4;DIr1Tjur zAgd#V6@AK?&$Yl3*b%CY@NgC&z#P7rb{GWQJ+XC{cC@z4)6*U1$>1!NwxrZl(+M2I z9RbkBA#%r!{9PHFYA7ZGDyZ;k%vqds{N0fS%I|%nC%&W`*Cf=xd!c1uy>;Pqv$HZ; zphS8%z-2ny4l0)XgmjiV9CgkYGO3`En=M?mfbGn;_NpM7dVSAiP-`27kx5JvxNpf- z{U))`y}ji8)Fw9)Wj9)Ra+JVTP^iB*9o4K$L$G+C)5J1{x9>ssGEiBye$rtwu($gV zJA+6qFl0cqtJ#t0ee&Jia@Q|!!OmIB}1PDn;*F%3(kwV5LUmb_^ab;S)Ww8tiZ(xgQ?kn zKC=5j*H>gdh{-h8$IA~0ypN#FG9ZZ%aqB@eVR{eyuEg-kn^)?Ky!5wzLpNDX=J2GO ziwspRP5vNOHelw(`a)m)xPt?iqnF~j0XOR`ex$*Re*iWKGmP-t?AGkbUZLT{IQ=CF zvhhk%jJHAhhe%oibV6Kg?0A1y1JBIQmtUyN8W1>}T4>#h^nD9ACMK~iF1{=c7-@f` zhf8BSIcwcy2B|FA>%tHj1O%kG*a&%4iHfP4zzRP0xg1rOpohgeg z5QvqE<=YA?Y9rjULi)t|vu7s0)Rq6Qx@IYAwhDGewqnuKk>f-(xKNO#d-KQmWrJZz zYwIU>lZ#7A5CTgKZ|hQc?vj1)=!kI7(s4v$)h~ol89>xcE~VC%sn*`u(j=H{wS51u zqJlQiL5W0}+3IE)Q2`tXvCtUuEFtzGL+8ZcKBBYIzIT|s_p`Jn825!0jL`^rEUf4A ztpm8;lgr?pW{i~ieA>{u5WF~askf7SP?0Sms*V?mMy5Xb%l-RrTk-i&cJ z6NOxXY*He@yUSh)muyAdY#a@R0+-*p@Fvu<));bgHL~B`Gi2{dBYn2X9Z<3ZgA2Le zG35EkesO&Lc7+&U|D(+;!O_#CfYYRn0w3jRAkw+IXyf9KLKW=;ifBQ26j)e_O=or{TxV(Y=>DZ^65QytW zt9r(zvufgx5EKz!_4pphk_<|*fOmfC|B|xk!j01Q`+0ZlYEpqFQhKzhwaSFqdOAsM zw%GA&UJ$^$2_oeCO=Jk&qnqBOi*RuU?I`}@QZh4%Vv^H(ZY7B)Oq7ZPBA%lZ92sk3 z6{}HdaL?ZtkS0(fr_w1^(v@TTDJY4H?Tt$FpJ{)Y%V~+2^}8nDq=>B%kYpd`Wa0`s zLfIE*-*}DeQ}$23UHDQGpM{I_!aE_ugir=;^r!GnsG(Avqo)hMZJOoq?+rXEjihC_ z1sAl@!LmMCv=+SmT5C1_y*uWS0*^+tuZ~}SZdHX4uGP`N;23_Y`kZUgPVA>w2PGn+ zoSh2}AzMC!9}N;FAv*;|N#&0e(`BAm`hULA@sWhuOt0y?-2S)r&MT^^ZQbLcMv5SH z2Lwcjn~o3=6D9OO5a|XGP(dO^K{`lBnv@XfTQCF+HFS_JN++O5Q3RwzLJlN z5JBo4?3W9xn>QzpD&t-4xV4;Gkzs?Q@#`6TQewz0DjFcWCMDUfDBD zCcuQ-&4V9J1#T)4yT;JIR#~FopI%%(^_Bj3X5}VJ7sC#@Q&re*2}R{v2%A zZdz4IL(P*ZreoEIHx?F@;i>2Qn6&W#wCK*A0=~@36+!=4+31R*Gp_v3*)TyRK)VZ9 z72=SQ=n}NZu9*CpW5U`48^E(@3#ej6G6$w2+uPt@aMSKaHKX=N$jzzY4BvYfu4A`G zu)aN-b8|w0eDAG;Wj1#U1{|{14-V4vuXD|kLS(WN+5|6^J$V-t#}W3Z@P_y-DeTD? ztLjJM=y+G%k7&)G3z=u|z|TGBkI*#Bn-^+b7Q5M9s(B?%^rm}Ml8i-tk3;LovZfn} zVmkLwY|%(d$b=@~fVXux`bt(a4~-EpVd@|(dM4(dGirT08sGco$vca-iKbrr9%jyi zLkwGNhZM+-F``T@XL)n4#Jgfh>-a_NL?_PkxV3Qk@>Q`{B;CA|9#R?l z(bM5HO)-L7irMrTP)ln^1AI3tnq#UKk+^$i|lu*FRlhScK{88?v` zetH-BDp1lD>Tx`lpMR6>duAebb?NQJR$h1YOb`@S=@aye%GnxF%gW?YL&$mq}McA2s3c#i5_lu>z#c)#lCq(I{n~Q zTDoh6rZB@r@fW+xV(~;(>1bIS@;iq^i-`9^79@qmJSYJH-lXEee7-_@&UY;wc!bBH zfmY_b2Q<)92(No4w6HO?{jW_>6$O@mDzX z4D0mety#EEcLDEg`?^@h({myvMrwATLm#1Rg6zH=d$nlR`6sq#(2S>lAa4-7Ktfb} zc%@d=W=KX;0kV8zkgp}mQH=Ag#wsoVtV*N#LWE_SKORdJtxh=HoXRIN;*{8&BEV-M z-#G%7fy6$%B7Ro0ruieb_7ROm9NXc&A5MLsf<`P8@GX9%*1zPM|DOMA1@fW4>OU)i z-VW$BfcC$w|J>5jUoi}TzmiqEcU(Haz0-IQa~jA1qQ^xuMCs7-T(ItNpccaDvSP06 z0EiMO{lLJ*U7jD3Cu?lR0TRjIrrPXX3LNp;*tEl&7BweH;%M`@KI-vbk74b3IyF`L*};7pt4hbnLw0t+jCd^9S<#R`^&9~sk*wN>35z27 z?IM|(gQ&>0mLXD>-0$k}5@WG|l#*SufXR^^h`=}8KB>;6+JxzT;WawzxRgi%5&`xm zbC=gnbXnk=!9Ey17;I|jWV@?+Zx@03#C>jvcJU>EXS)0VOC?n-!=@>7)OUcEPDCv^#Ehjz}&_kVS+6#7MDF;MrRCRj_HaX*Y$hJha#`fc*u}t2kXkj8h-IdM2z-7p#W!8Pa zl_j(l;~H*fcTgK;{o$_7(Mw3`+k0B=@ynBAGZibwLl5_p-Ss<;=gRRZrd zZu4uT_C5Z?4#ub7V*^dmXH`t4@D00c^)YSV{F3xk5zC_b4Dm8xE14t-Z?3~~r zuLqCCo%`nKP?i}Q{xwW9Z_U+8g3h_$FIBS7PCfhC&#CanomR zbL@y7xN>eV_oI8EPE%{7!mIFV1y;bmNwN3f`63&^M?Le_!$|UVpPiP>;o}YiX5mxn zMaF@v%D0T%YviWN%9m2m4;288!CKIm0cq7dB>mw%Y?yLNdkhFrf2;)!TavcyvZRRc zPjb{LK|c=_Dw&mc6AaB+>+agJBO>}uizDRPmz{d1U!zTm!V!p*7U!p25Ak>D^G!ES z%fJs55OB~Y7|@2@W_?+-8duUaoT=5HqZo@WPm_pvBpkGRNcfa^^@gDZf9#vSp$$bA zzM9NABKQtPq)2(~v=P!&gh#$F5Am1y{8NU?(7dUo_$ce=x6Ed&yahA5$V56M$5kir z@zM($bC(iLs7;=(D>`$IXNX!K@FxgS%tWsJB$^^OT&e=SzR9xUISE%^R<@|EaS~Nz zt}99{1~2WEyA&{lhu)X2C5r{quujP{SAS6?|sGw84ccGV~8*YS}f zCy}$swhghtH-8e}Kd|H1Z|m&U#lWs`njdoZTPiMa@&S2CCF}8$J~+f*wFK)UQnYjK z8L8SaQIMHdEM9rt!gZ@u=dIC@p2UY@!!yn|y>#`grIBi*h>EnLKSXgcUi5Q^o{_-u zO{(FCuhgt{zW}oUtWp)j=57yADo~Lq-+k|uA?fn>UMErZb4C;a@n0-j*W2%fhQx7R zUrjBO+B}c{1f{#J@<2z6-+Hh|72npTqij<*FEtcjPo2oS$k2bcq$P&o>GE+R-@{4s zm=B-rEf_^PLe@)&!jIJ%|sU6v2{qgAGJmCK3i9oDBN^s=NTqe%QF4$YdGbOCtkByr+P}M zH`QRztg-Ql=Q!*4@`fVF+71OlD%w0AJ2U;laOu)fk-9h?u82z6UN>KX*;>y?>G|Qj zo*=Z~Z$nkX)IOdG`M0t6rKV&;OTtK1kMYM`Ud*`fDTmtahl_Z21zlL9Y3dOD zqooSH;*JcW+X$H%A}(Mh*|$Qc>TM}La^ApLW%WiRKt?Fz#qNNJ2-1sJBW1FrZCYa- z=4E(!V}rmPhoQD_@wm0FQ&4e4QmDyf995OB?^yb5>6#22_svuA1vva~G095!=rQKP z(L49M0~uXO*q+hQFpV(v5zFicBELUa&Y0=TmU~9%!zpb~4xJkuYphiL6pY^A)_2F= zbbChV)fG7SNw>BJRJvsGe^bRGCB zZ4my-D8D`CW|`+f(G5wp$qKCA;V2)@(`|Yeq4zwz!!=2@Em!Fb<@{AHzeKZ~^KS@y zalB^G>9?rtEAJsZp@BZigACF*m#qVZuKKh$RX0s&c<$>Ne>ogB@EY`05nu5r=7gVH z&N4U-W;GEm9!>&y@ z*2SDs4+c4kA*U3edxL7P15eK|;-N&#e!UTPYLR)ojJVmBtXogEP|_3gm?WkN z#MCt$9^NjIO2Bb=eLL1EP+zzsR0TG#%kNkh+PIsW{J4ijl|ZxeP7hgN!cG@aWLa1J zYM!rA0*)y1nN+YS#G(Cee5jm zW}!`MSv2ui5pMR585SsusXHF;gtl{R0r_SV*^sHLIOFX`a0`3Acj^$`&T$y)OS19l z{sdui@@DodqHhH}f8uHBd$lx(VpVQ!*>!6Y0o`HPB<00-p!Woxzq|VbAO#kZ3|Pdh zju%W5l9*Z6$Kosb(vr$T{d=!R(M1ILl5*T2Hsm~YCF-Kg5Zx|Nc36NgNr)4dwUJb8 zC^~1lA#-~O_pHw$jVcUR19Vq1xmlkaV|&J>J0TTBv`%u3!W>R;#Mz(zRIe%*O1mJg z^WFVPQ&=(1wuBP7v*JDZA@3v6<6b>fPXu!&V}cwxR-{dwNf*YYa$cEk^(#o{{m)>U zrKV?I|0OnO*>_1|Q-0EOL@%oV73v%O$x-82V5*XHZdKspQAHH~1-(;YYHS7p&)|fP?TFzy3YR#o?@ou~r zk=roqBYyrh@k72dr@HV84Kp>dw#xW z0}NmO%vL%nhiQux2_uoAh1I)kS1TLZWi!5>H}R}iic!nUalb<@n@o5R{i(btYdVUB z=x}}hsTX2z_b^ME?ST~ZH6Df^?qN{8H<=QYWc)%RcTg?eT1FrG2Ay^l>JXID2qn@) zvh~+z1-ezR4-!_^sZ(2BmtQ)#K=(y=R*f}hD@Y~XNs684`dAuSC z@-2=Z*=WX;CSj$I2cM1{9jeoC5xOCOX18oI=T8vEcbRV(A1Ej(_4wQPV?&uKzkG4R zJ})MJWET?tIY5&2=m62zgBUc$Q{ro~3XX03Zs~V^qb*B7mXW$wMWo-ZTE^AN^%GQ1 zjJ!PY-Xjjx3-Niy#?Z2To<4%S0aFinDC}B6fX8>GDO)wbXa?|~$t|&jwGr_rQ!~3LHpGU{I6iX9e8y8m>t@1bF@S zL`cdO06n$B-=oKPBtfuE)(BI5${6p$2B_UOTAHKHNUavb#G0yH332q&ciqk+pFtP7 zu-j+$$xP3EvZR$so)P|n_|N$ zE{Xv6spFb)NIOCmyI;ylm&M@gCgeP0_tfFCW`s8ZU=!(X(l#m2<4(Vfnef+mWIqx- zUQ+JNtv?)C00^D#9lDNP=f3OsY=SZidMRGS*M&NBXNFLt)+ ze1=&!<2-BZfbm_m+xmQ-Ba1@ z?ST2<_zhi6WGppB6VROy`(YZFBUo11ocJ7v8lwWjV|L^Sp_lw-y(o2Ys{061*~4Xg zx`Q9e5Ouy?ZRdjvXEiA=8AHW-rin8;mBUasxsqcrj~Shc3l%KP^08bvQ;c|hL;bB} zQH%t9AmBJO-Hgp9=z?O~3qHJOBO!#JZ_rwr+0Kf3E>Y(zOOHm$#;OsF zZeQ7)t6g33cB9aU + + + + + + + + + + + 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/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 @@ + + + + + + + + + + + + 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(); + + + + + + + + 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/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 @@ + + + + + + + + + + + + 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(); + + + + + + + + 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/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 @@ + + + + + + + + + + + + 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(); + + + + + + + + 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/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 @@ + + + + + + + + + + + + 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(); + + + + + 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 @@ + + + + + + + + + + + + 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(); + + + + + 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 @@ + + + + + + + + + + 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/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 zcmeI52V4}%w(uK4QKBG7W>8QNM6!SaLyiKHC1;VGB?t_Ph~%Jv0YQ>v5F}@itV9tc zXURFkF!R;8>)zdc_rBeG_rBi?pT+#Adb+CXbf2m^U0tE+>LeLY%%`4!e&<9WYzT!u z1)ccSek`z!;hQ@RLC3%b1{4~N{%I!!fz2Q8e~|``z`25~gjfM2fa3s6p5p>e0!{(& z0Qdj`03m<~Kn%d-I}`9p0cQYY0CK=t00n>&a2`MnpaIYV=m7Kp7=QtA4uDCA5%?DX zmjD+5%m5Yu8-N#piE|nF?0_o(4ge>B3&0KF0q_AZ@vi>tgUuiA4>X_(*@Hh9kQY*r z9q^qX51_q2@6Lh}^IZg{to�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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..."; + + 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 " + 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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 z®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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 +# 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 diff --git a/dos2ux b/dos2ux new file mode 100755 index 0000000000000000000000000000000000000000..a1a2cec5164910cf18d392659c7d236fff23eef9 GIT binary patch literal 19771 zcmeHveRy2edFPci2H^-SJ2p)Sg$cpLruv%E=-V{Hwk&HSEY*^Y`5e!u?wHYxJok=d zw|oo;B^I(aE=wAkLgNrhN@^N53n|;eJ_@iHCv;2vG#}frPu!GU#=+g1uGdWniT3w< z&pCIlY?G${`Wd>m$f5i@Zn)GD!1)nU*32kgAbRGl9qSLBLGpv2L$5@GO?U6y=dv-l|i4 zp*;Z}lD)*T4xv)EOFmF*|A&zNG*H8I2sjh@Y=fx=jnv#5s9_2MXEMB|Y$o26O*UjR zx#HeNC*K%WJX9^Z^=;h_NVUVZsMiXl%aJ~eM7bKIOOSZ2L|TpX0V23ALV|j7eFXo1 z1BvA?6UzJlqg`k_>dAI5M3O!u7uz8BU$s7D8Q_bNXlIzxT8_kPmC6?VZwGekrvfzz z3QI{ASZqk z(rdsEBWL}4klq0P7IN|@kxl}y*5$tg{5{~`)ckG8YvGSy(fp4BzZ`g2^PfUq5By=x zXT9rz->vy;kq-cW6gk`fW29Swzpmv!4Ll2c7jo+JS4ejPU#j^RAU^<{K282TNRI%2 zMC0?w4+B4>@mG-F|6rhota zScTMBej}QZDAAKr&TGjbTBQE3(pVDx0jv&_79>5$xJRHq&rR&iSj>lmPOjK5hV` zKxvk#!VKgbXX52tnZcA^YJC6$McRr?22(9y{f5S!%gC>`KC1CL;V-co^uXSa7U%<77J-5j_@w(u& zfK8L0m=~Ouuo*f}JS{jaVh4#I5}cN?*AhP{I4xv16E6u)OW7U7#|5Xw>>lE~1gGWf zEyRZerv>dH;yr@XlJ-vG&4SaS_AcT0 zB7R(OTHfAI{B^-O0`@`T^MZ3E?1zazEjUNSK1BSG;2atIPl+ECoFimEO}r#HN6LPV z__*L4F?*i)F5t+m&_CWj^Y>G4o*Ek2W)C4o*%1WV-`Qaw{{28r`E3ZDo;ic@9UdxE z`j&fNI&-CE%}%k8)AR0eii8K5(r;5 z=U!vYZ3ujcl!cX=vuyfk@yE|`IeS6-uBYmg!Z)= zB44LQ(CxV_3c~?Wel;??=Sg%!D*20>PYV?${guE z$`(Ujm~%3(C~X!D0KjB0fRlgovF|lqX5y`XFMb74a~MgCcek6ts($ zzDi;jh_g4Gf-tOkIg9|t*U0FH1&#!+2HPq>3iu%Uuz3sAMHdbXpp#!@gRorF>}s|$ zeav0MF*we`wW@INKLECT6^#I%o-eMNy-tcO6qg-YN{FqX{@Lxdv$x*&-pmg}^Y8s< z8uFk2JalI2r@wH6uu*CK6-~wJnc~UN{LBvx`(M7jxxe$j75-uBu9FLHXvaeFHLu)9j#X{~3l8%3nwc}`uWEL|z3)8{Dz8x7^pT~M zZnVBgOQW06lmh`pt+~|cTW$}{M{j#c;#b{5v38+YQyzU!>P7!n&i2+Fk;Qnnca;K; zD%n+b4{dVtXJXtE;o}OPC;YbxK129b1z++I;O7xP%=DWu!im3T zS10Jj3(t~J{$CV4LXm~#_df+L%s1EffuXtSGT1}q?}ESl>w?U@2(hUjHx@5k{`JqE z02l6Y_f)yD_(2E|Ck)>7kI9>Nx=`-%fq2O?NCA{VB4+Gp$9`=N4g*Bz|h2_(X#i4l_Ka8H(XX@lC4&LX{ zg4A5RFf{-63f1qSasp(DBr<-S?X$Pl3@cCh^iQD_`-#4NaA2~{X zP|I+68Hy?mXGMq54-i>iuIm*0ADQMPr0ti_&Ex;v3uWN2)$D2sa>v|_Q!h}YsVnd{7rS+@1iCNY`1VB}F*IL#cNqqqlZXY}3l?Nt_pj>S_(h3%^KN+dvr
  • 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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 +# 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 +# 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 \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 . \n"; + print " -p Create video playlists for each year & month of video clips in the directory specified by -d .\n"; + print " -n Name of the tape to prepend to the front of each videoclip filename.\n"; + print " -d Directory we want to encode. If not specified, =\n"; + print " -a Use abbreviated names for merged video clips: yyyy-mm-dd.avi vs. .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 Time in minutes to grab from the camera (default "; print $max_tape_grab_time/60; print ")\n"; + print " -b 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 " /*.avi MiniDV Raw AVI files\n"; + print " /$encoded_dir/*.avi XVID compressed versions of the Raw AVI files\n"; + print " /$merge_dir/*.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