Server: Proposed feature: Background route and OSD Producer

Created on 30 May 2018  路  13Comments  路  Source: CasparCG/server

The main idea is to be able to natively render text overlays for timecode and statuses on separate layers (channels/outputs) based on the current status of media and playback on the main layer/channel/output. We鈥檙e starting by focusing on the FFmpeg Producer and video playback.

Example usage:

  • Your main video playback layer of choice is 1-10
  • You then operate 1-10 as normal
  • You want to set 2-99 as your OSD layer

Depending on the MODE of the OSD Producer you will automatically get either...
... a preview (route) with information of the currently playing clip on 1-10 (foreground)

or

... the first frame as a freeze-frame with information of the currently loaded(bg) clip of 1-10.

The MODE flag can be set to

  1. show foreground by default, and background only if you have no foreground
  2. show foreground only
  3. show background only

The text information and layout will in this first iteration not be configurable. Our suggestions are:
screen shot 2018-05-30 at 09 51 10
Where the VT-a is a user-defined label for the destination layer, TC 00:00:15:14 shows the duration of the loaded clip and 1-10 shows the destination layer.

screen shot 2018-05-30 at 09 50 22
Where the VT-a is a user-defined label for the destination layer, the TC 00:00:14:15 shows the current running TC of that clip and 1-10 shows the destination layer.

feedbacdiscussion

Most helpful comment

You may also think about using an OSD producer for subtitling.

Further possible improvements / additions to OSD overlay:

  • Audio Level Meter Bars
  • Countdown / remaining time
  • Indication for Loop-Mode
  • Visualisation of remaining time / progress with a bar

All 13 comments

This feature also solves another great thing other than text overlay: background preview. We want to enable the opeator to have an instant preview of a clip loaded in background (cued up) to be confident that the next clip is ready to go, and the correct clip is loaded.

It would be complete if it also shows the remaining time until the clip is finished. Either configurable or next to each other. Normally the operator is not too much interessted on the running timecode but wants to know hoe long it will run.

You may also think about using an OSD producer for subtitling.

Further possible improvements / additions to OSD overlay:

  • Audio Level Meter Bars
  • Countdown / remaining time
  • Indication for Loop-Mode
  • Visualisation of remaining time / progress with a bar

I built this functionality with flash templates for 2 customers. The main thing they were looking for was name of the file, play time, remaining time and the position in the playlist. The playlist is obviously custom and not part of CasparCG.

The left side is the playlist with only a single clip in it. We have this output on monitors for audio, lighting and the producer.
img_0474

I'm not sure this needs it's own producer, as it can be built into templates, however it would be helpful if templates were more self aware - ie. knew which channel and layer they are running on and get updated to changes (eg. swap). Certainly it would be nice to include samples in the main distribution.

This can be implemented in user space.

Someone had suggested allowing AMCP over WebSockets a while back. This would allow HTML templates to connect directly to CasparCG and get all the info they need. Right now implementing this as a template requires a standalone app to proxy data from CasparCG to the template. This adds complexity and another failure point.

I will probably create an OSC -> Websocket proxy.

I agree. Having a websocket endpoint in CasparCG would be very useful.

Yes, you guys sum it up exactly how we have done too.

But: please notice there's two things to this idea:
1) the ability to route the background layer for previewing on another channel.
2) the OSD idea.

1 could arguably be done clientside, if you use custom clients and have full control of the environment. However, especially for OB ad-hoc operations and running shows from the official client, it would mean a lot to have a "lookahead" channel that would show the next cued clip to the producer and to know it is correctly loaded.

2 Yes, this should be implemented in a template (html). Both the idea of websocket and the idea of having awareness of the channel in the html producer will be perfect for this application. We're not pursuing a dedicated producer anymore.

@Julusian has done a great job and implemented the background layer producer: https://github.com/nrkno/tv-automation-casparcg-server

@Julusian has done a great job and implemented the background layer producer:

Will you create a PR for this or what's the status?

/Armin

@dotarmin yes, a pr shall be coming soon.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

dotarmin picture dotarmin  路  28Comments

grahamspr86 picture grahamspr86  路  26Comments

Behinder picture Behinder  路  28Comments

Bernie333 picture Bernie333  路  47Comments

premultiply picture premultiply  路  25Comments