Клуб любителей научной фантастики, фэнтези и мистики

Автор Тема: Помогите автоматизировать VirtualDubMod  (Прочитано 12142 раз)

Помогите автоматизировать VirtualDubMod
« : Августа 26, 2008, 21:21:48 »

Eugene_Msk

  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
    • http://www.ru-host.ru
Помогите автоматизировать VirtualDubMod

Есть файлы с двумя звук дорожками, как повыкусывать вторую?
Каждый файл грузить в VirtualDubMod и делать Disable Stream, а потом Save AVI сума сойдешь
Помогите плиз!

С уважением, Евгений

Помогите автоматизировать VirtualDubMod
« Ответ #1 : Августа 26, 2008, 21:47:52 »

Hattak

  • Админ
  • Древний
  • *****
  • Сообщений: 6007
    • Просмотр профиля
    • RSFDrive.com
ну, там можно использовать 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 ...
но я не проверял)))
« Последнее редактирование: Августа 26, 2008, 21:49:58 от Hattak »