Welcome to the long read version of the “TL:DR” section of the Cinegy Air 21.2 What’s New post. In this follow-up post we will provide details on major changes which arrived with version 21.2 of Cinegy Air.
All Things SRT (Feedback Streams, Encryption, Library Updates)
I am sure a lot of you already benefit from using SRT technology in your workflows to get secure streams delivered in pristine quality with low latency. At Cinegy we have supported SRT in Cinegy Air from version 14 (as well as in all other products of the same generation) and we are still massive fans.
For those of you who somehow haven’t been across this, please check out the SRT Encapsulated IP Input and Output section of the What’s New in Cinegy Air 14 post. For those familiar with it, we have more great news coming!
Cinegy Air 21.2 comes with a SRT library update to version 1.4.2 and with it a raft of optimizations for Windows. One of the key enhancements from this update is the reduction in the amount of CPU resource utilized to carry out the encapsulation.
For us, the biggest news here is that Cinegy Air now offers even greater value by arming your workflow with an end-to-end SRT encryption. Yes, you’ve got it right – with Cinegy Air 21.2 you can use end-to-end 128/256-bit AES encryption to ensure that content is protected from contribution to distribution!
Encrypted SRT streams are great for those of you needing to receive/deliver your feeds via the Internet and particularly for those who run your playout in the cloud. And much as Cinegy Air 14 could decrypt streams using the URL format, Cinegy Air 21.2 allows chaining of the SRT parameter for tuning how much protection time (latency) to add into a specific connection – like this:
But that is not all the SRT news, starting from Cinegy Air 21.2 we have moved our playout engine feedback streams from randomized unicast over UDP to the more advanced and suitable SRT. This introduces some much-anticipated resilience into the ways you can work with your feedback streams and enables easier firewall traversal through fixed port allocations.
Real-Time Engine Telemetry Metrics
Big data is something which Cinegy has talked about in the past and we have already enabled other products with telemetry capabilities, and now it is the turn of Cinegy Air.
Cinegy has added real-time engine metrics which can be collected and sent to a telemetry server of your choice where they can then be represented in a clear and comprehensive graphic form. This data is generated every second by each of the running playout engines on the server. We mapped the exposure of these metrics into our pre-existing Cinegy Playout Engine HTTP API, which provides a highly accessible place optimized for machine-reading (but still comprehensible when a human takes a look!).
Here are the metrics in their raw form accessed through a web browser pointed at
port number starts at 5521 and increments for each engine.
This data can then be combined with other metrics which you may gather from your playout server, such as CPU and GPU usage, before sending to the same telemetry system.
When you pull all this information together, you can produce some great insights into how your playout system is functioning and if any problems arise correlate this data for easier troubleshooting.
Here are some example dashboards which have been created in Grafana:
Below is a snippet of how to push telemetry from your playout engine to a telemetry system with the help of a simple PowerShell script.
The full script is available, along with other useful tools and scripts, on GitHub.
Extensions to Cinegy Playout Engine APIs
Since we were working inside that Engine API section to extend the telemetry metrics, we made some tweaks to that area.
We’ve now made it possible to request from the API the details of what Cinegy Air control application (the front-end panel or the new API service) has the active connection. This is critical in determining from any given Engine where further REST requests should be delivered:
You can also drill in to the ‘active’ or ‘cued’ (/video/status/active) to get details of the current or cued items directly, without referencing the main list command. Finally, should you wish to inhibit these APIs from responding to any external requests (above and beyond any default firewall configuration) you can set the ‘HTTPOnLocalhostOnly’ flag under the AirEngineConfig\General node in the engine configuration node.
New Cinegy Air Control REST API
The ability to control your playout automation system through web-based interfaces is something which has become even more important over the last year. The Cinegy’s response to this has been to add REST API methods to Cinegy Air Control to give customers the tools to create these interfaces.
These APIs are currently in beta form and so are not included in the default installation package but are available on request. This will change as the APIs mature and will become a standard part of the Cinegy Air deployment.
Here you can see some of the methods which are currently available:
We use the ‘Swagger’ package to provide self-documentation and discovery to the APIs themselves, and we have started using these APIs internally to build controls we will be publishing live demonstrations of shortly – so stay tuned.
Support for Using MPEG-TS Stream as Source Files
Cinegy Air has had quite a wide selection of supported input file codecs and wrappers ever since the product appeared on the market and it’s needless to say that we are constantly extending this list to stay up to date with the modern broadcast market requirements.
The newest addition to this list is MPEG-TS, which has been around for quite a while. Nowadays the range of cameras and media encoders using it as a format keeps growing, and with the expansion of the VOD/OTT market share, MPEG-TS is becoming a broadcast media standard. By accommodating this we don’t just offer an easier integration into your VOD/OTT solutions, but also offer a native support of playing back your studio workflows with synchronized streams from multi-camera setups.
Placeholder Workflow Improvements and Advanced Indicators
When Cinegy Air is connected to a Cinegy Archive MAM, it is possible to utilize placeholders in the playlist. These can be added programmatically using traffic system integrations, manually through the Cinegy Playlist Editor or to the live playlist through the Cinegy Browser panel.
For a while now it has not been possible to see the status of these placeholders, or even, once fulfilled to see if an item had previously been a placeholder, making checking fulfilment a bit of a task. Now in Cinegy Air 21.2 we have added some highly useful indicators and color coding of the playlist items to enhance the operator experience and aid placeholder workflows.
A heartbeat check has been added to ensure that Cinegy Air Control has an active Archive/MAM connection. If the connection is lost, then the symbol is indicated in the status column against placeholders as shown below. This ensures that an operator will know that a placeholder will be converted into a real item when the media arrives into the MAM.
If the imported file-based media has a different duration than the placeholder, then the line item will be colored blue, signifying that the item duration has changed, and action needs to be taken. Right clicking will give you the menu option of updating just the one highlighted occurrence, or all occurrences, depending on your requirements.
If required, a further refinement allows this process to become automatic. In the Cinegy Air configurator there is an added tick box named “Auto item update”.
This tick box activates 2 new columns in the playlist - “AutoUPD” and “Auto Updated At”:
|Restart the Cinegy Air control application to update the settings to see these changes.|
The operator can now choose to tick the “AutoUPD” box against each item, or not, as required. When an auto update takes place, the time is recorded in the “Auto Update At” field, allowing operators to check that the latest update was applied and when.
A further enhancement to the placeholder workflow has been added: to indicate with a playlist icon that an item in the playlist is or has been a placeholder. This is extremely useful for operators to quickly look ahead and identify, or even preview/spot check, items coming up in the playlist.
Items added to the playlist as placeholders, carry the symbol in the playlist source column. This allows an important visual clue as to which items are, or were, placeholders.
To aid identification of placeholders in heavily populated playlists, it is now possible to do a search for placeholders and their status by right clicking and selecting “Find from selected” Giving access to additional options “Next Placeholder”, “Previous Placeholder” and “Next Missing Media”.
A quick reminder that columns can be re-arranged to enable important fields to be visible without scrolling, by right clicking in the top menu line of the playlist and selecting “Customize” if required, this is not a new feature, but perhaps has passed some operators by.
SCTE-104 / SCTE-35 Transcoding
We’ve added a number of small tweaks to our SCTE-35 engine during the release cycle of Cinegy Air 21.2 and intend to make some larger alterations to the way we allow the creation of events within Cinegy Air 21.7. However, one of the things we did with Cinegy Air 21.2 was to support the transparent ‘transcoding’ of SCTE-35 events into their SDI-based equivalent of SCTE-104. Now splice messages that are generated by Cinegy will be embedded into the SDI VANC as SCTE-104 data, which can help any such triggers to propagate through hybrid SDI and IP broadcast chains.
"Pseudo Interlace" Mode
The final element to add to this post is to describe the work-around we have created to solve the problem that no modern GPU acceleration is available for interlaced encoding. Starting from the introduction of the ‘Turing’ based hardware, Nvidia stopped supporting H.264 encoding with interlace. This has caused several problems, since the Nvidia acceleration gave great quality at the same time as having almost no CPU cost.
Of course, while interlace is certainly something we would all like to resign to the dustbin, it’s not going anywhere anytime soon. We also understand that with increasing use of the cloud, there is a real cost to backhaul of signals over the internet – meaning people would like to use the even more efficient HEVC/H.265 codec choice that the Nvidia boards offer (which has never had interlace encoding).
The solution we have added to Cinegy Air 21.2 (and all subsequently released Cinegy products) is what we call ‘Pseudo-interlace’. This is where we arrange both fields within a frame sequentially, before encoding that pair as a standard progressive frame. We then mark the bitstream with a flag that tells any downstream Cinegy decoders to interpret the resulting image as a stacked pair of fields.
The upside is that we can now accurately and efficiently carry interlace material over highly compressed IP streams. The downside is that no other equipment is likely to understand how to re-combine the pictures back into a proper interlace output – so to transform this for final contribution and distribution, a Cinegy Encode instance will be needed to catch this and to re-encode on CPU, an older GPU or output as baseband.
While we understand, this is a really limiting downside, for us we see this as a viable workaround for at least some circumstances. We look forward to the general availability of the newer Intel discreet GPUs, which should allow us to provide a workable solution for GPU-enhanced H.264 interlace encoding again in a professional-grade environment – if anyone is interested in trying to use our Intel QuickSync based encoding options, please do drop us a note and we can arrange some discussions around early adoption.
Thanks for reading so far, and we really hope you enjoy the benefits added into Cinegy Air 21.2.
|Please note that the version number in this post has been corrected to reflect the recent rebranding of Cinegy Air.|