Batch Render Regions to Filenames??

MikeLV wrote on 6/20/2013, 12:17 AM
Is there some way to batch render all the regions in a project and name the files the same name as the regions, in this case, song titles? I went through the trouble of naming all the regions, and then I look in the batch render script and it just gives me the option of a base file name. There's got to be a way to have the region names be the file names for all these MP3 files I'm about to render?

Comments

altarvic wrote on 6/20/2013, 1:56 AM
There are some free scripts somewhere on the web that do this (try to search on this forum).
And there are commercial solutions: http://vegasaur.com/transcoder
JohnnyRoy wrote on 6/20/2013, 7:30 AM
Try VASST Render Assistant plug-in for Vegas Pro or Movie Studio. It only cost $9.95 USD and will do what you want.

~jr

John Rofrano
VASST
MikeLV wrote on 6/20/2013, 12:00 PM
I watched the Render Assistant tutorial video, but did not see anything mentioned about the region names being the file names. There was only something about file suffixes to avoid duplicates. You're certain that Render Assistant will render file names the same as the region names?
MikeLV wrote on 6/20/2013, 4:22 PM
Ok, I purchased the Render Assistant, looks like a nice tool so far!
JohnnyRoy wrote on 6/21/2013, 8:09 PM
Sorry I didn't get back to you sooner. I wish these forums had some kind of email notification.

Yes, Render Assistant definitely uses the region names as the filenames. I wrote it so if you have any questions or requests I'd be happy to discuss them with you.

Thanks for purchasing. :)

~jr
astar wrote on 1/24/2014, 7:34 PM
Whats funny about this is that Vegas used come with a stand alone batch tool. Wonder why they killed that. In a file base workflow, Sony should have a batch tool that make all roads lead to Sony codecs. I find myself batching all .mts and .mov to xdcam before editing.
astar wrote on 8/27/2014, 11:05 PM

Here is a modified version of the default Sony Batch script. This script uses the Region Name as the output file name. Copy the script below to a new text file, change the extension to .cs, and move to your programs/sony/vegas13/script folder. Use what ever name you want to describe it.

I use this script to convert camera .mts and .mov to XDCAM or other editing intermediate files. I like to keep the camera original files around incase there is a need to re-render from individual files. You can also use this to create proxies of your footage in any format you choose. Here is how I use the script:

1 - insert all the files you want to batch on the the timeline

2 - execute the default Sony script that inserts regions around the timeline events.

3 - using the "edit details" windows in vegas, copy and paste the "active take name" column into the Region "name" column.

4 - execute the script below, the GUI will popup, set for Regions, select output template, and use the default base name. the script will ignore the default base name, and use the region name for the output file name. The output template you select will determine the .xyz extension.


/**
* Sample script that performs batch renders with GUI for selecting
* render templates.
*
* This script has been modified to batch render the region names to the new file, and not the default render template.
*
* Revision Date: 8-27-14.
**/
using System;
using System.IO;
using System.Text;
using System.Drawing;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Windows.Forms;

using Sony.Vegas;

public class EntryPoint {

// set this to true if you want to allow files to be overwritten
bool OverwriteExistingFiles = false;

String defaultBasePath = "Untitled_";
const int QUICKTIME_MAX_FILE_NAME_LENGTH = 55;

Sony.Vegas.Vegas myVegas = null;

enum RenderMode
{
Project = 0,
Selection,
Regions,
}

ArrayList SelectedTemplates = new ArrayList();

public void FromVegas(Vegas vegas)
{
myVegas = vegas;

String projectPath = myVegas.Project.FilePath;
if (String.IsNullOrEmpty(projectPath))
{
String dir = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments);
defaultBasePath = Path.Combine(dir, defaultBasePath);
}
else
{
String dir = Path.GetDirectoryName(projectPath);
String fileName = Path.GetFileNameWithoutExtension(projectPath);
defaultBasePath = Path.Combine(dir, fileName + "_");
}

DialogResult result = ShowBatchRenderDialog();
myVegas.UpdateUI();
if (DialogResult.OK == result)
{
// inform the user of some special failure cases
String outputFilePath = FileNameBox.Text;
RenderMode renderMode = RenderMode.Project;
if (RenderRegionsButton.Checked)
{
renderMode = RenderMode.Regions;
}
else if (RenderSelectionButton.Checked)
{
renderMode = RenderMode.Selection;
}
DoBatchRender(SelectedTemplates, outputFilePath, renderMode);
}
}

void DoBatchRender(ArrayList selectedTemplates, String basePath, RenderMode renderMode)
{
String outputDirectory = Path.GetDirectoryName(basePath);
String baseFileName = Path.GetFileName(basePath);

// make sure templates are selected
if ((null == selectedTemplates) || (0 == selectedTemplates.Count))
throw new ApplicationException("No render templates selected.");

// make sure the output directory exists
if (!Directory.Exists(outputDirectory))
throw new ApplicationException("The output directory does not exist.");

List<RenderArgs> renders = new List<RenderArgs>();

// enumerate through each selected render template
foreach (RenderItem renderItem in selectedTemplates)
{
// construct the file name (most of it)
String filename = Path.Combine(outputDirectory,
FixFileName(baseFileName) +
FixFileName(renderItem.Renderer.FileTypeName) +
"_" +
FixFileName(renderItem.Template.Name));

//check to see if this is a QuickTime file...if so, file length cannot exceed 59 characters
if (renderItem.Renderer.ClassID == Renderer.CLSID_CSfQT7RenderFileClass)
{
int size = baseFileName.Length + renderItem.Renderer.FileTypeName.Length + 1 + renderItem.Template.Name.Length;
if (size > QUICKTIME_MAX_FILE_NAME_LENGTH)
{
int dif = size - (QUICKTIME_MAX_FILE_NAME_LENGTH - 2); //extra buffer for a "--" to indicated name is truncated.
string tempstr1 = renderItem.Renderer.FileTypeName;
string tempstr2 = renderItem.Template.Name;
if (tempstr1.Length < (dif + 3))
{
dif -= (tempstr1.Length - 3);
tempstr1 = tempstr1.Substring(0, 3);
tempstr2 = tempstr2.Substring(dif);
}
else
{
tempstr1 = tempstr1.Substring(0, tempstr1.Length - dif);
}
filename = Path.Combine(outputDirectory,
FixFileName(baseFileName) +
FixFileName(tempstr1) +
"--" +
FixFileName(tempstr2));
}
}
if (RenderMode.Regions == renderMode) {
int regionIndex = 0;
foreach (Sony.Vegas.Region region in myVegas.Project.Regions) {
String regionFilename = Path.Combine(outputDirectory,
String.Format("{0}{1}",
FixFileName(region.Label),
renderItem.Extension));
RenderArgs args = new RenderArgs();
args.OutputFile = regionFilename;
args.RenderTemplate = renderItem.Template;
args.Start = region.Position;
args.Length = region.Length;
renders.Add(args);
regionIndex++;
}
} else {
filename += renderItem.Extension;
RenderArgs args = new RenderArgs();
args.OutputFile = filename;
args.RenderTemplate = renderItem.Template;
args.UseSelection = (renderMode == RenderMode.Selection);
renders.Add(args);
}
}

// validate all files and propmt for overwrites
foreach (RenderArgs args in renders) {
ValidateFilePath(args.OutputFile);
if (!OverwriteExistingFiles)
{
if (File.Exists(args.OutputFile)) {
String msg = "File(s) exists. Do you want to overwrite them?";
DialogResult rs;
rs = MessageBox.Show(msg,
"Overwrite files?",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button2);
if (DialogResult.Cancel == rs) {
return;
} else {
OverwriteExistingFiles = true;
}
}
}
}

// perform all renders. The Render method returns a member of the RenderStatus enumeration. If it is
// anything other than OK, exit the loop.
foreach (RenderArgs args in renders) {
if (RenderStatus.Canceled == DoRender(args)) {
break;
}
}

}

RenderStatus DoRender(RenderArgs args)
{
RenderStatus status = myVegas.Render(args);
switch (status)
{
case RenderStatus.Complete:
case RenderStatus.Canceled:
break;
case RenderStatus.Failed:
default:
StringBuilder msg = new StringBuilder("Render failed:\n");
msg.Append("\n file name: ");
msg.Append(args.OutputFile);
msg.Append("\n Template: ");
msg.Append(args.RenderTemplate.Name);
throw new ApplicationException(msg.ToString());
}
return status;
}

String FixFileName(String name)
{
const Char replacementChar = '-';
foreach (char badChar in Path.GetInvalidFileNameChars()) {
name = name.Replace(badChar, replacementChar);
}
return name;
}

void ValidateFilePath(String filePath)
{
if (filePath.Length > 260)
throw new ApplicationException("File name too long: " + filePath);
foreach (char badChar in Path.GetInvalidPathChars()) {
if (0 <= filePath.IndexOf(badChar)) {
throw new ApplicationException("Invalid file name: " + filePath);
}
}
}

class RenderItem
{
public readonly Renderer Renderer = null;
public readonly RenderTemplate Template = null;
public readonly String Extension = null;

public RenderItem(Renderer r, RenderTemplate t, String e)
{
this.Renderer = r;
this.Template = t;
// need to strip off the extension's leading "*"
if (null != e) this.Extension = e.TrimStart('*');
}
}


Button BrowseButton;
TextBox FileNameBox;
TreeView TemplateTree;
RadioButton RenderProjectButton;
RadioButton RenderRegionsButton;
RadioButton RenderSelectionButton;

DialogResult ShowBatchRenderDialog()
{
Form dlog = new Form();
dlog.Text = "Batch Render";
dlog.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
dlog.MaximizeBox = false;
dlog.StartPosition = FormStartPosition.CenterScreen;
dlog.Width = 610;
dlog.FormClosing += this.HandleFormClosing;

int titleBarHeight = dlog.Height - dlog.ClientSize.Height;
int buttonWidth = 80;

FileNameBox = AddTextControl(dlog, "Base File Name", titleBarHeight + 6, 460, 10, defaultBasePath);

BrowseButton = new Button();
BrowseButton.Left = FileNameBox.Right + 4;
BrowseButton.Top = FileNameBox.Top - 2;
BrowseButton.Width = buttonWidth;
BrowseButton.Height = BrowseButton.Font.Height + 12;
BrowseButton.Text = "Browse...";
BrowseButton.Click += new EventHandler(this.HandleBrowseClick);
dlog.Controls.Add(BrowseButton);

TemplateTree = new TreeView();
TemplateTree.Left = 10;
TemplateTree.Width = dlog.Width - 35;
TemplateTree.Top = BrowseButton.Bottom + 10;
TemplateTree.Height = 300;
TemplateTree.CheckBoxes = true;
TemplateTree.AfterCheck += new TreeViewEventHandler(this.HandleTreeViewCheck);
dlog.Controls.Add(TemplateTree);

int buttonTop = TemplateTree.Bottom + 16;
int buttonsLeft = dlog.Width - (2*(buttonWidth+10));

RenderProjectButton = AddRadioControl(dlog,
"Render Project",
6,
buttonTop,
true);
RenderSelectionButton = AddRadioControl(dlog,
"Render Selection",
RenderProjectButton.Right,
buttonTop,
(0 != myVegas.SelectionLength.Nanos));
RenderRegionsButton = AddRadioControl(dlog,
"Render Regions",
RenderSelectionButton.Right,
buttonTop,
(0 != myVegas.Project.Regions.Count));
RenderProjectButton.Checked = true;

Button okButton = new Button();
okButton.Text = "OK";
okButton.Left = dlog.Width - (2*(buttonWidth+20));
okButton.Top = buttonTop;
okButton.Width = buttonWidth;
okButton.Height = okButton.Font.Height + 12;
okButton.DialogResult = System.Windows.Forms.DialogResult.OK;
dlog.AcceptButton = okButton;
dlog.Controls.Add(okButton);

Button cancelButton = new Button();
cancelButton.Text = "Cancel";
cancelButton.Left = dlog.Width - (1*(buttonWidth+20));
cancelButton.Top = buttonTop;
cancelButton.Height = cancelButton.Font.Height + 12;
cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
dlog.CancelButton = cancelButton;
dlog.Controls.Add(cancelButton);

dlog.Height = titleBarHeight + okButton.Bottom + 8;
dlog.ShowInTaskbar = false;

FillTemplateTree();

return dlog.ShowDialog(myVegas.MainWindow);
}

TextBox AddTextControl(Form dlog, String labelName, int left, int width, int top, String defaultValue)
{
Label label = new Label();
label.AutoSize = true;
label.Text = labelName + ":";
label.Left = left;
label.Top = top + 4;
dlog.Controls.Add(label);

TextBox textbox = new TextBox();
textbox.Multiline = false;
textbox.Left = label.Right;
textbox.Top = top;
textbox.Width = width - (label.Width);
textbox.Text = defaultValue;
dlog.Controls.Add(textbox);

return textbox;
}

RadioButton AddRadioControl(Form dlog, String labelName, int left, int top, bool enabled)
{
Label label = new Label();
label.AutoSize = true;
label.Text = labelName;
label.Left = left;
label.Top = top + 4;
label.Enabled = enabled;
dlog.Controls.Add(label);

RadioButton radiobutton = new RadioButton();
radiobutton.Left = label.Right;
radiobutton.Width = 36;
radiobutton.Top = top;
radiobutton.Enabled = enabled;
dlog.Controls.Add(radiobutton);

return radiobutton;
}

static Guid[] TheDefaultTemplateRenderClasses =
{
Renderer.CLSID_SfWaveRenderClass,
Renderer.CLSID_SfW64ReaderClass,
Renderer.CLSID_CSfAIFRenderFileClass,
Renderer.CLSID_CSfFLACRenderFileClass,
Renderer.CLSID_CSfPCARenderFileClass,
};

bool AllowDefaultTemplates(Guid rendererID)
{
foreach (Guid guid in TheDefaultTemplateRenderClasses)
{
if (guid == rendererID)
return true;
}
return false;
}

void FillTemplateTree()
{
int projectAudioChannelCount = 0;
if (AudioBusMode.Stereo == myVegas.Project.Audio.MasterBusMode) {
projectAudioChannelCount = 2;
} else if (AudioBusMode.Surround == myVegas.Project.Audio.MasterBusMode) {
projectAudioChannelCount = 6;
}
bool projectHasVideo = ProjectHasVideo();
bool projectHasAudio = ProjectHasAudio();
int projectVideoStreams = !projectHasVideo ? 0 :
(Stereo3DOutputMode.Off != myVegas.Project.Video.Stereo3DMode ? 2 : 1);

foreach (Renderer renderer in myVegas.Renderers) {
try {
String rendererName = renderer.FileTypeName;
TreeNode rendererNode = new TreeNode(rendererName);
rendererNode.Tag = new RenderItem(renderer, null, null);
foreach (RenderTemplate template in renderer.Templates) {
try {
// filter out invalid templates
if (!template.IsValid()) {
continue;
}
// filter out video templates when project has
// no video.
if (!projectHasVideo && (0 < template.VideoStreamCount)) {
continue;
}
// filter out templates that are 3d when the project is just 2d
if (projectHasVideo && projectVideoStreams < template.VideoStreamCount) {
continue;
}

// filter the default template (template 0) and we don't allow defaults
// for this renderer
if (template.TemplateID == 0 && !AllowDefaultTemplates(renderer.ClassID)) {
continue;
}

// filter out audio-only templates when project has no audio
if (!projectHasAudio && (0 == template.VideoStreamCount) && (0 < template.AudioStreamCount)) {
continue;
}
// filter out templates that have more channels than the project
if (projectAudioChannelCount < template.AudioChannelCount) {
continue;
}
// filter out templates that don't have
// exactly one file extension
String[] extensions = template.FileExtensions;
if (1 != extensions.Length) {
continue;
}
String templateName = template.Name;
TreeNode templateNode = new TreeNode(templateName);
templateNode.Tag = new RenderItem(renderer, template, extensions[0]);
rendererNode.Nodes.Add(templateNode);
} catch (Exception e) {
// skip it
MessageBox.Show(e.ToString());
}
}
if (0 == rendererNode.Nodes.Count) {
continue;
} else if (1 == rendererNode.Nodes.Count) {
// skip it if the only template is the project
// settings template.
if (0 == ((RenderItem) rendererNode.Nodes[0].Tag).Template.Index) {
continue;
}
} else {
TemplateTree.Nodes.Add(rendererNode);
}
} catch {
// skip it
}
}
}

bool ProjectHasVideo() {
foreach (Track track in myVegas.Project.Tracks) {
if (track.IsVideo()) {
return true;
}
}
return false;
}

bool ProjectHasAudio() {
foreach (Track track in myVegas.Project.Tracks) {
if (track.IsAudio()) {
return true;
}
}
return false;
}

void UpdateSelectedTemplates()
{
SelectedTemplates.Clear();
foreach (TreeNode node in TemplateTree.Nodes) {
foreach (TreeNode templateNode in node.Nodes) {
if (templateNode.Checked) {
SelectedTemplates.Add(templateNode.Tag);
}
}
}
}

void HandleBrowseClick(Object sender, EventArgs args)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "All Files (*.*)|*.*";
saveFileDialog.CheckPathExists = true;
saveFileDialog.AddExtension = false;
if (null != FileNameBox) {
String filename = FileNameBox.Text;
String initialDir = Path.GetDirectoryName(filename);
if (Directory.Exists(initialDir)) {
saveFileDialog.InitialDirectory = initialDir;
}
saveFileDialog.DefaultExt = Path.GetExtension(filename);
saveFileDialog.FileName = Path.GetFileNameWithoutExtension(filename);
}
if (System.Windows.Forms.DialogResult.OK == saveFileDialog.ShowDialog()) {
if (null != FileNameBox) {
FileNameBox.Text = Path.GetFullPath(saveFileDialog.FileName);
}
}
}

void HandleTreeViewCheck(object sender, TreeViewEventArgs args)
{
if (args.Node.Checked) {
if (0 != args.Node.Nodes.Count) {
if ((args.Action == TreeViewAction.ByKeyboard) || (args.Action == TreeViewAction.ByMouse)) {
SetChildrenChecked(args.Node, true);
}
} else if (!args.Node.Parent.Checked) {
args.Node.Parent.Checked = true;
}
} else {
if (0 != args.Node.Nodes.Count) {
if ((args.Action == TreeViewAction.ByKeyboard) || (args.Action == TreeViewAction.ByMouse)) {
SetChildrenChecked(args.Node, false);
}
} else if (args.Node.Parent.Checked) {
if (!AnyChildrenChecked(args.Node.Parent)) {
args.Node.Parent.Checked = false;
}
}
}
}

void HandleFormClosing(Object sender, FormClosingEventArgs args)
{
Form dlg = sender as Form;
if (null == dlg) return;
if (DialogResult.OK != dlg.DialogResult) return;
String outputFilePath = FileNameBox.Text;
try {
String outputDirectory = Path.GetDirectoryName(outputFilePath);
if (!Directory.Exists(outputDirectory)) throw new ApplicationException();
} catch {
String title = "Invalid Directory";
StringBuilder msg = new StringBuilder();
msg.Append("The output directory does not exist.\n");
msg.Append("Please specify the directory and base file name using the Browse button.");
MessageBox.Show(dlg, msg.ToString(), title, MessageBoxButtons.OK, MessageBoxIcon.Error);
args.Cancel = true;
return;
}
try {
String baseFileName = Path.GetFileName(outputFilePath);
if (String.IsNullOrEmpty(baseFileName)) throw new ApplicationException();
if (-1 != baseFileName.IndexOfAny(Path.GetInvalidFileNameChars())) throw new ApplicationException();
} catch {
String title = "Invalid Base File Name";
StringBuilder msg = new StringBuilder();
msg.Append("The base file name is not a valid file name.\n");
msg.Append("Make sure it contains one or more valid file name characters.");
MessageBox.Show(dlg, msg.ToString(), title, MessageBoxButtons.OK, MessageBoxIcon.Error);
args.Cancel = true;
return;
}
UpdateSelectedTemplates();
if (0 == SelectedTemplates.Count)
{
String title = "No Templates Selected";
StringBuilder msg = new StringBuilder();
msg.Append("No render templates selected.\n");
msg.Append("Select one or more render templates from the available formats.");
MessageBox.Show(dlg, msg.ToString(), title, MessageBoxButtons.OK, MessageBoxIcon.Error);
args.Cancel = true;
return;
}
}

void SetChildrenChecked(TreeNode node, bool checkIt)
{
foreach (TreeNode childNode in node.Nodes) {
if (childNode.Checked != checkIt)
childNode.Checked = checkIt;
}
}

bool AnyChildrenChecked(TreeNode node)
{
foreach (TreeNode childNode in node.Nodes) {
if (childNode.Checked) return true;
}
return false;
}

}
David Thiel wrote on 2/10/2016, 1:37 PM
I just purchased Render Assistant and it works for me except in one regard:
I create regions on large assets (like 2.5 hr movies)
I do this on a scene per scene basis.
I need to extract a select group of regions.
I can highlight regions in the region list but Render Assistant ignores the selection and renders every defined region.
As a workaround I could save a temp project and delete all the unwanted defined regions but this is a tad awkward.
Any chance of being able to specify which regions to render (like Sound Forge)?
thanks
DaveH wrote on 1/28/2017, 9:17 AM

Tried using your script in Sony Vegas 14. I don't understand step 2 and 3.

 

2 - execute the default Sony script that inserts regions around the timeline events.

3 - using the "edit details" windows in Vegas, copy and paste the "active take name" column into the Region "name" column.

 

Where is this "Sony script that inserts regions around timeline events"? I made my own regions manually. When I run your script I get "A namespace cannot directly contain members such as fields or methods"

set wrote on 1/28/2017, 4:25 PM

https://www.vegascreativesoftware.info/us/forum/vegas-pro-scripting-faqs--104563/

3POINT wrote on 2/1/2017, 3:02 PM

Thanks Astar, I'm already searching for days for a script like this, which can batch render regionsnames to filenames. With SOMAconvertor Tool from FocusOnVegas I also quickly made it suitable for VegasPro14.

Now I'm still looking for a script which could rename the events with the recording date/time stamp of the (HDV)events?

3POINT, Theo Houben, Vegasuser since version 5

Recware: DJI Osmo Pocket, GoproHero7Black, PanasonicFZ300/HCX909, Sony PXW-X160.

Software:VegasPro16/VegasMovieStudio16/PowerDirector16

Hardware:i7 4770, 16GB, GTX650ti, 1920x1200 display

Playware:Philips 55PFL7108

Marco. wrote on 2/2/2017, 9:32 AM

"Now I'm still looking for a script which could rename the events with the recording date/time stamp of the (HDV)events?"

Isn't this exactly what ShowRecDat does?

3POINT wrote on 2/2/2017, 11:14 AM

Marco, ShowRecDat from elCutty works fine with AVCHD and memory card recordings, not with HDV or tape based recordings. I can remember that he wrote also a script in those HDV days which was part of HDscn2EDL, which was able to read recording date/time from HDV.

3POINT, Theo Houben, Vegasuser since version 5

Recware: DJI Osmo Pocket, GoproHero7Black, PanasonicFZ300/HCX909, Sony PXW-X160.

Software:VegasPro16/VegasMovieStudio16/PowerDirector16

Hardware:i7 4770, 16GB, GTX650ti, 1920x1200 display

Playware:Philips 55PFL7108

zulqar-cheeema wrote on 2/2/2017, 12:04 PM

I have a script that I have updated for Vegas 14 that allows Batch render with the option of names the files with the region names.
Batch Render 5 Magix.cs

I also have a script allows batch multiple projects, with redner regions as well
Multiple Project Render Magix.cs

Export Markers for DVD-A
Export Markers For DVD-A Magix.js

Files here

nge wrote on 2/12/2017, 10:15 AM

I have a script that I have updated for Vegas 14 that allows Batch render with the option of names the files with the region names.
Batch Render 5 Magix.cs

I also have a script allows batch multiple projects, with redner regions as well
Multiple Project Render Magix.cs

Export Markers for DVD-A
Export Markers For DVD-A Magix.js

Files here

Great !!! Thanks.

billvo wrote on 2/20/2017, 4:44 PM

I have a script that I have updated for Vegas 14 that allows Batch render with the option of names the files with the region names.
Batch Render 5 Magix.cs

I also have a script allows batch multiple projects, with redner regions as well
Multiple Project Render Magix.cs

Export Markers for DVD-A
Export Markers For DVD-A Magix.js

Files here

Thanks for this. Batch Redner 5 Magix.cs is as close as I've seen to something I had used for years. There was a script written by SkrowTox, a gamer I think, called Batch Render V2. It was compatible with Vegas through 13. It was brilliant because it could use the Region Names as filenames, but you could also prepend the filename with something like "MyWonderfulProject_" and then have it add the individual region name to that. That way you wouldn't have to name each region "MyWonderfulProject_Chapter1" etc.

I haven't seen anything like this in any other product. I have the script, but in Vegas 14 it throws up a bunch of issues preventing it from working which I do not understand. I sure wish the above were possible. I tried Render Assistant 1.0.2 some time ago, but it didn't seem to be able to accomplish what I've described above.

Cheers,

Bill

"It's a computer. It does what we tell it to do."

OldSmoke wrote on 2/20/2017, 5:20 PM

I haven't seen anything like this in any other product.

Have you tried Vegasaur's Transcoder?

Proud owner of Sony Vegas Pro 7, 8, 9, 10, 11, 12 & 13 and now Magix VP15&16.

System Spec.:
Motherboard: Intel DX79SR
Ram: G.Skill 8x4GB DDR3 2133 (running at 1600 and lower latency)
CPU: 3930K @ 4.3GHz (custom water cooling system)
GPU: 1x ASUS Fury-X
Hard drives: 4x 2GB WD Red in RAID 5 (with Hot Spare), 2x Crucial 256GB SSD in RAID 0 (mulitcam project drive), 1x Samsung 850 Pro 256GB SSD (System), 1x Crucial 64GB SSD (temp files and swap file), 1x 3.5" Hotswap Bay, 1x LG BluRay Burner
PSU: Corsair 1200W
Monitor: 2x Dell Ultrasharp U2713HM, 1x Sony HDTV 32" preview monitor

MartinE wrote on 2/22/2017, 9:03 AM

The Vegasaur transcoder does all of this with an easy to use GUI. I use it regularly with VP13 to batch render clips off the timeline. Vegasaur creates regions at the clip edges with the active take name, then renders them for me with the original name in whatever codec I want. The batch media replace routine works great too.

juan_rios wrote on 2/22/2017, 4:31 PM

billvo,

The adapted new Batch Render V2 script by SoMa Converter worked perfectly for me in Vegas 14.

http://www.focusonvegas.com/somaconverter-sony-magix-vegas-pro-script-converter/

 

billvo wrote on 2/22/2017, 5:03 PM

billvo,

The adapted new Batch Render V2 script by SoMa Converter worked perfectly for me in Vegas 14.

http://www.focusonvegas.com/somaconverter-sony-magix-vegas-pro-script-converter/

 

This is perfect. Thanks!

Vegasaur is good, but it's overkill for what I need to do.

Nick Hope wrote on 2/25/2017, 12:30 AM
There was a script written by SkrowTox, a gamer I think, called Batch Render V2. It was compatible with Vegas through 13. It was brilliant because it could use the Region Names as filenames, but you could also prepend the filename with something like "MyWonderfulProject_" and then have it add the individual region name to that. That way you wouldn't have to name each region "MyWonderfulProject_Chapter1" etc.

I haven't seen anything like this in any other product. I have the script, but in Vegas 14 it throws up a bunch of issues preventing it from working which I do not understand. I sure wish the above were possible...

The thread for ScrowTox' script is here: http://forum.gameanyone.com/index.php?topic=13426.10

The download link on Mediafire still works, and it runs in VP13. To make it work in VP14 you just have to change "Sony" to "ScriptPortal" in lines 12 & 14.

At lines 110 and 115 in this script there are references to registry entries, which concerned me a little, but after using the script the entries were not there. Also the error handling is not great. Nevertheless it's a useful script.

3d87c4 wrote on 5/25/2017, 3:41 PM

The ScrowTox script is just what I need, thanks. The ability to use a specific render template is very helpful as I am rendering a non-standard frame size. Is it possible to modify the script so it uses the specified template, but doesn't include it in the output file name? (Sorry, I haven't looked into the script, itself, yet.)

Nick Hope wrote on 5/25/2017, 9:51 PM

I just did a quick test and the template name is not being included in the output file name (but is in the original batch render script).

3d87c4 wrote on 5/26/2017, 11:16 AM

Maybe I'm misunderstanding how to use the script...

I'm using it in V13pro.

My clips are 3D over/under video from a Vuze camera, 1088x3200 pixels for both "eyes". I am using Vegas' stereoscopic 3D adjustment, the rendering each eye to a separate file ( 1088x1600 ) for stitching in AVP. I created a render template for this unusual frame size, named VuzeSingleCamera, but it doesn't show up in the render option list the batch render V2 script presents. To access the template I am adding [VuzeSingleCamera] to the script input field. Here's what I input for the Left camera, for instance: [VuzeSingleCamera][RNAME]L

This correctly accesses my render template, but the template name is included in the resulting file name. Is there some other way to specify the template? Is there some way to get the script to display the complete list of templates, including the one I created?