logo

Live Production Software Forums


Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

Options
Go to last post Go to first unread
Barney Box Lane  
#1 Posted : Monday, April 22, 2024 12:01:21 AM(UTC)
Barney Box Lane

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
doggy  
#2 Posted : Monday, April 22, 2024 2:33:10 AM(UTC)
doggy

Rank: Advanced Member

Groups: Registered
Joined: 12/27/2012(UTC)
Posts: 5,144
Belgium
Location: Belgium

Thanks: 286 times
Was thanked: 932 time(s) in 770 post(s)
Originally Posted by: Barney Box Lane Go to Quoted Post
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
Barney Box Lane  
#3 Posted : Monday, April 22, 2024 7:21:21 AM(UTC)
Barney Box Lane

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?
RichDanby  
#4 Posted : Monday, April 22, 2024 11:35:12 PM(UTC)
RichDanby

Rank: Advanced Member

Groups: Registered
Joined: 2/23/2019(UTC)
Posts: 135
United Kingdom

Thanks: 15 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.
doggy  
#5 Posted : Tuesday, April 23, 2024 5:26:57 AM(UTC)
doggy

Rank: Advanced Member

Groups: Registered
Joined: 12/27/2012(UTC)
Posts: 5,144
Belgium
Location: Belgium

Thanks: 286 times
Was thanked: 932 time(s) in 770 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
Users browsing this topic
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.