October 25, 2016

RTMP delayed pull buffer improvements

RTMP-related feature set of Nimble Streamer allows creating various streaming scenarios with your infrastructure. One of them is delayed pull, or pull by request. It allows saving bandwidth when some stream is not consumed by viewers.

When a viewer requests an edge server for some stream - e.g. via HLS - this edge will start pulling RTMP stream right at that moment. So the origin will give the stream only when it's needed. You can read more in this article.

Usually it takes some time to start the playback on viewer side so we added an enhancement for this scenario. You can now specify RTMP buffer items count on origin so the edge could get bigger buffer to provide it to the player.

So the player will get several chunks almost immediately and start playback in a second without buffering.

To make this work, follow these steps.

1. Upgrade your edge and origin Nimble instances.

2. On your origin, open nimble.conf and add
rtmp_buffer_items = 4096

3. Restart origin server.

Now, once the edge requests origin it will get 30 seconds buffer immediately and will start the playback.

You may find other fine tuning techniques for live streaming in Performance tuning guide.

Related documentation

Live Streaming features in Nimble, Performance tuning of Nimble StreamerLive Transcoder for Nimble Streamer, RTMP feature set, Build streaming infrastructure with Nimble Streamer, Achieving low latency for live streaming using Nimble Streamer,