About the jump from Server 2.0.7/2.1b2 to 2.2

getting-started
development
server

#1

I have many questions regarding server 2.2. I’ve seen it’s in beta 7 already but never cared to try it as I’ve been developing for version 2.1 beta 2 (which for a beta is quite stable). Out of curiosity I went and tried out the last beta of 2.2 with horrendous results. For the sake of readability, I will set my actual questions as bold text as I anticipate it’s going to be a long post.

First of all, the official C# library is already outdated (github says 11 months old) and for it to work properly with server 2.1, among other things, I had to modify it (mostly trial and error). Is there any plan to make libdotnet compatible with newer versions of the server in the future?

What I’ve seen overall is changes in the API and the way the media is managed internally. Is there a clean list of actual changes in the AMCP protocol syntax?
Most of the reworking of the scanner seems to be internal and transparent to the clients, but when it comes down to actual AMCP commands, the “Removed unused frame age API” changelog item baffles me… What does that mean to seek and length commands and which time unit it’s based on from now on? Is it more or less accurate than frame-based seeking?

I also noticed the absolute absence of Flash in the changelog. Does that mean it’s going away soon? I know it’s been left apart in favor of HTML templates, but when client development takes actually most of my time, I can’t imagine learning (more like adapting really) to work with HTML templates in the near future.

Around the next month I will be installing and setting up some CasparCG servers and I’m facing a dillema. Should I prepare beforehand and upgrade the clients to work with server 2.2 or the best option is to wait for a more stable version and dedicate that time to iron up some details?

Finally, I’ve seen some changes suggest many things are being moved to version 3. Does that development already have a roadmap? Is the intention to release a non-beta version of 2.2 prior to that?

Sorry for the long post and the many questions. I’ve been wondering about all of this for a while and didn’t find any clear Q&A for this topic.


#2

Is there any plan to make libdotnet compatible with newer versions of the server in the future?

I am not aware of the c# library having had any changes since 2.0, and I suspect that it will need contributions from the community to get support for newer versions. 11 months ago some of the repos were restructured to separate each library out. Looking back past that, it shows the last change to be January 2015.

Is there a clean list of actual changes in the AMCP protocol syntax?

There isn’t much of a list currently. There is a task to update the wiki, a changes section would be a good idea to add to that. https://github.com/CasparCG/help/issues/13.

Most of the reworking of the scanner seems to be internal and transparent to the clients

Yes, the scanner changes should be transparent apart from needing to run another exe

the “Removed unused frame age API” changelog item baffles me… What does that mean to seek and length commands and which time unit it’s based on from now on? Is it more or less accurate than frame-based seeking?

As far as I’m aware the only user facing part of this change is that caspar no longer tries to keep different output types in sync. Previously if you had a decklink and ndi consumer, it would delay the ndi so that if viewed together the output types would be in sync. Then there is some delay or frame age information in INFO that is no longer tracked.
I think seeking should now be more accurate as the ffmpeg producer has been completely rewritten to fix various things including sync bugs.

Does that mean it’s going away soon?

The flash producer is still in 2.2 and will stay in 2.2. I can’t say for certain anything further than that though. I think I have heard that it will removed at some point, but I haven’t heard a definite timescale for that. One thing to note is that flash is only available on windows, and not linux.
It is recommended to use html templates when possible though.

Should I prepare beforehand and upgrade the clients to work with server 2.2 or the best option is to wait for a more stable version and dedicate that time to iron up some details?

2.2 is due out any day now. It has been delayed a lot, but it is very close to being released now. https://github.com/CasparCG/server/issues/1104#issuecomment-449717759 I believe there are no 2.2 issues left open on github now either.

Does that development already have a roadmap?

There is no roadmap yet, the github issues labelled 2.3/3.0 is more of a wishlist from various parties as to what they would like to see done.


#3

Huge thanks @Julusian for the very detailed response. It really helps and It’s very appreciated.

I forgot to ask if there is some way to start the server as a service in windows now that two executables are needed for the server to properly work. I see the command prompt windows as useless after all the configuration and development is done and, in some cases where the clients run in the same system as the server, those windows get in the way unnecessarily. Also the system must be logged on to the server to start (when using only decklink outputs would be nice to have a headless server).

That is unfortunate. I’ve spent many weeks only getting around that issue and would be nice if an updated library is released along with the final stable version.
I’d gladly help with that but I’m not a software engineer. I’ve learned to code myself and I’m very messy with my code.


#4

hi rrebuffo

about running the two programs as 2 “dos” windows.
This is indeed a bit scarry looking for non tech’s

on the moment i use this which is quite nice.


#5

I’m not aware of a way to make it run a service, and I’m not sure if it will be possible to do so and still have access to the gpu and other devices. The way we do it is using the launcher that Maurice linked and make that run at started, with autologin enabled on those machines.

The easy solution for your problem would be to make a launcher that can minimise to the tray.


#6

In preparation to when flash is phased out where are the best tutorials on HTML? i know nothing on this stuff and couldnt find many tutorials on youtube


#7

I tried google web designer for this purpose and found very compatible for this work.


#8

I can confirm, same experience.


#9

@Julusian
I’ve updated my clients with minor changes for them to work properly with server version 2.2.
The only issue that I can see right now is with the thumbnails generated. They seem to be processed as straight alpha (without the actual alpha channel) and they lack the 2x2 preview grid.
Is that the expected behavior or is there something that I’ve missed?

Movie thumbnails in server 2.1:

Still thumbnails in server 2.1:

Movie thumbnails in server 2.2:

Still thumbnails in server 2.2:


#10

Is your client made in dot Net and using svt.caspar.dll and getting media and template list from sever 2.2?


#11

Yes and no, only media. Never used the TLS command in my apps. I handle them internally.
I had to edit some stuff for it to work with WPF and to get the thumbnails, the rest is untouched.


#12

i see lots of tutorials on google web designer but how would i go about writing the AMCP code that sends dynamic text or loads dynamic images into the template. I usually use Livecode to make my clients and i just write amcp commands to the server


#13

May be you would like to read this topic for google web designer.
https://casparcgforum.org/t/html-template-with-google-web-designer/1103


#14

lots of stuff in there as food for thought. Looks like i gotta brush up on javascript. still looks way more complex than flash


#15

This is in fact possible on Windows to run any program as a service, you need an intermediate software called NSSM this works perfectly. More informations at https://stackoverflow.com/questions/3582108/create-windows-service-from-executable