vMix Forums
»
General
»
Feature Requests
»
Expose Replay tags and position via API
Rank: Advanced Member
Groups: Registered
Joined: 8/21/2017(UTC) Posts: 319 Location: Uk
Thanks: 26 times Was thanked: 33 time(s) in 29 post(s)
|
If possible show replay tags and position in the API. It would be good on a simple level to show replay tags as a title.
If we had positions we could work out replays we need for a highlight reel and have a script, after looking at a data sheet, copy them to a new event then when playing out we can also display the tags as titles, or reference what title to display when that tag or replay number is in the output/selected, again according to a production data sheet.
Additionally we can use certain tags like 'midrollONE' on perhaps just a nice broll clip, and using a script to watch, display midroll titles and some background music inbetween rounds/segments to make more of a show and break up just playing out a list of replays with no context.
Also we could display production notes on a commentary monitor that are saved in the data sheet and display when the related titles are playing so they know info about the current replay playing and next one about to play
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 12/27/2012(UTC) Posts: 5,216 Location: Belgium Thanks: 291 times Was thanked: 955 time(s) in 790 post(s)
|
Originally Posted by: Barney Box Lane If possible show replay tags and position in the API. It would be good on a simple level to show replay tags as a title.
If we had positions we could work out replays we need for a highlight reel and have a script, after looking at a data sheet, copy them to a new event then when playing out we can also display the tags as titles, or reference what title to display when that tag or replay number is in the output/selected, again according to a production data sheet.
Additionally we can use certain tags like 'midrollONE' on perhaps just a nice broll clip, and using a script to watch, display midroll titles and some background music inbetween rounds/segments to make more of a show and break up just playing out a list of replays with no context.
Also we could display production notes on a commentary monitor that are saved in the data sheet and display when the related titles are playing so they know info about the current replay playing and next one about to play Check the "replay2.xml" file in the replay folder for this info One caveat (Bug ?) though, new assigned/edited tags are only saved after a stop/start replay recording
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 8/21/2017(UTC) Posts: 319 Location: Uk
Thanks: 26 times Was thanked: 33 time(s) in 29 post(s)
|
That's not as fun but that might be a way to do it - the ultimate goal is to get full data analysis and show compiled automatically which I don't think is too over the top, and frees you up to add even more production value to that process, thank you )
Just to clarify do you mean just stop recording for a moment to allow it to offload all that data to replay2.xml then hopefully carry out the process of populating the show? Also I think a script would still get stuck on finding the position of everything required in the list and moving it to say event 10 or do you think that could be done within the xml while recording is off?
example: data sheet says we need replay 014, 017, 113, (or tag names) and the script finds them amongst all the replays and copies to event10
also would the API still need to expose the replay tag selected/currently in the output to accurately display the current tag title when playing out?
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 2/23/2019(UTC) Posts: 135 Thanks: 16 times Was thanked: 28 time(s) in 25 post(s)
|
I think there may be an existing FR but it would definitely be useful to have more access to the replay data.
My main use would be onscreen graphics for replay events but automating selections for highlights is a good shout.
For getting data on the replay that is currently playing, it would be useful if data was added to the existing replay node for the input in the API. It currently has which event list and camera are selected, and playback speed. I think the data that would need to be added is the description for each camera for the current event, time remaining for this clip and total time remaining for the selection playing out.
I think having a separate call that returns live replay event lists (i.e. similar to what is in Replay2.xml) would be good, rather than bloating the existing API call with a lot of data.
Hopefully adding fields to one node of the API xml can be done without a full release.
|
|
|
|
Rank: Advanced Member
Groups: Registered
Joined: 12/27/2012(UTC) Posts: 5,216 Location: Belgium Thanks: 291 times Was thanked: 955 time(s) in 790 post(s)
|
Had a go at this while ago ( 4K license - one angle) to automatically display the tag(s) and eventname in a title of the events being replayed Seems to work EDIT: just found out the tags are also updated in the xml file when opening the replay configuration window and close it instead stop/start the recording Code:
'Display Tag(s) of instant replay(s) playing
'ReplayStartStopRecording to update XML after adding tags (vMix BUG)!!
'run script and do a replay , tag will be displayed in title
'made for 4K license ( one replay )
' Setup : Edit accordingly =========================
dim RFolder as string = "E:\Replay" ' Instant Replay Folder
dim TagTitle as string = "Blue.gtzip" ' Title name or Input number to display Tag on
dim TagText as string = "Headline.Text" ' Title TextBlock to hold the Tag
dim EvenText as string = "Description.Text" ' Title TextBlock to hold the Event name
' ==================================================
dim x as new system.xml.xmldocument
Dim document As XmlDocument = New XmlDocument()
do while true
x.loadxml(API.XML())
'get the events number (to select list )
dim events as string = x.SelectSingleNode("//input[@type='Replay']//replay/@events").value
'get the channelmode used
dim mode AS string = x.SelectSingleNode("//input[@type='Replay']//replay/@channelMode").value
dim Rinput as string
if mode = "B" 'which channel is one using
Rinput = "ReplayPreview"
else
Rinput = "Replay"
end if
document.Load(RFolder & "\replay2.xml") 'get XML for retrieving tags
Dim nodeList As XmlNodeList = document.SelectNodes("//list[" & events & "]/event")
Dim count As Integer = nodeList.Count
dim z as integer
do while true
x.loadxml(API.XML())
dim state as string = x.SelectSingleNode("//input[@type='" & Rinput & "']/@state").value 'get the state of replay (Running or Paused), mode dependent
if state = "Running"
'********************** Optional Comment out if not needed *************
dim eventname as string =document.SelectSingleNode("//list[" & events & "]/@name").innertext
if eventname = ""
eventname= events 'if not name show events number
end if
' Display the EVENTNAME
API.Function("SetText",Input:=TagTitle,SelectedName:=EvenText,Value:=eventname )
'***********************************
dim pos as string = x.SelectSingleNode("//input[@type='" & Rinput & "']/@position").value
for z = 1 to count
dim ins as string = (document.SelectSingleNode("//list[" & events & "]/event["& z & "]/inPoint").innertext)\10000
dim outs as string = (document.SelectSingleNode("//list[" & events & "]/event["& z & "]/outPoint").innertext)\10000
if (pos > ins) and (pos < outs)
dim tag as string = document.SelectSingleNode("//list[" & events & "]/event["& z & "]/description[1]").innertext
API.Function("SetText",Input:=TagTitle,SelectedName:=TagText,Value:=tag ) 'display the TAG
end if
next
else
API.Function("SetText",Input:=TagTitle,SelectedName:=TagText,Value:=" stopped " ) 'clear/done title
Exit do
end if
sleep(200)
loop
sleep(500)
loop
|
|
|
|
vMix Forums
»
General
»
Feature Requests
»
Expose Replay tags and position via API
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