Though I haven't imported as many as 100 events at the one time, just highlight the events in Vegas Pro's explorer window and then drag them on to the timeline - they all import on to the one track.. I'm not sure how timecode comes into this process - but then I haven't used a timecode process so far.
Hi. If you import media into the PROJECT MEDIA folder, you select them and right click, then there is an option to lay them out according to their timecode. Then it is 1 clip per track.
Nope. Multi camera shoot. All cameras had same timecode. Want to drop all cam1 clips on track 1, using it’s recorded timecode, and all cam2 clips on track 2 also with the timecode. They will then be in sync. Right now it uses the timecode to add the media BUT each clip on its own track… so 100s of tracks each with 1 clip only
Hi. Not how this happened. Was a wedding. Different cameras different shots. I need a solution to my dilemma that not even Sony can advise on. Thx though
Since theoretically, no clip from cam 1 will overlap itself and same for cam 2, you could load all camera 1 clips and then render to a lossless intermediate file, then do the same for Cam 2. Then you would have two video files to use.
Never figured out how to get that to work. So once I turn my cameras on, I don't turn them off till intermission. And sync them optically at the beginning to a time display from a clapper or cell phone. Light shows in rock concerts work too. Love to try a script that'll use embedded time code.
/**
* This script will move events to start at their timecode.
*
* Written By: Edward Troxel
* Modified: 07-04-2007
**/
using System;
using System.IO;
using System.Text;
using System.Drawing;
using System.Reflection;
using System.Diagnostics;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using ScriptPortal.Vegas;
public class EntryPoint
{
Vegas myVegas;
public void FromVegas(Vegas vegas)
{
myVegas = vegas;
foreach (Track track in myVegas.Project.Tracks)
{
foreach(TrackEvent evnt in track.Events)
{
Media media = vegas.Project.MediaPool.Find(evnt.ActiveTake.MediaPath);
if (null == media)
{
MessageBox.Show("missing media");
throw new ArgumentException("missing media");
}
evnt.Start = media.TimecodeIn;
}
}
}
}
Your script work fine here. But for some reason, some events don't sync sometimes and I need to use the script again for it to work. Am I doing something wrong? See my screen recording.
@joelsonforte.br. No. The problem is that some events get moved "after" some other events and, therefore, the order of the events change and so the event gets skipped - until you run it the second time. Technically, it should go through the list of events backwards.
So try it this way which will go through the event list backwards instead:
/**
* This script will move events to start at their timecode.
*
* Written By: Edward Troxel
* Modified: 07-04-2007
* Modified: 09/08/2022 changing to "ScriptPortal" and go through the list of events backwards
**/
using System;
using System.IO;
using System.Text;
using System.Drawing;
using System.Reflection;
using System.Diagnostics;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using ScriptPortal.Vegas;
public class EntryPoint
{
Vegas myVegas;
public void FromVegas(Vegas vegas)
{
myVegas = vegas;
foreach (Track track in myVegas.Project.Tracks)
{
for (int i = track.Events.Count - 1; i >= 0; i--)
{
TrackEvent evnt = track.Events[i];
Media media = vegas.Project.MediaPool.Find(evnt.ActiveTake.MediaPath);
if (null == media)
{
MessageBox.Show("missing media");
throw new ArgumentException("missing media");
}
evnt.Start = media.TimecodeIn;
}
}
}
}
Based on the linked video, you could also use the array method and it would still work. But this version should work fine in just one pass so test it out too. It's a really old script (you can see I wrote it in 2007) and it really did not take that situation into consideration.
Hi. Not how this happened. Was a wedding. Different cameras different shots. I need a solution to my dilemma that not even Sony can advise on. Thx though
Oh, the cameras are not slaved to generated timecode. Your want to sync to timestamps, then? Got It and Good luck!