Bueno encontré la solucion para la primera pregunta. Me falta para la segunda que es imprescindible para lograr lo que quiero.
Encontré un script de JohnMeyer para poner marcadores cada vez que había un cambio de media en el timeline. Lo modifiqué para que insertara un marcador (marker) en el inicio de cada clip (event) independientemente de que varios o todos los clips provinieran de un mismo archivo de video.
Para compartirlo pongo a continuacion el script de JohnMeyer y seguidamente la modificación que hice para mis propositos.
(Se preguntarán porque no hago el otro script que me falta y la respuesta es que no domino la creación de scripts completamente y lo que hice aqui fue "traquetear" el script ya hecho para que hiciera lo yo quería.
SCRIPT DE JOHN MEYER
/**
* This script adds markers at media transitions on the first selected track.
* A "media transition" happens when an event comes from a
* different file than the preceding event.
* The markers are labeled with the name of the media file.
* If a marker already exists, no new marker is created.
*
* Written By: John Meyer (from a script by Edward Troxel)
* 12/10/2003
*
**/
import System;
import System.IO;
import System.Windows.Forms;
import Microsoft.Win32;
import Sony.Vegas;
try {
var myMarker : Marker;
var LastFileName = " ";
//Find the first selected track
var track = FindSelectedTrack();
if (null == track)
throw "no selected track";
var eventEnum = new Enumerator(track.Events);
// Cycle through all events on the selected track
while (!eventEnum.atEnd()) {
var evnt : TrackEvent = TrackEvent(eventEnum.item());
var MyFilePath = evnt.ActiveTake.MediaPath;
var extFileName = Path.GetFileName(MyFilePath);
var baseFileName = Path.GetFileNameWithoutExtension(extFileName); // Media file name for this event
// Only add marker if this event's media is different from last event, and if no marker already exists.
if ( (baseFileName != LastFileName) && (!MarkerExist(evnt.Start.ToMilliseconds() ) ) ) {
myMarker = new Marker(evnt.Start);
Vegas.Project.Markers.Add(myMarker);
myMarker.Label = baseFileName;
}
// Prepare for next event
LastFileName = baseFileName;
eventEnum.moveNext();
}
} catch (e) {
MessageBox.Show(e);
}
// Function to find first selected track
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;
}
// Function to check if there is a marker at timecode passed to this function
// Timecode (dStart) must be in milliseconds
function MarkerExist (dStart) : boolean {
var fmarkerEnum = new Enumerator(Vegas.Project.Markers);
while (!fmarkerEnum.atEnd()) {
var fMyMarker = fmarkerEnum.item();
var fMarkerStart = fMyMarker.Position.ToMilliseconds();
if ( dStart == fMarkerStart ) {
return 1;
}
fmarkerEnum.moveNext();
} // End while fmarkerEnum
return 0;
}
SCRIPT MODIFICADO POR MI
/**
* This script adds markers at event start points on the first selected track.
* The markers are labeled with the name of the media file. Several markers could have the same name if several events
* comes from the same file.
* If a marker already exists, no new marker is created.
*
* Written (better said, modified) By: Startel (from a script by JohnMeyer from a script by Edward Troxel)
* 02/26/2007
*
**/
import System;
import System.IO;
import System.Windows.Forms;
import Microsoft.Win32;
import Sony.Vegas;
try {
var myMarker : Marker;
var LastFileName = " ";
//Find the first selected track
var track = FindSelectedTrack();
if (null == track)
throw "no selected track";
var eventEnum = new Enumerator(track.Events);
// Cycle through all events on the selected track
while (!eventEnum.atEnd()) {
var evnt : TrackEvent = TrackEvent(eventEnum.item());
var MyFilePath = evnt.ActiveTake.MediaPath;
var extFileName = Path.GetFileName(MyFilePath);
var baseFileName = Path.GetFileNameWithoutExtension(extFileName); // Media file name for this event
// Only add marker if no marker already exists.
if ( (!MarkerExist(evnt.Start.ToMilliseconds() ) ) ) {
myMarker = new Marker(evnt.Start);
Vegas.Project.Markers.Add(myMarker);
myMarker.Label = baseFileName;
}
// Prepare for next event
LastFileName = baseFileName;
eventEnum.moveNext();
}
} catch (e) {
MessageBox.Show(e);
}
// Function to find first selected track
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;
}
---------------
Saludos
Startel
Encontré un script de JohnMeyer para poner marcadores cada vez que había un cambio de media en el timeline. Lo modifiqué para que insertara un marcador (marker) en el inicio de cada clip (event) independientemente de que varios o todos los clips provinieran de un mismo archivo de video.
Para compartirlo pongo a continuacion el script de JohnMeyer y seguidamente la modificación que hice para mis propositos.
(Se preguntarán porque no hago el otro script que me falta y la respuesta es que no domino la creación de scripts completamente y lo que hice aqui fue "traquetear" el script ya hecho para que hiciera lo yo quería.
SCRIPT DE JOHN MEYER
/**
* This script adds markers at media transitions on the first selected track.
* A "media transition" happens when an event comes from a
* different file than the preceding event.
* The markers are labeled with the name of the media file.
* If a marker already exists, no new marker is created.
*
* Written By: John Meyer (from a script by Edward Troxel)
* 12/10/2003
*
**/
import System;
import System.IO;
import System.Windows.Forms;
import Microsoft.Win32;
import Sony.Vegas;
try {
var myMarker : Marker;
var LastFileName = " ";
//Find the first selected track
var track = FindSelectedTrack();
if (null == track)
throw "no selected track";
var eventEnum = new Enumerator(track.Events);
// Cycle through all events on the selected track
while (!eventEnum.atEnd()) {
var evnt : TrackEvent = TrackEvent(eventEnum.item());
var MyFilePath = evnt.ActiveTake.MediaPath;
var extFileName = Path.GetFileName(MyFilePath);
var baseFileName = Path.GetFileNameWithoutExtension(extFileName); // Media file name for this event
// Only add marker if this event's media is different from last event, and if no marker already exists.
if ( (baseFileName != LastFileName) && (!MarkerExist(evnt.Start.ToMilliseconds() ) ) ) {
myMarker = new Marker(evnt.Start);
Vegas.Project.Markers.Add(myMarker);
myMarker.Label = baseFileName;
}
// Prepare for next event
LastFileName = baseFileName;
eventEnum.moveNext();
}
} catch (e) {
MessageBox.Show(e);
}
// Function to find first selected track
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;
}
// Function to check if there is a marker at timecode passed to this function
// Timecode (dStart) must be in milliseconds
function MarkerExist (dStart) : boolean {
var fmarkerEnum = new Enumerator(Vegas.Project.Markers);
while (!fmarkerEnum.atEnd()) {
var fMyMarker = fmarkerEnum.item();
var fMarkerStart = fMyMarker.Position.ToMilliseconds();
if ( dStart == fMarkerStart ) {
return 1;
}
fmarkerEnum.moveNext();
} // End while fmarkerEnum
return 0;
}
SCRIPT MODIFICADO POR MI
/**
* This script adds markers at event start points on the first selected track.
* The markers are labeled with the name of the media file. Several markers could have the same name if several events
* comes from the same file.
* If a marker already exists, no new marker is created.
*
* Written (better said, modified) By: Startel (from a script by JohnMeyer from a script by Edward Troxel)
* 02/26/2007
*
**/
import System;
import System.IO;
import System.Windows.Forms;
import Microsoft.Win32;
import Sony.Vegas;
try {
var myMarker : Marker;
var LastFileName = " ";
//Find the first selected track
var track = FindSelectedTrack();
if (null == track)
throw "no selected track";
var eventEnum = new Enumerator(track.Events);
// Cycle through all events on the selected track
while (!eventEnum.atEnd()) {
var evnt : TrackEvent = TrackEvent(eventEnum.item());
var MyFilePath = evnt.ActiveTake.MediaPath;
var extFileName = Path.GetFileName(MyFilePath);
var baseFileName = Path.GetFileNameWithoutExtension(extFileName); // Media file name for this event
// Only add marker if no marker already exists.
if ( (!MarkerExist(evnt.Start.ToMilliseconds() ) ) ) {
myMarker = new Marker(evnt.Start);
Vegas.Project.Markers.Add(myMarker);
myMarker.Label = baseFileName;
}
// Prepare for next event
LastFileName = baseFileName;
eventEnum.moveNext();
}
} catch (e) {
MessageBox.Show(e);
}
// Function to find first selected track
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;
}
---------------
Saludos
Startel