RSFDrive.com
Разное => Технические вопросы => Тема начата: Eugene_Msk от Августа 26, 2008, 21:21:48
-
Помогите автоматизировать VirtualDubMod
Есть файлы с двумя звук дорожками, как повыкусывать вторую?
Каждый файл грузить в VirtualDubMod и делать Disable Stream, а потом Save AVI сума сойдешь
Помогите плиз!
С уважением, Евгений
-
ну, там можно использовать Job List ... т.е. выполнение команд списком ...
только вот он использует скрипты на внутреннем формате "Sylia script format" ...
вот пример скрипта, который удаляет второй аудио поток из AVIшки ...
// VirtualDub job list (Sylia script format)
// This is a program generated file -- edit at your own risk.
//
// $numjobs 1
//
// $job "Job 1"
// $input "C:\video.avi"
// $output "C:\new_video.avi"
// $state 0
// $start_time 0 0
// $end_time 0 0
// $script
VirtualDub.Open("C:\video.avi","",0);
VirtualDub.RemoveInputStreams();
VirtualDub.stream[0].SetSource(0x73647561,0,0);
VirtualDub.stream[0].DeleteComments(1);
VirtualDub.stream[0].AdjustChapters(1);
VirtualDub.stream[0].SetMode(0);
VirtualDub.stream[0].SetInterleave(1,500,1,0,0);
VirtualDub.stream[0].SetClipMode(1,1);
VirtualDub.stream[0].SetConversion(0,0,0,0,0);
VirtualDub.stream[0].SetVolume();
VirtualDub.stream[0].SetCompression();
VirtualDub.stream[0].EnableFilterGraph(0);
VirtualDub.stream[0].filters.Clear();
VirtualDub.video.DeleteComments(1);
VirtualDub.video.AddComment(0x00000002,"ISFT","VirtualDubMod 1.5.10.1 (build 2366/release)");
VirtualDub.video.AdjustChapters(1);
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.subset.Clear();
VirtualDub.subset.AddRange(0,130658);
VirtualDub.SaveAVI("C:\new_video.avi");
VirtualDub.Close();
// $endjob
//
//--------------------------------------------------
// $done
чисто теоретически, можно дописать его для всех твоих файлов ...
т.е. переменная // $numjobs 1 - это количество заданий ... скажем 10 ... // $numjobs 10
дальше
// $job "Job 2"
// $input "C:\video2.avi"
// $output "C:\new_video2.avi"
// $state 0
// $start_time 0 0
// $end_time 0 0
// $script
VirtualDub.Open("C:\video2.avi","",0);
VirtualDub.RemoveInputStreams();
VirtualDub.stream[0].SetSource(0x73647561,0,0);
VirtualDub.stream[0].DeleteComments(1);
VirtualDub.stream[0].AdjustChapters(1);
VirtualDub.stream[0].SetMode(0);
VirtualDub.stream[0].SetInterleave(1,500,1,0,0);
VirtualDub.stream[0].SetClipMode(1,1);
VirtualDub.stream[0].SetConversion(0,0,0,0,0);
VirtualDub.stream[0].SetVolume();
VirtualDub.stream[0].SetCompression();
VirtualDub.stream[0].EnableFilterGraph(0);
VirtualDub.stream[0].filters.Clear();
VirtualDub.video.DeleteComments(1);
VirtualDub.video.AddComment(0x00000002,"ISFT","VirtualDubMod 1.5.10.1 (build 2366/release)");
VirtualDub.video.AdjustChapters(1);
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.subset.Clear();
VirtualDub.subset.AddRange(0,130658);
VirtualDub.SaveAVI("C:\new_video2.avi");
VirtualDub.Close();
// $endjob
//
//--------------------------------------------------
и так для всех твоих файлов ...
в конце
// $done
это всё сохранить в файл 12345.jobs
потом в VirtualDubMod Load Job List и Start ...
но я не проверял)))