Rank: Advanced Member
Groups: Registered
Joined: 9/30/2020(UTC) Posts: 53 Location: Manchester Thanks: 10 times Was thanked: 3 time(s) in 3 post(s)
|
We record our church's Sunday services, and later edit them to post them to YouTube. There is some private information and some copyrighted music that we need to edit out. So, effectively we only want to post the pulpit shots, and edit out anything that is not a pulpit shot.
What I'm looking for is some way determine the time of each transition event, fades, cuts, etc. so that when it comes time to edit a recording I can go to exactly the time of transition and create a split in my video editor. If those transition events were captured in a log file, then I can easily apply some scripting to get what I want over to the video editor.
Is there a way to capture transition events to a log file?
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 11/23/2020(UTC) Posts: 170 Location: Wichita Thanks: 10 times Was thanked: 24 time(s) in 20 post(s)
|
If nothing else is presented I'd suggest you add a pair of triggers to your camera inputs that each call a script.
With a pair of simple scripts to log "On Transition In" and "On Transition Out" events to your own custom log file you can have log with entries for all camera changes. And with it being your OWN log file you wouldn't have to hunt for specific entries in a log full of various bits of information that ISN'T of interest.
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 9/30/2020(UTC) Posts: 53 Location: Manchester Thanks: 10 times Was thanked: 3 time(s) in 3 post(s)
|
Brilliant! Wish I'd thought of it.
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 12/24/2021(UTC) Posts: 508 Location: athens Thanks: 123 times Was thanked: 71 time(s) in 67 post(s)
|
Originally Posted by: DThompson55 Brilliant! Wish I'd thought of it. Hello. There exists this script https://forums.vmix.com/...or-commercials#post99914 that logs every active input in vmix so if you run it, it will create a txt file and timestamp the actual date/time that every change/active input changes in vmix. The .txt/log file that creates will look like this 06/06/23 15:49:15 DeckLink Mini Recorder (1) 1 06/06/23 15:49:38 Intensity Pro 4K 2 06/06/23 15:49:43 DeckLink Mini Recorder (1) 1 but we also need to know the time at recording file starting from 00:00:00 when we start the record. So i modified this script to make the log records like this 06/06/23 18:59:28 00:00 DeckLink Mini Recorder (1) 1 06/06/23 19:01:20 01:51 C1_09 06/06/23 19:08:34 09:06 Intensity Pro 4K 2 06/06/23 19:09:15 09:47 C1_09 in this example i started the script by a trigger, the same time i started to record. So i know that i start record at 06/06/23 18:59:28 and here time for the recorded file is 00:00. When i changed to input C1_09 time was 06/06/23 19:01:20 and this time is 01:51 in the time recorded file. So i can find in the recorded file every change i made. Here is the modified script Code:
''''''''''''''''
' Script von Mats Julian Steffens
' www.lvstrm.de
''''''''''''''''
'
' Log everything you are playing
'
''''''''''''''''
Dim dateinamealt As String = ""
Dim startTime As DateTime = DateTime.Now ' Προσθέστε αυτή την γραμμή
Do
Dim datum As String
datum = DateTime.Now.ToString("yyMMdd")
Dim filename As String
filename = "C:\vMix log\" + datum + "-vmixlog.txt" ' Τοποθεσία αποθήκευσης του αρχείου
If (Not System.IO.File.Exists(filename)) Then
My.Computer.FileSystem.WriteAllText(filename, " ", True)
End If
Dim timestamp As DateTime ' Αλλαγή στον τύπο δεδομένων
timestamp = DateTime.Now ' Αντικατάσταση της γραμμής για πραγματική ώρα
Dim xml As String = API.XML()
Dim x As New System.Xml.XmlDocument
x.LoadXml(xml)
Dim activinput As String = (x.SelectSingleNode("/vmix/active").InnerText)
Dim inputname As String = (x.SelectSingleNode("//input[@number=" + activinput + "]/@shortTitle").Value)
Dim dateiname As String = (x.SelectSingleNode("//input[@number=" + activinput + "]/@title").Value)
Dim inputnamelaenge As String
If (inputname = dateiname) Then
inputnamelaenge = 0
Else
inputnamelaenge = inputname.Length() + 3
End If
Dim inputString As String
' Γράψτε το αρχείο
If (dateinamealt <> dateiname) Then
Dim elapsedTime As TimeSpan = timestamp - startTime ' Υπολογίστε τη διάρκεια
Dim duration As String = elapsedTime.TotalSeconds.ToString() ' Μετατρέψτε τη διάρκεια σε δευτερόλεπτα
Dim minutes As Integer = CInt(Math.Floor(elapsedTime.TotalMinutes))
Dim seconds As Integer = CInt(Math.Floor(elapsedTime.TotalSeconds)) Mod 60
duration = String.Format("{0:00}:{1:00}", minutes, seconds)
inputString = timestamp.ToString("dd/MM/yy HH:mm:ss") + " " + duration + " " + dateiname.Substring(inputnamelaenge) + Environment.NewLine
Console.WriteLine(inputString)
My.Computer.FileSystem.WriteAllText(filename, inputString, True)
dateinamealt = dateiname
End If
Sleep(1000)
Loop
i hope this will help you
|
|
|
|
Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.
Important Information:
The vMix Forums uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close