Probably dumb question…
I would like to make an html template for PiP. let s say 50/50.
What are the things to consider? It is enough to create 2 rectangular shapes with 100% transparency as FILL or I am missing something else?
Thanks @andyw for coming back on this.
It is supposed to get live videos from a video mixer.
We just provide sport gfx so the production will fill them up with some live content.
Do we need to grab the live feed and push it in ?
I think there are at least two options - key in the vision mixer or key in CasparCG.
Using the external mixer requires the alpha/key channel to be empty (black) where the live videos are to be inserted. These feeds can be size changed by using a couple of digital video effects (DVE) processes in the mixer, then key the graphics above such that the DVE channels video is positioned behind the holes in the template. Probably needs some good macros in the mixer to ease recall of the effect, but has minimal latency (1 frame only) caused by the DVE resize.
Bringing the video into Caspar via a decklink card to key it onto the graphic can be done with a command of the form:
play 1-40 decklink device 3 format 1080i5000
which imports a live video through Decklink device 3 showing the result on layer 40 of output channel 1. The size and position of the live image is set by the CasparCG mixer clipping and transform commands. Repeat the input and resize actions onto another layer, such as layer 50, for the second video input. This mechanism will have a higher latency applied to the live video, in the order of 5 to 6 frames, depending on the configuration of the decklink output channels.
There is some more detail about inputting live video and using the CasparCG mixer commands in my “Introduction to CasparCG Graphics System” document available at https://github.com/amwtech/CasparCG_Documentation. The SDI input description starts on page 45, and the mixer commands descriptions start on page 59.
Thank you @andyw for your answer!
I believe in my case the DVE option will be the best one and easier.
But thank you for your comprehensive description of the matter!
I will surely read the documentation linked!
You can also use a video input in an html template.
The main benefit are the possibility to have complex animations and been able to use USB capture devices such a BM Web Presenter (other than the thunderbolt/pcie devices).
The audio unfortunately must be channeled through windows mixer, which may or may not be an issue.
The problem for me is not being able to preview the template because the input can be used by only one template at time, so you need an external way to see the video feed before airing it.
Glad you found the document interesting. I learned a huge amount about both client and server whilst writing it! I’m very happy if you want to add the document added to the repo.
My plans are for occasional updates, after I find something extra in client or server that is worth describing. I then upload the newer PDF to github, moving the older version into the _archive folder. Making the online version a pdf document allows users to access the content even if they are working away from Internet access.
The document does have a couple of hidden “Easter Egg” style entries. If you enlarge the diagram on page 11 so you can see more detail of the mice - they have Disney names…
If you’ve got something playing on 1-40 and you want to use it on another channel or layer you can use the route command e.g.
play 1-40 decklink device 3 format 1080i5000
play 2-40 route://1-40
will play your decklink input on 1-40 and also route a duplicate to 2-40. I use this for previews of live video inserts when I don’t want to be stopping and starting the decklink inputs. Only restriction is the channels have to be running the same framerate/sync
You could use a virtual channel (one without a consumer) to play the input and route it to the program and the preview, so that you can start/stop the templates independently. Drawback: you add delay to the input picture.
So you don’t risk to route other things I guess. Very interesting, I now remember, probably @rrebuffo but not sure, that use to keep the template alive and invoke animation in and out.
So in theory you can play the template routed to the preview, then let say invoke “hide”, route to the program and finally invoke “intro animation”.
I bit complex but for me is vital because I have to deal with live interview.
Now the only thing I can think of is the audio part, since everything is channeled through windows audio, so also the preview audio would go on program if not muted.