Hello there,
This past weekend I wrote these two .bat for working with video files and virtualdub to making basic operations in these video files. They are ready for this one task. But there others tasks to do and I going to edit these files a lot. And it's hard to edit both files always. Need some help to join these files...
Little explanation about what these files do. They read the .AVI files in a folder then create a .VCF file for every AVI. After that it is created a new .BAT to run all these .VCF in virtualDub. Nothing too hard but quiet a time saver.
Code:@echo off for %%a in ("*.avi") do call 2.bat "%%a" ECHO. 2>"Run VirtualDub Jobs.bat" ECHO @echo off>>"Run VirtualDub Jobs.bat" for %%a in ("*.vcf") do ECHO "C:\VirtualDubMod\VirtualDubMod.exe" /r /s"%%~fa" /x>>"Run VirtualDub Jobs.bat" & ECHO del "%%~fa">>"Run VirtualDub Jobs.bat">>"Run VirtualDub Jobs.bat"Code:@echo off set str1=%~f1 set str1=%str1:\=\\% ECHO VirtualDub.Open("%str1%","",0);>%~n1.vcf ECHO VirtualDub.RemoveInputStreams();>>%~n1.vcf ECHO VirtualDub.stream[0].SetSource(0x73647561,1,0);>>%~n1.vcf ECHO VirtualDub.stream[0].DeleteComments(1);>>%~n1.vcf ECHO VirtualDub.stream[0].AddComment(0x00000003,"","Portuguese");>>%~n1.vcf ECHO VirtualDub.stream[0].AdjustChapters(1);>>%~n1.vcf ECHO VirtualDub.stream[0].SetMode(0);>>%~n1.vcf ECHO VirtualDub.stream[0].SetInterleave(1,500,1,0,0);>>%~n1.vcf ECHO VirtualDub.stream[0].SetClipMode(1,1);>>%~n1.vcf ECHO VirtualDub.stream[0].SetConversion(0,0,0,0,0);>>%~n1.vcf ECHO VirtualDub.stream[0].SetVolume();>>%~n1.vcf ECHO VirtualDub.stream[0].SetCompression();>>%~n1.vcf ECHO VirtualDub.stream[0].EnableFilterGraph(0);>>%~n1.vcf ECHO VirtualDub.stream[0].filters.Clear();>>%~n1.vcf ECHO VirtualDub.stream[1].SetSource(0x73647561,0,0);>>%~n1.vcf ECHO VirtualDub.stream[1].DeleteComments(1);>>%~n1.vcf ECHO VirtualDub.stream[1].AddComment(0x00000003,"","English");>>%~n1.vcf ECHO VirtualDub.stream[1].AdjustChapters(1);>>%~n1.vcf ECHO VirtualDub.stream[1].SetMode(0);>>%~n1.vcf ECHO VirtualDub.stream[1].SetInterleave(1,500,1,0,0);>>%~n1.vcf ECHO VirtualDub.stream[1].SetClipMode(1,1);>>%~n1.vcf ECHO VirtualDub.stream[1].SetConversion(0,0,0,0,0);>>%~n1.vcf ECHO VirtualDub.stream[1].SetVolume();>>%~n1.vcf ECHO VirtualDub.stream[1].SetCompression();>>%~n1.vcf ECHO VirtualDub.stream[1].EnableFilterGraph(0);>>%~n1.vcf ECHO VirtualDub.stream[1].filters.Clear();>>%~n1.vcf ECHO VirtualDub.video.DeleteComments(1);>>%~n1.vcf ECHO VirtualDub.video.AddComment(0x00000002,"ISFT","VirtualDubMod 1.5.4.1 (build 2117/release)");>>%~n1.vcf ECHO VirtualDub.video.AdjustChapters(1);>>%~n1.vcf ECHO VirtualDub.video.SetDepth(24,24);>>%~n1.vcf ECHO VirtualDub.video.SetMode(0);>>%~n1.vcf ECHO VirtualDub.video.SetFrameRate(0,1);>>%~n1.vcf ECHO VirtualDub.video.SetIVTC(0,0,-1,0);>>%~n1.vcf ECHO VirtualDub.video.SetCompression();>>%~n1.vcf ECHO VirtualDub.video.filters.Clear();>>%~n1.vcf set str2="%~dp1NEW_AVI_%~1" set str2=%str2:\=\\% ECHO VirtualDub.SaveAVI(%str2%);>>%~n1.vcf ECHO VirtualDub.Close();>>%~n1.vcf
+ Reply to Thread
Results 1 to 4 of 4
-
-
I did something similar a couple of years ago. This a partial rehash of what I did.
It may lead you in a direction that helps.
I created a .jobs script for each avi in a folder and then ran virtualdub (with 2 pass XviD) using each script.
I kept all my input avi files in d:\movies\todo\. Output goes to d:\movies\done\. This batch file in d:\movies\.
I used the subst command to create the virtual drive, letter q: which points to my input folder.
I used the subst command to create the virtual drive, letter r: which points to my output folder.
Notice I find the frame count for the video clip. 'declare frames;' then,' frames = VirtualDub.video.length;'
I needed it for what I was doing.
Code:@echo off :: create the virtual drives and go to the root of drive q: subst q: d:\movies\todo subst r: d:\movies\done q: cd\ for %%a in ("*.avi") do echo // $numjobs 1 >"%%~na.jobs" for %%a in ("*.avi") do echo // >>"%%~na.jobs" for %%a in ("*.avi") do echo // $job "Job 1" >>"%%~na.jobs" for %%a in ("*.avi") do echo // $input "%%~fa" >>"%%~na.jobs" for %%a in ("*.avi") do echo // $output "r:\%%~na_New.avi" >>"%%~na.jobs" for %%a in ("*.avi") do echo // $state 0 >>"%%~na.jobs" for %%a in ("*.avi") do echo // $id e38e297a056ef12d >>"%%~na.jobs" for %%a in ("*.avi") do echo // $start_time 00000000 00000000 >>"%%~na.jobs" for %%a in ("*.avi") do echo // $end_time 00000000 00000000 >>"%%~na.jobs" for %%a in ("*.avi") do echo // $script >>"%%~na.jobs" for %%a in ("*.avi") do echo declare frames; >>"%%~na.jobs" for %%a in ("*.avi") do echo VirtualDub.Open("q:\\%%a","",0); >>"%%~na.jobs" for %%a in ("*.avi") do echo frames = VirtualDub.video.length; >>"%%~na.jobs" for %%a in ("*.avi") do echo VirtualDub.RemoveInputStreams(); >>"%%~na.jobs" for %%a in ("*.avi") do echo VirtualDub.stream[0].SetSource(0x73647561,1,0); >>"%%~na.jobs" for %%a in ("*.avi") do echo VirtualDub.stream[0].DeleteComments(1); >>"%%~na.jobs" for %%a in ("*.avi") do echo VirtualDub.stream[0].AddComment(0x00000003,"","Portuguese"); >>"%%~na.jobs" for %%a in ("*.avi") do echo VirtualDub.stream[0].AdjustChapters(1); >>"%%~na.jobs" etc. etc. etc. for %%a in ("*.avi") do echo VirtualDub.video.filters.Clear(); >>"%%~na.jobs" for %%a in ("*.avi") do echo VirtualDub.audio.filters.Clear(); >>"%%~na.jobs" for %%a in ("*.avi") do echo VirtualDub.subset.Clear(); >>"%%~na.jobs" for %%a in ("*.avi") do echo VirtualDub.subset.AddRange(0,frames); >>"%%~na.jobs" for %%a in ("*.avi") do echo VirtualDub.video.SetRange(); >>"%%~na.jobs" for %%a in ("*.avi") do echo VirtualDub.project.ClearTextInfo(); >>"%%~na.jobs" for %%a in ("*.avi") do echo // -- $reloadstop -- >>"%%~na.jobs" for %%a in ("*.avi") do echo VirtualDub.SaveAVI("r:\\%%~na_New.avi"); >>"%%~na.jobs" for %%a in ("*.avi") do echo VirtualDub.audio.SetSource(1); >>"%%~na.jobs" for %%a in ("*.avi") do echo VirtualDub.Close(); >>"%%~na.jobs" for %%a in ("*.avi") do echo // $endjob >>"%%~na.jobs" for %%a in ("*.avi") do echo // >>"%%~na.jobs" for %%a in ("*.avi") do echo //-------------------------------------------- >>"%%~na.jobs" for %%a in ("*.avi") do echo // $done >>"%%~na.jobs" for %%a in ("*.jobs") do "c:\virtualdub\virtualdub.exe" /s "%%~na.jobs" /x :: go back to d:\movies\ and delete the virtual drives. d: subst q: /d subst r: /d :end
Last edited by pcspeak; 17th Jan 2012 at 21:56.
-
Alright, pcspeak!!! You're a Genius.
Yesterday I tried a lot of different ways to make this work, but none, always creating new problems in my .bat.
Now I see. I can do a "for %%a" to add wich line in the .VCFs.
But in your case... like you said... you created JOBS files.
It's better to create these ones?
And the tip about creating a virtual drive worth a try. -
Hi.
The virtual drives worked for me. You may find a better method.
I found the double back slashes (\\) needed in the file paths to be a real pain and this was my way of getting around them.
I started creating .JOBS scripts after reading this. http://www.virtualdub.org/docs/vdscript.txt
.VCFs are also scripts, but the .JOBS scripts are better designed, I think, to use in batch mode.
It's just the way I did it.
CheersLast edited by pcspeak; 19th Jan 2012 at 14:41.
Similar Threads
-
Split/Trim/Join MOV files (works great with Canon SX130's files)
By truchopol in forum EditingReplies: 3Last Post: 27th Jul 2012, 10:35 -
Bat file not looping?
By sambat in forum ComputerReplies: 5Last Post: 26th Feb 2011, 14:58 -
Need a .bat file to join avi files
By aat666 in forum Newbie / General discussionsReplies: 2Last Post: 7th Oct 2010, 06:46 -
Problem using AVCHD_Convert *.bat files
By aghusker in forum Video ConversionReplies: 2Last Post: 17th Jul 2008, 20:46 -
Using Submerge to Join avi Files to srt Files: Problems with Export
By TiggyWink in forum MacReplies: 1Last Post: 26th Jun 2007, 08:16