Testing the new Experimental Transcoder (for improved remote viewing of recorded content)

I've discovered a bug in the new transcoder that can cause it to hang when the transcoder stops. I've only had it happen to me once, but the only fix for it was to restart the DVR process. The behavior I experienced was streaming hanging and eventually timing out.

I will be releasing a new build to fix it, but it may not be until Monday before it's published.

1 Like

Beta build v2019.08.24.1834 has been posted:

  • FIXED: The DVR could sometimes fail to start any new transcodes after the new transcoder had stopped until the DVR was restarted
  • IMPROVED: Transcoder detailed logging has been moved out of the DVR log and into a recording-specific log in Streaming/cache called transcoder.log

Downloading and installing 2019.08.28.0601 update. I'll let you know how it works for me.

Brief test on my iPhone with WiFi turned off. Seems quite responsive. Tried some repetitive "rewinds" and it handled it fine. Later on I'll plug the FTV in, associate it with my phone's WiFi hotspot, and give that a go.

1 Like

Any plans to introduce a 720p @ 2mbps option for the Server Quality? It might be the sweet spot for me for streaming and would love this option on Channels. I am using the new in-browser adaptive streaming option which helps but I can't get over 1mbps with it on and even then it stops to load occasionally. It mainly stays on 750mbps @ 1.75x, then switches to 1mbps for a few seconds then back down to 750mbs.

Not sure why but I can get up to 2mbps on Plex in 720p just fine with no loading. My upload speed on my home network is wired at about 3mbps - 5mbps on average, with hardware transcoding on my i3 windows 10 PC. My download speed on my laptop when streaming is 75mbps. Also, my commmercial skipping isn't working on the web browser away from home streaming.

1 Like

I too would like this option.

In beta build v2019.08.27.0251 I've added and initial implementation of adaptive bitrate streaming in the in-browser player. Due to its very experimental nature, it has a separate flag to use it.

What does this mean?

The in-browser player should stream pre-recorded content with fewer buffering delays and glitches on networks that do not have enough bandwidth to stream at the maximum bitrate selected. When using the player in the browser, the player will measure the bandwidth available as it downloads video and will decide what bitrate to download based on the observed speeds.

I've added the current transcoder bitrate to help monitor the transcoding as it moves between bitrates.

I've found that sometimes it takes a long time to get back up to higher bitrates once it has dropped down and may be able to improve that to some extent, but have found that some of it is inevitable with how Safari in particular interacts with our transcoding.

Please let me know how it works for you and what issues you run into. I’m going to continue to work on finding ways to make it get back to higher bitrates more quickly.

1 Like

Thanks for this feedback! What speed does it say your encoder is operating at? You’ll see @ 2.3x or something similar in the status.

Part of the thing that makes adaptive streaming exceptionally hard in the browser is that HLS clients in the browser assume that all files are pre-encoded and are available to be downloaded at full speed. Because we are encoding on the fly, it can make the client measurements of bandwidth be much lower than what the connection capacity actually is.

We will have more control over these calculations in our apps, but will see what we are able to do in the browser as well.

Looks like it is running better than my test this morning. It starts with...

Transcoder Running at 375kbps: 47m41s @ 2.09x

then maxes out and stays at...

Transcoder Running at 1mbps: 51m35s @ 2.24x

Not bad, I like the adaptive setting but just hope it gets a little higher!

For the adaptive bitrate there is a 720p 2mbit variant that is served, you should be covered there.

Seeing that you’re having these issues with it not increasing beyond 1mbit with an encoder operating at over 2x is a good datapoint for my upcoming work.

1 Like

Now I see the new Frames Per Second data when streaming from browser. Here is my new info... stays around this...
Transcoder Running at 1mbps: 46m22s @ 2.37x (128.31fps)
Transcoder Running at 1mbps: 51m20s @ 2.64x (125.25fps)

What does a Speedtest report for your connection?

Please try the latest build and let me know if there is any difference.

Won’t be able to test the new build till Tuesday but I was running about 2mbps upload from my host channels pc and about 80mbps down on the one I was streaming from at my office.

Hmmm... if you only have 2mbits/sec of capacity I’m not sure we’ll ever get the browser to give you a 2mbit stream. From what I’ve gathered the HLS clients try to make sure there’s a little extra headroom to prevent stalling.

Which browser are you using?

Brave on a Mac to stream it.

I enabled this feature and was having issues where the stream would stop every few minutes using hardware transcoding on my nvidia p2000 GPU

Disabled the feature and my stream was then fine.

If you could send your DVR log to [email protected] it would help understand what was going on there.

Did you have Adaptive Streaming enabled?

Adaptive streaming was not enabled. I will send the log over tonight.

I've made progress on implementing adaptive streaming in the client apps. In my testing today in various situations, it has performed well, but is still very new. To begin with, I've only released iOS and tvOS beta builds with support.

iOS and tvOS beta build Version 2019 (9.3.522) has been posted:

  • NEW: Adaptive streaming when experimental transcoder is enabled in DVR

DVR beta build v2019.09.03.0745 has been posted:

  • NEW: Provide new HTTP header to help client identify if clients are waiting on the server to encode segments
  • IMPROVED: Encoder restarting more than necessary when client is seeking

When running the latest iOS and tvOS beta build it will use adaptive streaming when New Transcoder Adaptive Streaming is enabled on the DVR. The Streaming Quality setting in the app will dictate the maximum bitrate the client uses.

Is ok to select both settings?

Yes. More details about it are here: