Technical Preview: SRT Streams In Cablecast 7.5+
Summary
Cablecast 7.5 introduces support for SRT network streams. SRT is an open source video transport protocol that is optimized for unpredictable networks such as the internet. SRT support is currently in technical preview, meaning the setup, configuration, and final features of SRT support may change as we receive feedback from real world testers utilizing SRT in the field.
Introducing SRT Network Stream Support In Cablecast 7.5
With Cablecast 7.5 you can now play, record and live caption SRT streams just like other supported network streams in Cablecast. SRT stands for Secure Reliable Transport and is an open source protocol originally developed by Haivision. The protocol is designed to solve many common problems when delivering video and audio over unreliable networks such as the public internet. The SRT protocol utilizes a number of techniques to achieve its performance such as:
- Forward Error Correction (FEC)
- Packet Loss Concealment
- Congestion Control
To learn more about these techniques and SRT visit: SRT Video Streaming Protocol (Secure Reliable Transport)
SRT Call Modes and Cablecast Deployment Considerations
An SRT device can operate in one of several call modes.
- Listener - The device waits for an incoming connection to initiate the stream. This is the caller mode that Cablecast operates in.
- Caller - The device initiates the connection, “calling” the listening device and establishing the stream.
- Rendezvous - Both devices act as both caller and listener. This mode is used to bypass requirements for opening port-forwarding or adding NAT rules to internet routers.
Cablecast, specifically the Cablecast VIO or Flex Video Server operates in the listener caller mode. When a SRT network is scheduled to play or record, the Cablecast Video Server Engine will start listening on the configured port for that SRT Network Stream on the VIO or Flex Server scheduled to play or encode that SRT stream. If no stream is being received the video server engine will output the configured standby graphic, if one is available, until an SRT encoder operating in the caller mode connects.
The Cablecast VIO or Flex video server will already have the appropriate operating system firewall rules in place to allow the video server engine to receive the SRT stream. It is important that before attempting to use SRT network streams the appropriate port forward or NAT rules are configured in your network's Internet router if you are attempting to receive SRT streams from the public Internet. Both TCP and UDP protocols should be open for the the port chosen for the configured SRT stream. If multiple SRT streams are configured then multiple rules will need to be created in the router. See the diagram below for how the SRT stream would flow to a typical VIO server.
When configuring your SRT encoder the stream must be sent directly to the video server playing the stream, which may not be the public facing host server.
Unfortunately, Cablecast support cannot configure your firewall for you. Please reach out to your IT team for assistance.
Considerations For Systems With Multiple Video Servers
Because SRT streams are point to point, only one video server in a system can receive an SRT stream at the same time. This means that it is not possible to play the same stream on multiple channels if those servers use different video servers for their primary devices.
If you have multiple servers and are using multiple SRT streams that will go to different servers, put the name of the server in the name of the stream to help avoid confusion.
Scenario: I have have a VIO4 server for my public, education, and government channels. Can I play an SRT stream on two channels and encode it at the same time?
Yes! Internally when playing any network stream the Cablecast Video Server Engine connects and decodes the stream once and reuses that stream internally for all use cases including play outs on all server outputs and recording. Since all play outs and recording operations are on the same VIO4 only one server needs to receive the SRT stream and this would work fine.
Scenario: I have two VIO Omni Servers for my public and educational channels. Can I play the same SRT stream for my High School Graduation on both channels?
This scenario will not work because the VIO Omni is a single channel server. Each server would need to receive the SRT stream, and the SRT stream can only be sent to one server. For situations like this using a network stream protocol that is server based and offers multiple connections such as RTMP or HLS would be recommended.
Creating A SRT Stream
Creating an SRT stream in Cablecast is easy, and just like creating any other network stream in Cablecast.
- Start by clicking Settings from the Main menu.
- Click Location Settings.
- Then select the I/O tab and choose Network Streams
- Click New to create a new Network Stream
- Give the Stream a Name
- Select SRT from the Type
- Choose a Port for the SRT Protocol to use
- Optionally upload a Standby Graphic that will be displayed if there is no stream
- Click Save to save the network stream.
Remember to setup the appropriate UDP and TCP port forwards on your firewall or router if using SRT from the public internet.
Setting Up a Test Encoder With OBS Studio
While there are many commercial SRT encoders available, OBS Studio is an excellent choice to get up and running quickly. We’ll be following along with this guide from the OBS Studio documentation: Wiki - Streaming With SRT Or RIST Protocols | OBS .
We’ll assume that the cablecast server is available at cablecast.example.com and that SRT has been configured for port 5001. Remember to substitute your own public IP or DNS address if using SRT from the public internet, or your VIO servers internal IP address if using SRT from the local area network.
- First download the latest version of OBS Studio for your computer
- Setup a simple scene using your webcam or a looping video.
- Configuring An OBS Scene is beyond the scope of this article. For help setting up OBS, please refer to their public documentation: Wiki - Wiki | OBS
- In Controls towards the bottom right of the screen click Settings
- Choose Stream to configure the streaming output.
- Change the Service to Custom
- Change the Server to the address below. Remember to change cablecast.example.com and 5001 to your systems IP or DNS and SRT port respectively.
- Click OK to save
srt://cablecast.example.com:5001?mode=caller&timeout=5000000&transtype=live
Playing Your OBS Studio SRT Stream In Cablecast Force Matrix
Now that we have an SRT Stream setup in Cablecast, and we have OBS configured as an SRT encoder, Let’s Stream!
Log into Cablecast and navigate to Autopilot and then to the Force Matrix
- Click Action on the VIO or Flex server you want to test the SRT stream on.
- Click Play Stream and from the drop down choose your SRT stream.
- Click Take
The standby graphic will start playing within a few seconds. Now switch to OBS Studio and click Start Streaming from the Controls Section.
You’re now streaming with SRT from OBS Studio to Cablecast!
Additional Resources and Notes On Technical Preview
Now that Cablecast is configured to receive SRT streams you can schedule SRT streams just like other shows, schedule them them to record for future playback, or even live caption them with Cablecast Closed Captioning. For more on those workflows checkout these other knowledge base articles:
Setting up Cablecast to use Network Stream: https://support.cablecast.tv/s/article/360049274112-Setting-up-Cablecast-to-use-Network-Stream
Feature Overview - Network Streaming: https://support.cablecast.tv/s/article/360040347052-Feature-Overview-Network-Streaming-With-RTP-RTMP-RTSP-HLS-YouTube-Live-and-NDI
Recording A Network Stream: https://support.cablecast.tv/hc/s/article/360047994612-Recording-a-Network-Stream
Closed Captioning with Cablecast Cloud Services: https://support.cablecast.tv/s/article/Closed-Captioning-with-Cablecast-Cloud-Services
SRT streaming support is still in technical preview. This means we are interested in hearing how users find SRT support to be out in the world. Is there some part of SRT that we haven’t implemented? Would Cablecast operating in caller mode make your day? If so we really want to hear from you. Please reach out to ray.tiley@trms.com or steve.israelsky@trms.com with your questions or feedback about Cablecast’s SRT support.