I just did a lengthy render for a DVD, and discovered that the Project markers weren't included, I never realized that the Batch Render script didn't include them.
Mine does now. Though that is obviously too late.
Is there any way to export the markers for use in DVDA without having to re-render the entire project?
Scripts can help you. The Markers tool from Vegasaur can export markers to a variety of different formats, including DVDA chapters. It is free for 30 days.
Btw, if anyone want to use my modified "Batch Render" script, you can find it here: Batch Render4.cs
There are a few other improvements (IMHO), including the use of CD Tracks as regions. I've found them to be a nice feature when breaking up a video into "YouTube sized" bites, as I can easily keep track of how long the individual pieces are with the "CD Track Time" timecode format.
It should work in Vegas Pro 9 and 10, I have no idea about Vegas Pro 8
Sorry I don't have an answer on exporting markers from Vegas, but you could transfer the markers from the Vegas project in less time than rendering if your in a time crunch.
The Cursor Position display at the bottom right of the Vegas timeline is "hot". If you doulble click on it, you can copy the marker positions from Vegas to DVD Architect.
Right Click on the Cursor Position box on the Vegas timeline and ensure that the time display is the same format as DVD Architect.
Move the cursor on the Vegas timeline to the first marker by clicking on its tab.
Double (left) click on the Vegas Cursor Position box.
Control C to copy it contents.
Alt Tab to the DVD Architect Project.
Select the appropriate title.
Double (left) click the cursor position display just above and on the left end of the timeline.
Control V to paste. The cursor moves to the position on the timeline.
"M" to set marker.
Repeat.
Usually, a couple dozen markers can be moved quicker than rendering the project again.
I have a copy of the Export Markers script on my server.
I'd post it here but it is rather long, sorry cannot find a link to it.
It was written back in 2003 and I haven't used it in ages so I'm uncertain if it will still work. If anyone wants a copy drop me a PM.
You can also insert an all black track at the top of your project - this will render as fast as possible. Bring it into dvda as a second track and load the markers from it.
' You need to install the free script (that I can't seem to find) that allows you to export markers for DVD Architect"
Does anyone know what happened to it?
As I said before I and obvioualy others have a copy of it. I searched the scripting forum to no avail, I've Googled it to no avail. It would be really great if everyone could get it because when you need it, it is a real time saver.
There's no authors name in the file so I guess it is free to share.
I re-did the script because many of the setup variables need to be changed under certain circumstances. However, here is the original script (which I did not write).
John Meyer
/**
Objective:
==========
Script to generate *.sfl file from Vegas timeline markers, which can then be imported into
DVDA as chapter points. (File format same as that saved by Vegas.)
Note:
=====
1) The sfl file **MUST** use the MPEG file as basename, eg. "myfile.mpg.sfl".
2) If string length (including null byte) is not word aligned, ie. odd bytes, then pad
with another null byte to make it even bytes.
3) Chapter point need to fall on an I-frame, so actual frame used will depend on
how DVDA search for I-frame. If there is ever an option, choose search backwards.
History:
========
8/12/2003 WL v1.0. Creation. Supports DVDA v1.0d.
9/12/2003 WL v1.1.
- Vegas don't write blank label. Script generated blank labels, but
was accepted by DVDA. Modified script not to write blank labels.
- Do not write LIST section if there are no labels.
- Do not create SFL file if there are no markers.
- Support for NTSC.
28/12/2003 WL v1.2.
- Modified to auto detect PAL or NTSC from project setting to set frame rate.
Only supports 25f/s and 29.97f/s.
1/1/2004 WL v1.3
- Modified to match ruler format with video format. Required for *.stl
and *.chp.
2/1/2004 WL v1.4
- Problem with some DVDA NTSC chapter points being 1 frame off near end of
tape, so used double for markerTC and round up to nearest integer, but
still no good. Work-around is to add 1 frame for each NTSC chapter points.
- Check for maxMarker.
- DVDA requires chapter length be >= 1 sec. Check when creating markers
in another script.
24/7/2004 WL v1.5
- Modified to be more modular. Similar to wl_mksfl_dvda (sfl by dvda).
- Found problem with Vegas v4 and v5. *Sometimes* the chapters are displayed
at the right place as viewed on the time line, but is actually referring to
the previous frame as shown by the timecode, and the same timecode is used
to create the SFL and CHP files. So the picture from the previous chapter
is used for the chapter point. Found problem when doing PAL DV. The
workaround is to also increase chapter points by 1 frame for PAL also.
8/8/2004 WL v1.6
- Due to Vegas frame problem discovered in v1.5, need to add another frame for
NTSC, ie. frameOffset=2 for NTSC.
//----------------------------------------------------------------------------------------
//
// Constants
//
var NULLCH : byte = 0;
var maxMarker : int = 300;
var PALFrameTime : double = 1764; // 25 frames/sec
var NTSCFrameTime : double = 1471.47; // 30000.0/1001.0 = 29.97....
//----------------------------------------------------------------------------------------
//
// Global variables
//
var frameTime : double = PALFrameTime;
var formatMsg = "unknown";
//
// DVDA seemed to have problem with NTSC chapters points off by 1 frame near the end of tape.
// So adding 1 frame offset for NTSC chapter points. 0 for PAL.
//
var frameOffset : int = 0;
//
// Files
//
var desDir = "F:\\home\\dv\\apps\\sfoundry\\vegas\\sfl";
var srcMpgFname = "*.mpg";
var desExt = ".sfl";
var desFullFname = desDir + Path.DirectorySeparatorChar + srcMpgFname + desExt;
//----------------------------------------------------------------------------------------
function initVar() {
var frameRate = Vegas.Project.Video.FrameRate;
//----------------------------------------------------------------------------------------
// Button subclass that shows a save file dialog when clicked
class BrowseButton extends Button {
var myResultBox = null;
function BrowseButton(resultBox) {
myResultBox = resultBox;
}
protected override function OnClick(e : EventArgs) {
var saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "DVDA Chapter File (*.sfl)|*.sfl|All Files (*.*)|*.*";
saveFileDialog.DefaultExt = desExt;
saveFileDialog.CheckPathExists = true;
saveFileDialog.CheckFileExists = false;
//
// saveFileDialog.AddExtension is confused because file already has .mpg extension, so
// disabling this option.
//
saveFileDialog.AddExtension = false;
if (null != myResultBox) {
var filename = myResultBox.Text;
var initialDir = Path.GetDirectoryName(filename);
if (Directory.Exists(initialDir)) {
saveFileDialog.InitialDirectory = initialDir;
}
saveFileDialog.FileName = Path.GetFileName(filename);
}
if ( System.Windows.Forms.DialogResult.OK == saveFileDialog.ShowDialog() ) {
if ( null != myResultBox ) {
if ( Path.GetExtension(saveFileDialog.FileName) != desExt )
saveFileDialog.FileName += desExt;
myResultBox.Text = Path.GetFullPath(saveFileDialog.FileName);
}
}
}
}
//----------------------------------------------------------------------------------------
// Form subclass that is the dialog box for this script
class getFnameDialog extends Form {
var browseButton;
var fileNameBox;
var noticeBox;
for (var i : int = 0; i < markerCnt; i++) {
counter++;
tc = System.Convert.ToInt32(System.Math.Round(markerTC[i]));
binw.Write( counter );
binw.Write( tc );
binw.Write( "data".ToCharArray() );
binw.Write( zero );
binw.Write( tc );
}
return sectsize;
}
//----------------------------------------------------------------------------------------
// Do not write blank labels.
// If all labels are blank, do not write this section.
function writeLIST(binw, markerLabel, markerCnt) {
var counter : int = 0;
var sectsize : int = 0;
var elemsize : int;
//----------------------------------------------------------------------------------------
function makeSFL(mrkEnum) {
var markerCnt : int = 0;
var totMarker : int = 0;
// var markerTC = new Array();
var markerTC : double[] = new double[maxMarker];
var markerLabel = new Array();
var sumLabelSize = 0;
var RIFFsize : int = 0;
var CUEsize : int = 0, LISTsize : int = 0, SFPIsize : int = 0;
var nowMarker;
while ( !mrkEnum.atEnd() ) {
totMarker++;
if ( markerCnt < maxMarker ) {
nowMarker = mrkEnum.item();
var nowMarkPos = Marker(nowMarker).Position;
if ( nowMarkPos.FrameCount == 0 ) {
//
// DVDA auto creates chapter at 00:00:00:00, and creates only one if overlapped.
//
markerTC[markerCnt] = nowMarkPos.FrameCount * frameTime;
}
else {
markerTC[markerCnt] = (nowMarkPos.FrameCount + frameOffset) * frameTime;
}
markerLabel[markerCnt] = Marker(nowMarker).Label;
sumLabelSize += markerLabel[markerCnt].Length;
markerCnt++;
mrkEnum.moveNext();
}
}
if ( markerCnt == 0 )
throw "Error: no markers defined on Vegas timeline";
var fs = openSFL(desDir, srcMpgFname);
var binw = new BinaryWriter(fs);
//----------------------------------------------------------------------------------------
function findSelectedTrack() : Track {
var trackEnum = new Enumerator(Vegas.Project.Tracks);
while (!trackEnum.atEnd()) {
var track : Track = Track(trackEnum.item());
if (track.Selected) {
return track;
}
trackEnum.moveNext();
}
return null;
}
var totMarker : int = 0;
var missMarker : int = 0;
initVar();
// Show the script's dialog box.
var dialog = new getFnameDialog(srcMpgFname + desExt);
var dialogResult = dialog.ShowDialog();
// if the OK button was pressed...
if ( System.Windows.Forms.DialogResult.OK == dialogResult ) {
//
// Also need to check extension here in case user bypassed browse button.
//
desFullFname = Path.GetFullPath(dialog.fileNameBox.Text);
if ( Path.GetExtension(desFullFname) != desExt )
desFullFname += desExt;
desDir = Path.GetDirectoryName(desFullFname);
srcMpgFname = Path.GetFileNameWithoutExtension(desFullFname);