OGraf - the New, Open Graphics Standard

I thought I’d share an update about the OGraf initiative:
(I’ll edit this post later to reflect the projects’ status)

What is OGraf?

OGraf is an upcoming EBU specification that details how to create and control HTML-based graphics.

The idea is that an OGraf-compatible Graphic can be played out by any Rendering System that supports OGraf - and that it should be quite easy for different Rendering Systems (such as CasparCG, vMix etc..) to adopt OGraf.

The OGraf specification is designed to be forwards and backwards compatible, so if you create an OGraf graphic today, it’ll be compatible with future versions of OGraf and renderers.

An OGraf graphic comes with a manifest that details how the Graphic works and what its inputs are. This means that a controller-GUI can be made to display the proper controls for a Graphic - like input fields, step-buttons etc.

The OGraf specification consists of two parts:

  • The Graphics definition which defines how a Graphic should be implemented, it’s manifest etc, so that it can be properly rendered by a Rendering System.
  • The Server API which defines how a Controller should talk to a Rendering System.

Timeline

2024 OGraf discussions begin
January 2025 OGraf meetup in Copenhagen
April 2025 First public draft of the Graphics Definition
Spring / Summer 2025 Gathering of industry feedback
September 2025 (IBC) Version 1.0 of the Graphics Definition
Autumn 2025 Work on defining the Server API
End of 2025 Mid 2026 Version 1.0 of the Server API

What about GDD??

Yeah, there will always be another standard, right..? (context)

OGraf actually uses a subset of GDD in its’ manifest definition!
It was recently decided that GDD will be adopted by OGraf and that it’s standalone definition will eventually be deprecated in favor of OGraf.

Who is behind OGraf and how can I help?

OGraf has a project web page) and is being discussed in an open, EBU-held Working Group. The group consists of various broadcasters and vendors.

If you have thoughts, ideas or suggestions, please join the Working Group! You can also open an issue on github!

What software can I use with OGraf?

To create graphics, you can use:

  • The OGraf DevTool to test OGraf graphics for compliancy and functionality (useful if you develop your own).
  • Loopic to design and export OGraf graphics.

To Render and Play graphics:

(When the Server API has matured a bit more, I plan to add a native OGraf Renderer to CasparCG.)

2 Likes

..to add to this, we’ll be demoing OGraf at the EBU stand on IBC this year, so please come by and talk to us there!

Hi
Is there in the pipeline for CasparCG a Ograf-producer or a rewrite of the HTML-producer to support Ograf
@Julusian ?
br markus

For the ones, that go to NAB: There will be an OGraf Meetup

You can run templates in CasparCG with this: GitHub - SuperFlyTV/ograf-server: A server for controlling and rendering OGraf graphics

But that is not the same as having a hardware renderer rendering out ograf to SDI or 2110 at the same time rendering out videos, audios and my aunt (sorry inside joke, a swedish locution)

Maybe I misunderstood your point, but the ograf-server renders the template as a webpage. CasparCG then loads that webpage and outputs it to SDI (or whatever format CasparCG is configured to use) on a channel/layer of your choosing. You can still use CasparCG to play other templates, videos, or images on other layers (and channels). You control the template from the ograf-server so it is still dynamic, you just need to have the webpage open in CasparCG. I just tried that earlier today…

You will maybe never have a hardware renderer inside Caspar :slight_smile: And for the aunt I would suggest looking for a medical 3D printer, AFAIK they are making progress printing living tissue these days…

It’s currently a similar workflow as using NodeCG in Caspar. I think as soon as the OGraf server API has been finalized we will talk about a “real” solution.

I agree, it would be pretty useful to ship a native OGraf renderer with Caspar. I’ve been thinking that it could be integrated with the sidecar mediaScanner application, since that is a node.js application it would be very easy to add a ograf-renderer in it. The controller application would then talk to it via the OGraf API, and it would (internally) talk AMCP to casparcg to load a renderer web page in it (so the controller application won’t have to talk both amcp and ograf-api just to render graphics).

…In other news, I’ve published a stash of OGraf graphic templates here, if anyone want to have something to play with:

tmp0

1 Like

Unless some major changes are made to media scanner that improve its stability and allow more selective rescans I am not sure if adding rendering to it would be a good idea. Media Scanner still has enough stability problems that I completely reimplemented it for my latest client with a UI focused library management approach for big libraries. A native ograf renderer would be awesome though.