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
JohnDoe415  
#1 Posted : Sunday, January 19, 2025 7:11:14 PM(UTC)
JohnDoe415

Rank: Newbie

Groups: Registered
Joined: 1/12/2025(UTC)
Posts: 6

Thanks: 1 times
Was thanked: 1 time(s) in 1 post(s)
I run a sport livestream, with the following cameras:

Main camera
Left faceoff
Left goal
Right faceoff
Right goal

I use a Streamdeck and have several shortcuts set up to swap between inputs.

I cannot find a way to create and stack shortcuts to achieve the following:

Left team scores:
Press a Streamdeck button, that plays an instant replay in this order: Main Camera > Left faceoff > Left Goal

Right team scores:
Press a Streamdeck button, that plays an instant replay in this order: Main Camera > Right faceoff > Right Goal

The instant replay functionality defaults to ONLY pre-selecting Output 1, meaning I need to toggle the other camera angles to ON in the replay functionality.

I have shortcuts set up as follows, since the instant replay functionality always leaves Camera 1 (main camera) selected:


Left Camera shortcut: Streamdeck button 1 actions in this order:

Toggles replay camera left faceoff on ReplayToggleLastEventCameraX
Toggles replay camera left goal on ReplayToggleLastEventCameraX
ReplaySelectLastEvent
ReplayPlaySelectedEventToOutput

Right camera shortcut: Streamdeck button 2 actions in this order:
Toggles replay camera right faceoff on ReplayToggleLastEventCameraX
Toggles replay camera right goal on ReplayToggleLastEventCameraX
ReplaySelectLastEvent
ReplayPlaySelectedEventToOutput


The problem arises, as soon as I switch between left and right shortcut buttons, the order in which the cameras are selected/unselected in the instant replay window falls out of sync, making my shortcuts that rely on them being UNSELECTED, to then select them, not work.

Any ideas?
dmwkr  
#2 Posted : Sunday, January 19, 2025 7:27:18 PM(UTC)
dmwkr

Rank: Advanced Member

Groups: Registered
Joined: 2/23/2019(UTC)
Posts: 576

Thanks: 62 times
Was thanked: 135 time(s) in 123 post(s)
Use the functions ReplayLastEventCameraOff and ReplayLastEventCameraOn instead of toggle, if I understood you correctly.
JohnDoe415  
#3 Posted : Sunday, January 19, 2025 7:39:39 PM(UTC)
JohnDoe415

Rank: Newbie

Groups: Registered
Joined: 1/12/2025(UTC)
Posts: 6

Thanks: 1 times
Was thanked: 1 time(s) in 1 post(s)
Originally Posted by: dmwkr Go to Quoted Post
Use the functions ReplayLastEventCameraOff and ReplayLastEventCameraOn instead of toggle, if I understood you correctly.


This doesn't seem to work, as if I trigger the newly created

ReplayLastEventCameraOff MainCamera
ReplayLastEventCameraOff LeftGoal
ReplayLastEventCameraOff LeftFaceoff
ReplayLastEventCameraOff RightGoal
ReplayLastEventCameraOff RightFaceoff
ReplayLastEventCameraOn MainCamera
ReplayLastEventCameraOn LeftGoal
ReplayLastEventCameraOn LeftFaceoff

and play the replay.

And then next trigger the newly created:

ReplayLastEventCameraOff MainCamera
ReplayLastEventCameraOff LeftGoal
ReplayLastEventCameraOff LeftFaceoff
ReplayLastEventCameraOff RightGoal
ReplayLastEventCameraOff RightFaceoff
ReplayLastEventCameraOn MainCamera
ReplayLastEventCameraOn RightGoal
ReplayLastEventCameraOn RightFaceoff

It works for the FIRST ever left and right replays, but as soon as I go to do a third and subsequent replay, it falls out of order, playing some of the right cameras during a left replay and vice-versa.

I don't mind what shortcuts I have to build, I just need a way of guaranteeing when I press the Streamdeck key, I only see that specific side's camera angles in the replay.
doggy  
#4 Posted : Sunday, January 19, 2025 8:13:03 PM(UTC)
doggy

Rank: Advanced Member

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

Thanks: 300 times
Was thanked: 989 time(s) in 821 post(s)
Originally Posted by: JohnDoe415 Go to Quoted Post
Originally Posted by: dmwkr Go to Quoted Post
Use the functions ReplayLastEventCameraOff and ReplayLastEventCameraOn instead of toggle, if I understood you correctly.


This doesn't seem to work, as if I trigger the newly created

ReplayLastEventCameraOff MainCamera
ReplayLastEventCameraOff LeftGoal
ReplayLastEventCameraOff LeftFaceoff
ReplayLastEventCameraOff RightGoal
ReplayLastEventCameraOff RightFaceoff
ReplayLastEventCameraOn MainCamera
ReplayLastEventCameraOn LeftGoal
ReplayLastEventCameraOn LeftFaceoff

and play the replay.

And then next trigger the newly created:

ReplayLastEventCameraOff MainCamera
ReplayLastEventCameraOff LeftGoal
ReplayLastEventCameraOff LeftFaceoff
ReplayLastEventCameraOff RightGoal
ReplayLastEventCameraOff RightFaceoff
ReplayLastEventCameraOn MainCamera
ReplayLastEventCameraOn RightGoal
ReplayLastEventCameraOn RightFaceoff

It works for the FIRST ever left and right replays, but as soon as I go to do a third and subsequent replay, it falls out of order, playing some of the right cameras during a left replay and vice-versa.

I don't mind what shortcuts I have to build, I just need a way of guaranteeing when I press the Streamdeck key, I only see that specific side's camera angles in the replay.


Make sure you always have a minimum of one angle on at any point ! (in fact its impossible to turn them off all , trying to turn of the last one that is on will be ignored)
Also shortcuts often need some time to excecute before another one will be performed correctly, try put these functions within a script and add delays between them (play with the delay times and when needed ) might help
Ario  
#5 Posted : Wednesday, March 12, 2025 9:02:23 PM(UTC)
Ario

Rank: Advanced Member

Groups: Registered
Joined: 2/2/2015(UTC)
Posts: 169
Location: NL

Thanks: 176 times
Was thanked: 20 time(s) in 17 post(s)
For our basketball productions we use StreamDecks with Bitfocus Companion.
We trigger vMix scripts from the StreamDecks.
One such script is found below.
Comments are after the # and probably need to be taken out of the script.

We have multiple (7) replay cameras, e.g. a main camera (mid court) and cameras on each baseline.

We want a replay event to only have a checked camera for ONE of the two baselines (nearest the scored basket).
We also want the event to exist both in Bank 1 (main camera checked) AND in Bank 2 (one of the two baselines checked).
Confusingly, replay Banks are referred to in vMix scripts from 0 up, so 0 = Bank 1, 1 = Bank 2 etc.
However, the command 'ReplaySelectEvents2' selects Bank 2 (and not 3).

We register replay events after each scored basket.
There are 4 scripts for scored baskets: 2 per team: for each half of the game (since teams switch sides after halftime).
The Guest (away / road) team always scores on the Left (L) basket in the first half in our arena, from the main camera's stand point.
The scripts also add tags to the replay events and their angles.

Script for 1st half (1eh) when the visiting (Guest) team scores, capturing the 5 seconds before the StreamDeck button press:

script name: s031_-5_Guest_scores

Function=ReplaySelectEvents2 # activate replay Bank 2
Sleep 20
Function=ReplayACamera1 # optional
Sleep 20
Function=ReplayBCamera1 # optional
Sleep 20
Function=ReplayMarkInOutLive&Value=5
Sleep 20
Function=ReplayToggleLastEventCamera3 # checks ON Cam 3, Baseline Left / Toggle on or off playing back the Camera 1,2,3 or 4 of the last event.
Sleep 20
Function=ReplayToggleLastEventCamera1 # checks OFF Cam1, main cam
Sleep 20
Function=ReplaySetLastEventTextCamera&Value=3,Score_Guest_1eh_BaseL
Sleep 20
Function=ReplaySetLastEventTextCamera&Value=1,Score_Guest_1eh_Main
Sleep 20
Function=ReplaySetLastEventTextCamera&Value=2,Score_Guest_1eh_Close
Sleep 20
Function=ReplaySetLastEventTextCamera&Value=4,Score_Guest_1eh_SlamL
Sleep 20
Function=ReplaySetLastEventTextCamera&Value=5,Score_Guest_1eh_BaseR_far
Sleep 50
Function=ReplayCopyLastEvent&Value=1 # copy the last event to Bank 2 (we are already in Bank 2) / you hereby get two identical events in Bank 2
Sleep 50
Function=ReplayToggleLastEventCamera1 # this checks Cam 1 ON for the second of these two identical events
Sleep 20
Function=ReplayToggleLastEventCamera3 # this checks Cam 3 OFF for the second of these two identical events
Sleep 50
Function=ReplayMoveLastEvent&Value=0 # move the last event (from Bank 2) to Bank 1

[end of script]

We now have an event in Bank 1 with Cam 1 checked on,
plus an event in Bank 2 with Cam 3 (Baseline Left) checked on.
Bank 1 serves to quickly make a highlight reel in post-production, using only Cam 1 (main cam),
and Bank 2 serves to play replays during the livestream, using the baseline angles.

Script for the Home team ("LEI") scoring in the 1st half (Baseline Right):

script name: s032_-5_LEI

Function=ReplaySelectEvents2
Sleep 20
Function=ReplayACamera1
Sleep 20
Function=ReplayBCamera1
Sleep 20
Function=ReplayMarkInOutLive&Value=5
Sleep 20
Function=ReplayToggleLastEventCamera5
Sleep 20
Function=ReplayToggleLastEventCamera1
Sleep 20
Function=ReplaySetLastEventTextCamera&Value=5,Score_Lei_1eh_BaseR
Sleep 20
Function=ReplaySetLastEventTextCamera&Value=1,Score_Lei_1eh_Main
Sleep 20
Function=ReplaySetLastEventTextCamera&Value=2,Score_Lei_1eh_Close
Sleep 20
Function=ReplaySetLastEventTextCamera&Value=6,Score_Lei_1eh_SlamR
Sleep 20
Function=ReplaySetLastEventTextCamera&Value=3,Score_Lei_1eh_BaseL_far
Sleep 50
Function=ReplayCopyLastEvent&Value=1
Sleep 50
Function=ReplayToggleLastEventCamera1
Sleep 20
Function=ReplayToggleLastEventCamera5
Sleep 50
Function=ReplayMoveLastEvent&Value=0

To capture defensive highlights, create 2 extra scripts, replace "Score_Guest" with e.g. "Defense_Home" etc.

To capture scores in the second half, create 2 extra scripts, replace "Score_Guest_1eh_BaseL" with e.g. "Score_Home_2eh_BaseL" etc.

Hopefully, this is of some help.
thanks 1 user thanked Ario for this useful post.
JohnDoe415 on 3/16/2025(UTC)
JohnDoe415  
#6 Posted : Sunday, March 16, 2025 12:20:44 PM(UTC)
JohnDoe415

Rank: Newbie

Groups: Registered
Joined: 1/12/2025(UTC)
Posts: 6

Thanks: 1 times
Was thanked: 1 time(s) in 1 post(s)
Originally Posted by: Ario Go to Quoted Post
For our basketball productions we use StreamDecks with Bitfocus Companion.
We trigger vMix scripts from the StreamDecks.
Hopefully, this is of some help.



Thanks for your reply, I had been reading through various forum threads and testing out the Vmix Script builder app by @raugert around the time of your reply, and your response has helped me simplify my scripts.

The scripting seems to work much more reliably than stacking multiple shortcuts on one key (in my case, a Streamdeck also), which would often lead to the wrong camera being selected or unselected, as I suspect Vmix cannot process multiple actions on one key as a shortcut, all that reliably.

So now I've moved to scripting and presently I have:

Camera1 = Main camera
Camera2 = Left side view
Camera3 = Right side view
Camera4 = Crowd camera

With scripts as follows:

Save last 6 seconds of footage across all cameras
Function=ReplayMarkInOut&Value=6



Play replay with ONLY camera 1
Function=ReplaySelectLastEvent
Sleep 5
Function=ReplayLastEventCameraOff&Value=4
Sleep 5
Function=ReplayLastEventCameraOff&Value=3
Sleep 5
Function=ReplayLastEventCameraOff&Value=2
Sleep 5
Function=ReplayLastEventCameraOn&Value=1
Sleep 5
Function=ReplayPlayLastEventToOutput


Play replay with camera 1 + 2 only
Function=ReplaySelectLastEvent
Sleep 5
Function=ReplayLastEventCameraOff&Value=4
Sleep 5
Function=ReplayLastEventCameraOff&Value=3
Sleep 5
Function=ReplayLastEventCameraOn&Value=1
Sleep 5
Function=ReplayLastEventCameraOn&Value=2
Sleep 5
Function=ReplayPlayLastEventToOutput


Play replay with camera 1 + 3 only
Function=ReplaySelectLastEvent
Sleep 5
Function=ReplayLastEventCameraOff&Value=4
Sleep 5
Function=ReplayLastEventCameraOff&Value=2
Sleep 5
Function=ReplayLastEventCameraOn&Value=1
Sleep 5
Function=ReplayLastEventCameraOn&Value=3
Sleep 5
Function=ReplayPlayLastEventToOutput
thanks 1 user thanked JohnDoe415 for this useful post.
Ario on 3/19/2025(UTC)
doggy  
#7 Posted : Sunday, March 16, 2025 5:04:13 PM(UTC)
doggy

Rank: Advanced Member

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

Thanks: 300 times
Was thanked: 989 time(s) in 821 post(s)
Originally Posted by: JohnDoe415 Go to Quoted Post

The scripting seems to work much more reliably than stacking multiple shortcuts on one key (in my case, a Streamdeck also), which would often lead to the wrong camera being selected or unselected, as I suspect Vmix cannot process multiple actions on one key as a shortcut, all that reliably.



Some functions just need that little bit of time before they finish and another can be excecuted. within a script we can add some pauses to facilitate that.
Thats the nature of the beast
thanks 1 user thanked doggy for this useful post.
Ario on 3/19/2025(UTC)
Users browsing this topic
Guest (2)
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.