[go: up one dir, main page]

Menu

#292 Different job file created by batch operation vs VDub2 GUI

closed
nobody
None
bug
2020-02-02
2020-01-31
Mike Tough
No

Hi,

I'm running VirtualDub2 64bit build 44015 in a Windows10 64bit enrironment.

I've created a windows batch script to add jobs to VDub job list. The processing input is from the AviSynth+ frame server via a .avs input file. The job file created fails when run. Creating the same job within the VDub GUI runs as expected. I've noticed differences in the job file which appear to result in a null video file being processed.

Using the GUI interface, the resultant job file is as follows:

// VirtualDub job list (Sylia script format)
// This is a program generated file -- edit at your own risk.
//
// $signature 0 1
// $numjobs 1
//

// $job "Job 1"
// $data ""
// $input "D:\Users\miket\Videos\Process VHS Tapes\Files De-Interlaced\Test 01.avs"
// $output "D:\Users\miket\Videos\Process VHS Tapes\Files De-Interlaced\Test 01.mov"
// $state 2
// $id b0a07ec542738288
// $runner_id b0a05aad000035dc
// $runner_name "MIKE-PC"
// $start_time 01d5d837 f5df5c78
// $end_time 01d5d838 26b4ef69
// $script

// $script

VirtualDub.Open("D:\\Users\\miket\\Videos\\Process VHS Tapes\\Files De-Interlaced\\Test 01.avs","",0);
VirtualDub.audio.SetSource(1);
VirtualDub.audio.SetMode(0);
VirtualDub.audio.SetInterleave(1,500,1,0,0);
VirtualDub.audio.SetClipMode(1,1);
VirtualDub.audio.SetEditMode(1);
VirtualDub.audio.SetConversion(0,0,0,0,0);
VirtualDub.audio.SetVolume();
VirtualDub.audio.SetCompressionWithHint(255,48000,2,16,48000,1536,5,"EZBW5QA=","ffmpeg_aac");
VirtualDub.audio.SetCompData(16,"AgAAAAAAAADAAAAAAQAAAA==");
VirtualDub.audio.EnableFilterGraph(0);
VirtualDub.video.SetInputFormat(0);
VirtualDub.video.SetOutputFormat(15);
VirtualDub.video.SetOutputMatrix(2,1);
VirtualDub.video.SetMode(3);
VirtualDub.video.SetSmartRendering(0);
VirtualDub.video.SetPreserveEmptyFrames(0);
VirtualDub.video.SetFrameRate2(0,0,1);
VirtualDub.video.SetIVTC(0, 0, 0, 0);
VirtualDub.video.SetCompression(0x68637061,0,10000,0,"avlib-1.vdplugin");
VirtualDub.video.SetCompData(20,"AAAAAAQAAAAKAAAAAwAAAAQAAAA=");
VirtualDub.SaveFormat("ffmpeg","mov");
VirtualDub.SaveAudioFormat("");
VirtualDub.video.filters.BeginUpdate();
VirtualDub.video.filters.Clear();
VirtualDub.video.filters.Add("null transform");
VirtualDub.video.filters.instance[0].SetClipping(18,2,14,12);
VirtualDub.video.filters.Add("resize");
VirtualDub.video.filters.instance[1].Config(960,720,0,4,3,0,320,240,4,3,0,4,1,0x000000);
VirtualDub.video.filters.Add("smoother");
VirtualDub.video.filters.instance[2].Config(200,1);
VirtualDub.video.filters.instance[2].SetEnabled(false);
VirtualDub.video.filters.Add("temporal smoother");
VirtualDub.video.filters.instance[3].Config(2);
VirtualDub.video.filters.instance[3].SetEnabled(false);
VirtualDub.video.filters.Add("sharpen");
VirtualDub.video.filters.instance[4].Config(5);
VirtualDub.video.filters.instance[4].SetEnabled(false);
VirtualDub.video.filters.Add("Histogram");
VirtualDub.video.filters.instance[5].Config(0);
VirtualDub.video.filters.instance[5].SetEnabled(false);
VirtualDub.video.filters.EndUpdate();
VirtualDub.audio.filters.Clear();
**VirtualDub.subset.Clear();
VirtualDub.subset.AddRange(0,1464);
VirtualDub.video.SetRange();**
VirtualDub.project.ClearTextInfo();
  // -- $reloadstop --
VirtualDub.SaveAVI("D:\\Users\\miket\\Videos\\Process VHS Tapes\\Files De-Interlaced\\Test 01.mov");
VirtualDub.audio.SetSource(1);
VirtualDub.Close();



// $endjob
//
//--------------------------------------------------
// $done

Using the batch command : %VDub% /s%SCRIPT% /p%INPUT%,%OUTPUT% the job file generated is as follows:

// VirtualDub job list (Sylia script format)
// This is a program generated file -- edit at your own risk.
//
// $signature 0 1
// $numjobs 1
//

// $job "Job 1"
// $data ""
// $input "D:\Users\miket\Videos\Process VHS Tapes\Files De-Interlaced\Test 01.avs"
// $output "D:\Users\miket\Videos\Process VHS Tapes\Files De-Interlaced\Test 01.mov"
// $state 0
// $id b0a0e5ed428df577
// $start_time 00000000 00000000
// $end_time 00000000 00000000
// $script

VirtualDub.Open("D:\\Users\\miket\\Videos\\Process VHS Tapes\\Files De-Interlaced\\Test 01.avs","",0);
VirtualDub.audio.SetSource(1);
VirtualDub.audio.SetMode(0);
VirtualDub.audio.SetInterleave(1,500,1,0,0);
VirtualDub.audio.SetClipMode(1,1);
VirtualDub.audio.SetEditMode(1);
VirtualDub.audio.SetConversion(0,0,0,0,0);
VirtualDub.audio.SetVolume();
VirtualDub.audio.SetCompressionWithHint(255,48000,2,16,48000,1536,5,"EZBW5QA=","ffmpeg_aac");
VirtualDub.audio.SetCompData(16,"AgAAAAAAAADAAAAAAQAAAA==");
VirtualDub.audio.EnableFilterGraph(0);
VirtualDub.video.SetInputFormat(0);
VirtualDub.video.SetOutputFormat(15);
VirtualDub.video.SetOutputMatrix(2,1);
VirtualDub.video.SetMode(3);
VirtualDub.video.SetSmartRendering(0);
VirtualDub.video.SetPreserveEmptyFrames(0);
VirtualDub.video.SetFrameRate2(0,0,1);
VirtualDub.video.SetIVTC(0, 0, 0, 0);
VirtualDub.video.SetCompression(0x68637061,0,10000,0,"avlib-1.vdplugin");
VirtualDub.video.SetCompData(20,"AAAAAAQAAAAKAAAAAwAAAAQAAAA=");
VirtualDub.SaveFormat("ffmpeg","mov");
VirtualDub.SaveAudioFormat("");
VirtualDub.video.filters.BeginUpdate();
VirtualDub.video.filters.Clear();
VirtualDub.video.filters.Add("null transform");
VirtualDub.video.filters.instance[0].SetClipping(18,2,14,12);
VirtualDub.video.filters.Add("resize");
VirtualDub.video.filters.instance[1].Config(960,720,0,4,3,0,320,240,4,3,0,4,1,0x000000);
VirtualDub.video.filters.Add("smoother");
VirtualDub.video.filters.instance[2].Config(200,1);
VirtualDub.video.filters.instance[2].SetEnabled(false);
VirtualDub.video.filters.Add("temporal smoother");
VirtualDub.video.filters.instance[3].Config(2);
VirtualDub.video.filters.instance[3].SetEnabled(false);
VirtualDub.video.filters.Add("sharpen");
VirtualDub.video.filters.instance[4].Config(5);
VirtualDub.video.filters.instance[4].SetEnabled(false);
VirtualDub.video.filters.Add("Histogram");
VirtualDub.video.filters.instance[5].Config(0);
VirtualDub.video.filters.instance[5].SetEnabled(false);
VirtualDub.video.filters.EndUpdate();
VirtualDub.audio.filters.Clear();
**VirtualDub.subset.Clear();
VirtualDub.video.SetRangeFrames(0,0);**
VirtualDub.project.ClearTextInfo();
  // -- $reloadstop --
VirtualDub.SaveAVI("D:\\Users\\miket\\Videos\\Process VHS Tapes\\Files De-Interlaced\\Test 01.mov");
VirtualDub.audio.SetSource(1);
VirtualDub.Close();

// $endjob
//
//--------------------------------------------------
// $done

I've highlighted the differences (hopefully). The issue appears to be that the command line version sets up a null video subset for processing in the job file.

In my application, the files do not exist when running the batch command, so determining the frame size is not possible. It may be that VDub is defaulting to a null file in that case. If it is, it may be preferable (for me at least) to default to processing the full file.

My current workaround is to post process the job file and comment out the lines.

VirtualDub.subset.Clear();
VirtualDub.video.SetRangeFrames(0,0);

Messy, but works for me.

Related

Wiki: changes

Discussion

  • Mike Tough

    Mike Tough - 2020-01-31

    Highlighting differences failed - Difference contained within bold delimiters.

    By frame size, I really meant frame count.

     
  • Anton Shekhovtsov

    Thanks for report. Your suggestion about the default range sounds right.
    I'm surprised it actually created any job with missing input file!

     
  • Mike Tough

    Mike Tough - 2020-01-31

    For my application, I'm using the batch file to set up a series of chained jobs (each job utilising the file output from the previous job). The batch file is simply used to automate the set-up process. In my case, each job processess the the full input file, without any trimming. I'd guess that would be the required default position for most users (in the case of an input file of unknown length).

     

    Last edit: Mike Tough 2020-01-31
  • Anton Shekhovtsov

    • status: open --> closed
     
  • Anton Shekhovtsov

    fixed in build 44065

    The new behavior is to not write subset commands at all if entire file is processed.

     

Anonymous
Anonymous

Add attachments
Cancel