ontime icon indicating copy to clipboard operation
ontime copied to clipboard

Integrate with vmix (HTTP API)

Open cpvalente opened this issue 3 years ago • 12 comments

Send running title data to vmix Same data as the lower thirds

cpvalente avatar Nov 16 '21 16:11 cpvalente

some help on the api https://www.vmix.com/help24/index.htm?DeveloperAPI.html

xztraz avatar Nov 17 '21 18:11 xztraz

Thank you @xztraz , help is definitely welcome, never used vMix. I was hoping to use the TCP API and will definitely need some help with the implementation.

Initially I will only send the current event titles and running timer data. Which end points in vmix would this make sense in?

cpvalente avatar Nov 17 '21 18:11 cpvalente

i would send the lower thirds data to a GT title in vmix. so there would be one command for each text box that would need to be changed. via web api: http://127.0.0.1:8088/API/?Function=SetText&Input=LowThirdGraphixhaxx&SelectedName=Headline.Text&Value=Hello tcp api would be similar function.

but maybe its better to make it a bit more general and just have a dynamic number of http boxes where you could enter an url in each box with a couple of different dynamic textvalues to choose from.

some sort of pre filled examples or similar would be super thou.

for values, atleast use what lower third contains now, some countdown choices would be nice

Therese functions could trigger all kinds of exciting stuff if they trig when the specifically used value changes.

xztraz avatar Nov 17 '21 20:11 xztraz

I am probably changing this to be a general integration with HTTP APIs

cpvalente avatar Nov 25 '21 22:11 cpvalente

This is a big one and I will be splitting this into steps

  • [x] 1. Implement lifecycle state machine
  • [ ] 2. Implement general purpose HTTP Client
  • [ ] 3. Implement integration with vMIX

Somewhere between points 2 and 3 I will move on to the logging system. Once we are dealing with integrations, it feels vital to have feedback on the service statuses.

For sending data to vMix as described you would still use a general purpose HTTP Client. A vMix integration would probably focus on polling vMix for its status and using that inside ontime

cpvalente avatar Dec 17 '21 19:12 cpvalente

xml api allows for polling stream status. its vmix specific but seem to be only way of directly interfacing with vmix. (saw the script option but scrips cant be triggered in vmix on streaming status it seems..)

xztraz avatar Dec 18 '21 15:12 xztraz

here is a working example for vmix to change a headline textfield on both "xml" and GT tiltles and description.

Headline http://127.0.0.1:8088/API/?Function=SetText&Input=1&SelectedName=Headline.Text&Value=Hello Description http://127.0.0.1:8088/API/?Function=SetText&Input=1&SelectedName=Description.Text&Value=World

Input Input can be used to specify the Input in one of three ways:

  1. By input number starting from 1.
  2. By name. (note that it is case sensitive, and requires the full title name including spaces)
  3. A GUID can be used to specify an exact input. The GUID can be found from the "Key" attribute in the XML. For example: 877bb3e7-58bd-46a1-85ce-0d673aec6bf5

xztraz avatar Dec 18 '21 20:12 xztraz

There is also another way of integrating data to vmix titles. and that's data source in vmix. Theese sources can be used https://www.vmix.com/help24/index.htm?DataSourcesControl.html

those might be interesting choices. (i saw there was some raw data to be get via /event from onetime, not sure of the format) XML Select any XML compliant web site or file to use as a data source. To select which XML element to use as a data source, the XPath setting will need to be filled in.

JSON This supports JSON data that is stored as an object array. Each element in the array will be treated as a row.

xztraz avatar Dec 19 '21 01:12 xztraz

something new in vmix25(beta) is a local web server serving video over http. this could possibly be integrated to the pip view. as i understand it's somewhat how it works today but against something other.

xztraz avatar Dec 26 '21 16:12 xztraz

This feature is parked due to the lack of testers. If someone is available to test the integration with some HTTP devices (vMix ?) I can prepare a release candidate

cpvalente avatar Jun 15 '22 13:06 cpvalente

I have vMix and could test whatever you need :-)

Keksstar avatar Oct 03 '22 19:10 Keksstar

Thank you @Keksstar , that is perfect.

Right now there is some work that conflicts with the vMix integration but I will look into making a relase for you as soon as that is through. Would you mind sending me an email at [email protected] so that we could see on how to do this?

cpvalente avatar Oct 05 '22 08:10 cpvalente

Following.

tcconway avatar Nov 03 '22 10:11 tcconway

Hey all If you are stile interested we could use some help testing https://github.com/cpvalente/ontime/tree/feat/http-integration

alex-Arc avatar Nov 04 '23 20:11 alex-Arc

@tcconway @Keksstar @xztraz would any of you be able to give it a test https://github.com/cpvalente/ontime/releases/tag/v2.22.0-http-beta.1

alex-Arc avatar Dec 05 '23 11:12 alex-Arc

Can I get a win x64 build to test.

On Tue, Dec 5, 2023 at 5:47 AM Alex Christoffer Rasmussen < @.***> wrote:

@tcconway https://github.com/tcconway @Keksstar https://github.com/Keksstar @xztraz https://github.com/xztraz would any of you be able to give it a test (let me know if you need builds)

— Reply to this email directly, view it on GitHub https://github.com/cpvalente/ontime/issues/40#issuecomment-1840631115, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADCO7SSOZXX5MJMPPDXYLTYH4CWJAVCNFSM5IEXW332U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOBUGA3DGMJRGE2Q . You are receiving this because you were mentioned.Message ID: @.***>

tcconway avatar Dec 05 '23 16:12 tcconway

Can I get a win x64 build to test.

@tcconway yes you can download here https://github.com/cpvalente/ontime/releases/tag/v2.22.0-http-beta.1

alex-Arc avatar Dec 05 '23 16:12 alex-Arc

The HTTP integration is an excellent addition. It seems reliable from my basic testing. I would like to see one or two user fields added to the main interface so we can fully take advantage of HTTP integration.

staticlondon avatar Dec 06 '23 14:12 staticlondon

@staticlondon that is good to hear Are you talking about something that should be added to the HTTP integration? (if not, could you perhaps open a new issue and describe in more detail)

alex-Arc avatar Dec 06 '23 19:12 alex-Arc

@staticlondon and @tcconway I have updated the http agent would you mind giving it a try https://github.com/cpvalente/ontime/releases/tag/v2.22.0-http-beta.2

alex-Arc avatar Dec 08 '23 17:12 alex-Arc

@alex-Arc I've tested it and everything is still working correctly.

staticlondon avatar Dec 08 '23 19:12 staticlondon