Showing posts with label delivery. Show all posts
Showing posts with label delivery. Show all posts

March 9, 2020

Glass-to-glass SRT delivery setup

SRT delivery of live streams is gaining momentum as more companies add this protocol support into their products. Being SRT Alliance member, Softvelum provides extensive SRT support in various products.

Currently it's possible to create a glass-to-glass delivery with SRT using Softvelum products.


This article describes detailed setup of the following streaming scenario:
  • Content creator is streaming from Larix Broadcaster to Nimble Streamer server instance.
  • Nimble Streamer takes incoming SRT and provides output for playback.
  • Viewer uses Larix Player for pulling live stream from Nimble Streamer.
To make this work, we'll set up each element of this chain. We'll show the setup within a local network and you can make it work across any network.

1. Set up Nimble Streamer


Before moving forward you need to complete the following steps:


We'll use an instance available via 192.168.0.104 IP address in local network, all mobile devices will be connected to the same local network.

Here's what we'll set up on Nimble Streamer side:

  • Larix Broadcaster app will use SRT in Push (Caller) mode to deliver the content, so we'll set up Nimble in "Listen" mode to receive it.
  • Larix Player will work in "Pull" mode to retrieve live stream for playback, so we'll set up Nimble output in "Listen" mode to take those requests and respond with content.

So let's set up both these elements.

1.1 Receiving input SRT via Listen


In WMSPanel, go to Nimble Streamer -> Live streams settings top menu, then choose "MPEGTS In" tab.


Now click on Add SRT stream to see a new dialog.


Here you need to choose Listen from Receive mode drop down box, enter 0.0.0.0 in Local IP and use some port that is available on your server, like 2020 in this case. The Alias is used for further reference in UI.

Check Add outgoing stream checkbox and define Application name and Stream name, this will create proper output which we'll use later on the next step.

Once you click Save, you'll see this setting being synced to Nimble Steamer instance.


Now if you click on MPEGTS Out tab, you'll see that proper output has also been described for further use.


This is required because SRT uses MPEG-TS as its media transport, which requires this distinction due to a nature of that protocol. You can read more about MPEGTS setup in this article.

There are more options of controlling input SRT streams via SRT Publisher Assistance Security Set - SRT PASSet, including user/password authorization and per-stream parameters. Read PASSet overview article for more details.

From this moment you'll be able to publish a stream into Nimble Streamer, so we have one more setup step left.

1.2 Providing the SRT output via Listen


Go to UDP streaming tab.


Click on Add SRT setting button to see the following dialog.


Set Mode field to ListenLocal port is selected from available ports. Local IP is set to "0.0.0.0", this will allow getting requests on all interfaces.

If you want to use Nimble Streamer with connections from outside of your network, you need to make sure that your firewall and network in general are set up properly to make those connections.

Source application name and Source stream name are defined as the app and stream name from MPEGTS Out section above, those are "srt" and "output". This will redirect the source content into SRT output.

In addition you may define maxbw and latency parameters in case if you use some uncontrolled network for delivery. Read this article for more details.

Now when we have an instance of Nimble Streamer ready to work, we can set up a streaming app.

2. Set up Larix Broadcaster SRT streaming


Larix Broadcaster is a free app, you can install it from Google Play and from AppStore. You can find out about all features of Larix on Android page and on iOS page, they have full lists of capabilities.

Let's use Larix Broadcaster for Android to set up live streaming to Nimble Streamer instance. Once you install and launch it, you'll see preview screen.


Click on gear icon to enter settings dialog.


You may keep default settings, or change some parameters like the resolution from Video menu. You can discover them by browsing the menus.

Now let's set up SRT output stream. Go to Connections menu.


We've previously set up some connections to testing purposes - you can see RTMP and RTSP being both checked. This allowed streaming simultaneously into two destinations. We need to add a new one, so tap on New connection menu.


Here you need to add a name for your connection and then enter the publishing URL. That URL consists of srt:// prefix, the address of a server and port number. In our case it will be srt://192.168.0.104:2020/ - the IP of a server and proper port which we used during the SRT setup on step 1.1. You may leave other options as they are.

After saving a setting you will see it in the list. You can un-check other connections if you want to stream only via the new one.


Now return to preview screen. You can push the big red circle button to start streaming.


The button will change its shape and you will see FPS and streaming length on top and particular stream stats in the bottom.

Now let's watch this stream on other device.

3. Set up Larix Player SRT playback


Larix Player is a solution which allows playing multiple live protocols and provides wide playback capabilities via Android and iOS apps. You can install it from Google Play and AppStore.

We'll use Android app to demonstrate the SRT playback. Once you install it, you'll see connections menu which will be empty.


Click on plus button to enter a dialog to create a new connection.


Here you will enter a connection Name and a URL. The URL is our case will be srt://192.168.0.104:2021/ where the IP and port are taken from step previous 1.2.

Also read more about additional settings of SRT streaming and general overview of Larix Player.

Once you tap Save, you'll see a new entry in streams list.


Now you can just tap on the name and start watching the stream.




That's it. You can change any of the described components for your streaming scenario as well as combine them with other products and features of our company.


You can take a look at another similar example: Set up OBS Studio SRT streaming with Larix Broadcaster and Nimble Streamer.



Please also take a look at Phone Takeover: Replacing Pro Cameras in Live Streaming article which shows how a modern phone can be used instead of low- and mid-tier cameras for live production.




Let us know if you have any questions about the described products and setup.

Related documentation


SRT support overview for Nimble Streamer, SRT setup in Nimble StreamerSRT playback stats and protectionLarix Broadcaster, Larix Broadcaster docs referenceLarix Player

December 11, 2013

Citrix acquires Skytide

Dan Rayburn has recently brought interesting news: Citrix Acquires CDN and Service Provider Analytics Company Skytide.

Skytide's solutions cover analytics and reporting for medium to large CDNs. As per Dan, Citrix plans to integrate Skytide’s technology into their ByteMobile platform.

So our team would like to congratulate Skytide and Citrix with this big step forward!



Meanwhile you can read about WMSPanel for hosting providers and CDNs and see how you can improve Wowza end-user reporting experience with WMSPanel.

November 12, 2013

How to stream VOD with Nimble Streamer

Nimble Streamer is a light-weight HTTP streaming media server. The "light-weight" means that it’s targeted for being used on small virtual servers. These small servers can be deployed both as a single server and as a task force, or a farm, which can effectively stream the media via HLS, Smooth and progressive download.

Nimble is provided free of charge and its target platform is Ubuntu. If you want to make further savings, you look for the cost-effective hosting provider. DigitalOcean has the unbeatable prices which makes it a great virtual cloud provider for streaming media hosting. Of course you can use any other hosting provider like Amazon or Rackspace. WMSPanel is not affiliated with neither of the mentioned companies.

Let's see how "DigitalOcean + Nimble Streamer" stack can help you start streaming VOD content within just several minutes. We’ll follow these easy steps:
  1. Create virtual server in DigitalOcean.
  2. Install Nimble Streamer.
  3. Set up streaming routes.
  4. Test the VOD streaming on a desktop and on a mobile device using HTML5 player and JWPlayer.

October 9, 2013

Nimble Streamer disk cache for VOD re-streaming

One of the major use cases for Nimble Streamer is the re-streaming of HLS and Smooth Streaming. Our customers use it to off-load their origin servers by moving light-weight Nimble edges closer to their audience.

Currently Nimble has a RAM-based cache for live re-streaming and a disk cache for VOD re-streaming.
Let's see how disk cache works for delivery of VOD content.

  1. A viewer requests a playlist, Nimble downloads its and determines whether it's live or VOD.
  2. The playlist is sent back to the viewer.
  3. A viewer requests a new chunk from the previously downloaded playlist.
  4. If there is no pre-downloaded chunk, it's being requested from the origin.
  5. Once downloaded, it's being placed to disk cache.
  6. If the disk cache is full, the chunk is stored into RAM if possible.
  7. The chunk is being stored on disk for 24 hours then removed.
Live caching will be done in similar way, but it will be primarily stored in RAM and then on disk in case of overflow.

The following parameters are added info config file to allow some fine tuning of disk cache:
  • cache_path is a path to the file cache storage, with default value /var/cache/nimble.
  • max_disk_cache_size is a size of file cache measured in MB with 4096 MB by default.
This gives an ability to effectively deliver VOD content to any edges from any type of origin.

Please also learn more about latest VOD cache control features here.

You can also take a look at the video where Jan Ozer of Streaming Learning Center and Yury Udovichenko of Softvelum discuss pros and cons of dynamic packetizing of live, VOD and DVR content. It gives more details about Nimble Streamer VOD streaming.






Related documentation




August 13, 2013

Wowza statistics for clients of CDN services

Content Delivery Networks became the key element of today's streaming infrastructure. So lots of businesses use CDNs for bringing their content to users' devices.

However not everyone is happy about the statistics they get within CDN reporting. The main concerns are:

  • Not sure about data accuracy;
  • Need more reports;
  • Need more flexibility in accessing stats.

So people need to compare their reports with some other source of information and have the data being accessible in a convenient way.

WMSPanel can help in case your CDN uses Wowza for delivery at the edges. Here is what a CDN needs to do to have WMSPanel reporting experience help the CDN users.

  1. Sign up in WMSPanel. They can try it 2 weeks free of charge, just as any other newcomer.
  2. Install WMSPanel agent on its edge servers, at least on the servers that are used for delivery of your content.
  3. Create data slice for the servers and applications that are used by you and create user accounts for you.

If you want some other people to watch your statistics you may ask your CDN to set up an access via white label panel to show your stats via custom URL and logo. This gives some reporting flexibility. You may also get reports that are not available at some of the CDNs. Like, duration report, high precision report or lost traffic stats.

Needless to say that a CDN may use WMSPanel as an extra service either to make some money on it or to create some added value on top of traditional services.

Now demand your CDN to use WMSPanel as the reporting solution!

Read more use cases in our Case study section.


Also read more about WMSPanel streaming reporting.

Related documentation