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: 5

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: 573

Thanks: 62 times
Was thanked: 134 time(s) in 122 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: 5

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,343
Belgium
Location: Belgium

Thanks: 299 times
Was thanked: 984 time(s) in 817 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: 168
Location: NL

Thanks: 169 times
Was thanked: 19 time(s) in 16 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.
Users browsing this topic
Guest
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.