Comments

Dexcon wrote on 8/16/2022, 8:27 AM

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.

Cameras: Sony FDR-AX100E; GoPro Hero 11 Black Creator Edition

Installed: Vegas Pro 15, 16, 17, 18, 19, 20, 21 & 22, HitFilm Pro 2021.3, DaVinci Resolve Studio 20, BCC 2025, Mocha Pro 2025.0, NBFX TotalFX 7, Neat NR, DVD Architect 6.0, MAGIX Travel Maps, Sound Forge Pro 16, SpectraLayers Pro 11, iZotope RX11 Advanced and many other iZ plugins, Vegasaur 4.0

Windows 11

Dell Alienware Aurora 11:

10th Gen Intel i9 10900KF - 10 cores (20 threads) - 3.7 to 5.3 GHz

NVIDIA GeForce RTX 2080 SUPER 8GB GDDR6 - liquid cooled

64GB RAM - Dual Channel HyperX FURY DDR4 XMP at 3200MHz

C drive: 2TB Samsung 990 PCIe 4.0 NVMe M.2 PCIe SSD

D: drive: 4TB Samsung 870 SATA SSD (used for media for editing current projects)

E: drive: 2TB Samsung 870 SATA SSD

F: drive: 6TB WD 7200 rpm Black HDD 3.5"

Dell Ultrasharp 32" 4K Color Calibrated Monitor

 

LAPTOP:

Dell Inspiron 5310 EVO 13.3"

i5-11320H CPU

C Drive: 1TB Corsair Gen4 NVMe M.2 2230 SSD (upgraded from the original 500 GB SSD)

Monitor is 2560 x 1600 @ 60 Hz

Craig-Tarling wrote on 8/16/2022, 8:57 AM

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.


Thanks for the reply abaove.

jetdv wrote on 8/16/2022, 9:03 AM

If the clips need to be placed at their timecode values on the timeline, that can be done using a script.

Craig-Tarling wrote on 9/8/2022, 3:41 AM

Does anyone have a script to do this? Lay out clips with the MEDIA TIMECODE to ONE TRACK only and not each clip per track? Thanks in advance

Musicvid wrote on 9/8/2022, 8:41 AM

So if some of your 100 clips have overlapping timecodes, you want them to overlap on the timeline?

Craig-Tarling wrote on 9/8/2022, 9:01 AM

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

Musicvid wrote on 9/8/2022, 10:09 AM

OIC. You're slaving the timecode and have started and stopped your cameras multiple times.

Looking forward, it may be simpler to just let your synced cameras run on, and stagger the media changes.

Craig-Tarling wrote on 9/8/2022, 11:14 AM

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

DMT3 wrote on 9/8/2022, 11:18 AM

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.

Howard-Vigorita wrote on 9/8/2022, 12:01 PM

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.

jetdv wrote on 9/8/2022, 12:45 PM

@Craig-Tarling @joelsonforte.br @Howard-Vigorita @Musicvid

MoveClipToTimestamp.cs
 

/**
 * 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;
            }
        }
    }
}

 

joelsonforte.br wrote on 9/8/2022, 1:09 PM

@jetdv Thanks!

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.

 

 

jetdv wrote on 9/8/2022, 1:22 PM

@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.

joelsonforte.br wrote on 9/8/2022, 1:33 PM

@jetdv now all works fine here. Great job. Thanks again!

jetdv wrote on 9/8/2022, 1:40 PM

@joelsonforte.br, thanks. I knew I had something around that did that - just had to find it in the archives - 2007... 15 years ago!

Musicvid wrote on 9/8/2022, 1:50 PM

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!

Craig-Tarling wrote on 9/9/2022, 5:38 AM

Thanks so much! Been looking for this solution for ages. Much appreciated