PikaTimer / pikatimer

PikaTimer: An OpenSource race timing application
GNU General Public License v3.0
37 stars 16 forks source link

Browser Sources #43

Closed LorGran7 closed 1 year ago

LorGran7 commented 1 year ago

Hi, is possible to implement Browser Sources? Ok, i will explain better, basically in race broadcasts there's a standings list, laps counter and other stuff, live timing sistems have those as browser sources. You copy the link, you create a browser source on OBS, you paste the link and you have a standings leaderboard. Is it possible to implement this thing or it's too difficult? Thank you in advance

segfaultcoredump commented 1 year ago

I'm going to close this as a "way too difficult" at this time.

I had a similar request from my video team for the Pikes Peak Ascent and Marathon live feeds.

The main problem is that you are going to want to have a lot of control of the formatting of the on-screen OBS display. Colors, # of columns, depth, font size, positioning, sex, in-progress vs finished, etc. Every system that I've seen so far either uses a team of folks manually typing this into a template and then displaying it. Easier to do in a post-production than a live feed type of thing.

That said, we do now have support for the Marmot announcer app. That system leverages the built in HTTP server in PikaTimer and makes an http call to pull the participant data and then a websocket to get the status updates. So in theory, you could craft a web page that pulls in that data, connects to the websocket, and then uses some javascript that formats it the way you want. Then you can kick that to the OBS system.

If there is a particular API call you would like to see implemented in the PikaTimer app (e.g. "/leaders/X returns the top X folks by position with name, age, city, state, country, last seen location, and time), open a feature request and I'll see if I can add it in. But then you would need to create the stub html page that pulls in the data and then formats it the way you need for the on-screen display.