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
K16pro  
#1 Posted : Monday, December 10, 2018 4:15:31 AM(UTC)
K16pro

Rank: Newbie

Groups: Registered
Joined: 1/30/2018(UTC)
Posts: 4

Thanks: 2 times
Hello!
I am a VTR and replay operator for our production and one of the pain points that our crew is having is the inability to display the playback time of Vmix Program view to an external source via API.

As it stands I've been counting down to my director verbally for timeback over comm channels.

My quick fix to this was by using OBS with NDI capture to desktop capture the timecode box underneath program, and NDIing that out to my director to take as a source in OBS over our multiview. This is functional, but it's very convoluted and i'm looking for a better native solution that will eliminate OBS from my workflow.

I was wondering if there's a better way to approach this where I wouldn't need to rely on capturing my desktop as a video source, and take the countdown through the API perhaps?
kjones9999  
#2 Posted : Tuesday, December 11, 2018 2:43:58 PM(UTC)
kjones9999

Rank: Advanced Member

Groups: Registered
Joined: 8/20/2014(UTC)
Posts: 388

Thanks: 29 times
Was thanked: 78 time(s) in 50 post(s)
Hi don't have a lot of time to work on this, but if you import the vmix API as XML through data sources it reveals the time with the position key. Divide by 1000 and that gives the number of seconds elapsed. Heres a video - note the xpath.

?hd=1
raugert  
#3 Posted : Tuesday, December 11, 2018 3:28:15 PM(UTC)
raugert

Rank: Advanced Member

Groups: Registered
Joined: 8/5/2017(UTC)
Posts: 560
Canada
Location: Manitoba

Thanks: 107 times
Was thanked: 309 time(s) in 176 post(s)
Yes in fact you can get the data through the API. The Duration and Position is included in the XML. It's a matter of parsing and massaging the data correctly. However, if you want, you can apply some of your current technique directly in VMix without using OBS.

1. Create a new Desktop Capture Input in vMix.
2. Use this new input as a 'multiview overlay' on one of your current inputs.
3. Crop and size this overlay to the 'timecode box' underneath the program as you currently do, and positon it accordingly. Now this input will contain the timecode info for any playbacks.

The vMix multiview output will now contain the 'keyed timecode' over the input you configured. You can also add this same "multiview overlay' to other inputs if you like. Of course the timecode that is shown is that of whatever is playing on the output at the time, and not that of the input you keyed it over.

Not sure if that's very clear, but it will eliminate OBS from your mix. It's not perfect but may be a little less convoluted... :)

cheers,
Richard
raugert  
#4 Posted : Wednesday, December 12, 2018 5:04:52 PM(UTC)
raugert

Rank: Advanced Member

Groups: Registered
Joined: 8/5/2017(UTC)
Posts: 560
Canada
Location: Manitoba

Thanks: 107 times
Was thanked: 309 time(s) in 176 post(s)
@K16Pro

Here's a little app I wrote for you that could do the trick.

The app takes the Timecode Info (Position, Duration and Remaining) from the item that is currently playing on the Output, and sends it back as text to vMix through the API. You can create a Title (XAML) Input and capture the data as text in the appropriate fields (Position, Duration, Remaining). Now you can use this Title Input as an overlay (probably over the Preview window) or just as an Input in your Multiview.

Launch the app and just enter the vMix IP and the Title Input's Name that you wish to send the data to.

- You can run the app from any computer connected to your vMix network. (Mac or PC) or on the vMix computer.
- If you like, you can also use the app on multiple computers as a TimeCode Reader only (perhaps for a production assistant or other Ops) **
** If the app is running on multiple computers as a simple Timecode Reader, make sure you enter the Title FileName on only one of the apps that are running. Otherwise it will send duplicate data to your Title file.
- adjust the delay compensation to match the vMix Timecode. The accuracy is within 1 second. (usually good enough for production..)

I've included a sample .xaml in the zip file. You can modify it to suit your needs.

Update :
http://bit.ly/vMix-Timecode-v2

cheers,
Richard
thanks 1 user thanked raugert for this useful post.
stevespaw on 12/15/2018(UTC)
K16pro  
#5 Posted : Thursday, December 13, 2018 11:16:04 AM(UTC)
K16pro

Rank: Newbie

Groups: Registered
Joined: 1/30/2018(UTC)
Posts: 4

Thanks: 2 times
Thank you for the kind replies!

I tried some of the solutions above and they all work to a certain degree for our specific use case.

As it stands, my workflow with my Technical director involves going out of my GPU into his capture card, which I fullscreen in vMix to play VTR pieces and replay reels. The end goal is to get this timecode to appear in his OBS, which acts as the main switcher (preferably) as a text source, rather than a video capture source.
I am unable to take it as an overlay in vmix as what's showing on my program out is what will go to our live show. (Unless there's a way I can send a second output without it being a fullscreen?)

Based on the feedback above what I can do is:
1. Have a second fullscreen output from my GPU into the video router of the cropped timecode and send that to be taken as a video source to overlay in his multiview. This works, but it's still using a video source and I would imagine it would stress out the CPU more than a text source.
2. Based on jkones9999's suggestion, importing the vmix API as an XML seems like the best solution, mostly I'd need to code a custom html overlay that pulls from what it puts on the server that checks every second what the state of each piece is, and display the position /1000 based on what piece is active or not. Which, to be fair I'd need to just hit up the lab and start coding that for our specific workflow!



3. raugert's app is very interesting, but I notice at times it frose and I'd have to hit Enter on the IP again to refresh it. I'll need to play around with it more to see what solution works best but this is definatley very neat and could be useful playback needs to be checked remotely at the venue.

Again, thank you everyone for the replies, I've definitely learned a lot on this and appreciate your help quite a bit!

EDIT:

Is there a way to get a unique input key for when a replay reel is ran on the API? As it stands, comparing two files for when I do run a reel, and when I don't have a reel active, there is nothing on the API that states a timecode of the duration left on a replay reel.
However, Vmix clearly shows the duration of the timecode left on the replay reel, under the program monitor, so it exists, but it doesn't push it out to the API. Is there any way to extrapolate this data?
If I'm able to access this data somewhere, then I can build a custom overlay and solve the problem for my usecase.
raugert  
#6 Posted : Friday, December 14, 2018 8:34:09 PM(UTC)
raugert

Rank: Advanced Member

Groups: Registered
Joined: 8/5/2017(UTC)
Posts: 560
Canada
Location: Manitoba

Thanks: 107 times
Was thanked: 309 time(s) in 176 post(s)
You're correct. There is no unique key, nor remaining time for Replay events in the API. I'm assuming that the actual "Time and Position" data is retrieved from the event list in the "Replay Module" within vMix so we don't really have access to it.

If there was a stand-alone app for Replay, then one could have that info available and use it to calculate the remaining time. I'm surprised that no one (as far as I know) has written a stand-alone Replay App yet. Maybe my next project .:)

update: I fixed the freezing on the Timecode App.

http://bit.ly/vMix-Timecode-v2

thanks 1 user thanked raugert for this useful post.
K16pro on 12/29/2018(UTC)
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.