You guys need to implement Adaptative Bit Rate

Streaming Tablo remotely is hard to use because basically you ask us to select at what bitrate it should stream. The feature I want to request (and I know it’s CPU dependent) is to implement ABR. If the internet connection is slow, Tablo should transcode and Streamat a lower bitrate, when more Bandwidth is available Tablo should increase the bitrate. It should also allow for a healthy buffer. I find my tablo often stalling because the buffer is not big enough or because the intertnet connection is congested and there is not enough BW available.

1 Like

When the Tablo first came out all those years ago, the developers wanted to implement something like that. Under “remote streaming quality” was an Auto setting (coming soon, they said). But I assume it was just too difficult to pull off.

There are two limiting factors. One is your home internet upload speed. While download rates are advertised heavily, not everyone knows their upload speeds, which are usually much slower.

The other factor is the download speed where you are. If you are at a vacation home, someone’s house, your place of work, or a few other places, your download speeds are probably pretty good. But if you are using cellular data, at a hotel, or at a restaurant, you might be lucky to get 1 Mbps.

The programming of these streams appear to be use the current settings until the settings change and that channel has been un-tuned (or the Tablo rebooted). There is almost nothing “adaptive” about the Tablo.

While this would be a great feature, I have doubts that it is technically feasible with the current software.

How fast is your internet upload speed at home where the Tablo is setup?

Since tablo records in HLS, how many different bitrates per recording would you expect tablo to produce? How much disk space would that require.

Or are you expecting tablo to transcode to various bitrates on the fly?

Reply to snowcat

Most streaming systems are ABR (Netflix, Amazon Video, HBO, ESPN etc). Even when the upload speed is 2Mbps you can’t simply set 1.5Mbps or even 1Mbps as the upload speed because during the streaming, the connection could get slower than that on average. The result is that you have to set it to something like 0.75Mbps resulting on a bad video and still you can experience freezes from time to time.

How it works today:

  • Tablo Transcodes all the content to the desired rate say 1Mbps and streams that over the pipe to the client no matter if the client can take it or not the rate will not change.

How it would work with ABR

  • Tablo will start transcoding at 1Mbps and ask the client how its buffer is doing.

  • If the buffer is filling very quick and data is flowing at a healthy rate tablo changes the transcoding to 1.5Mbps

  • The client notices that the buffer is still filling very quick and tells that to Tablo. Tablo then adjusts the transcoding to 2Mbps.

  • The client notices that the BW is enough to operate at 2Mbps but not more and let’s tablo know.

  • Tablo continues to stream at the 2Mbps rate.

----- Time passes ----

  • The client notices that te buffer is been depleted and that the data is not flowing at 2Mbps anymore even if tablo continues to stream at 2Mbps. It communicates this to Tablo.

-Tablo adjusts transcoding to 1Mbps until the network becomes healthy again to go back to 2Mbps.

Bottom line, Tablo already transcodes, it just needs to adapt the rate.

I understand that this is a big feature but one that is very marketable specially to people with vacation houses like the one you mention.

1 Like

To

theuser86

the upload speed is 3Mbps but it varies specially on prime time.

Well… I don’t really believe you all are thinking this all the way through. Just saying.

Tablo already transcodes the “remote rate” on the fly. When you select it to stream remote @1Mbps it will transcode to that level on the fly. You just need to make that rate adjustable. At no time it will need to transcode to 2 different rates so the CPU use would not go up.
The remote streaming rate does not get permanently written into disk.

Actually, tuner use could go up significantly. More work, more likelihood of work.

Not the RF tunner no, just a little bit more CPU to control the amount of cache in the client and to switch between transcoded rates.

On the traditional Tablo units, the tuners are the CPUs.

I guess this gives a whole new meaning to adaptive bit rate. Instead of having the client player, which is actually the media player’s video player not tablos, actually cause the switching based on network speed, it’s all manual.

Does any of this fit into the HLS standard?

And what happens when two or more people are watching the same channel? Would this affect the maximum number of output streams which is currently 6, etc., etc., etc.

3 Mbps is way too slow to even stream the lowest “HD” recording quality of 720p 3 Mbps. Get faster internet.

This is why the remote streaming experience is so horrible for you.

There are already pretty severe limitations on remote viewing. One remote user is using two of the available tuners (if not at full quality). I am not even sure two users can remote view at the same time on a 4 tuner.

Now if you happen to have a home user and a remote user viewing the same channel or recorded show, it can be done. While the remote user is using the 2nd tuner to do the adaptive bitrate, the home user is just watching the stream based on the first tuner. You still could have quite a few home users on the system, as long as you don’t exceed the number of tuners.

Some people like to fiddle with tablo via remote connect. For me it’s hard to think of anything less entertaining. And there probably is a difference between Live TV and recordings.

But the tablo blog says:

The number of remote connections that the Tablo can support is limited
to one remote connection, IF any other recording quality other than
‘full quality’ is selected. This is because any other recording quality
will require the Tablo to re-transcode the video while it sends it to
your remote device.

Interesting, but surely limited to one only in the case of a 2-tuner unit? (assuming both tuners a free).

???

I really don’t want anymore than one person watching remote. The HLS standard already takes care of this, the master manifest will include bitrate levels that are available but not transcoded if not needed. Most commercial systems work this way https://www.broadbandtechreport.com/articles/2015/04/vantrix-adds-just-in-time-transcoding.html
If and when the client requests a bitrate level, Tablo can transcode the video for it.

1 Like

Very limited use case for this, add it as a feature request in the surveys they send out. But I doubt it will ever come to fruition, one can hope though.

The HLS standard has, for a number of standard versions, allowed for the manifest file to indicate variable bitrates.

And the issue that I was hinting at was that this just might require multiple HLS files be recorded at the various supported bitrates. And for it to be truly smooth adaptive and automatically switch a 10 mbits stream just might need the proper indexes into the 5 Mbits, 1.5 Mbits, etc.

And is Live TV also HLS based.

Variable/adaptive bitrate for vids is a cool idea but it would be super-annoying to see it changing resolutions constantly like when netflix or amazon or whatever services suffer from “TCP slow start” and the rendered material starts out really fuzzy and sharpens up, then gets fuzzy randomly due to network conditions outside of your control. Fwiw a thing called “TCP slow start” results from some of the underlying/original design goals for arpanet. Today it causes much of the bizarre variability in data-rates observed from user viewpoint via many applications that demand “fat pipes” (large bit-rates).