Visual video corruption in Edge and IE11 with native HLS and MSE playback when seeking or bitrate switching

In progress Issue #14600417 • Assigned to Rafael V.

Details

Created
Nov 10, 2017
Privacy
This issue is public.
Found in
  • Microsoft Edge
  • Internet Explorer
Found in build #
41.16299
Reports
Reported by 2 people

Sign in to watch or report this issue.

Steps to reproduce

When playing back video content in EDGE and IE11 using native HLS or MSE, visual decoding errors sometimes appear in the form of miscolored pixels/macroblocks, often green, when seeking to specific times or bitrate switching. This issue is much more prevalent in IE11, but can be observed in Edge as well. The corruption when bitrate switching is more likely to happen when appending content near the playhead, but this is not a requirement if the key frames do not line up perfectly across bitrate variants. I will be using the https://github.com/videojs/videojs-contrib-hls for my MSE examples, however the issues are not specific to this project and can be reproduced with other MSE based players. videojs-contrib-hls added a workaround for the bitrate switching issues through pull request https://github.com/videojs/videojs-contrib-hls/pull/1259 but for the purposes of showing the problem, the following jsbins are using the version of videojs-contrib-hls before that workaround was merged.

Steps to reproduce:

Native HLS by seeking (no bitrate switching required):

  1. Load https://s3.amazonaws.com/bc-jrivera/moose/12140/prog_index.m3u8 into Edge directly so that it loads the video using Edge native HLS playback. This is a single bitrate, so no switching involved.
  2. You can play through the video and see there are no issues.
  3. Seek to 0:20-0:23 and observe. It should already be buffered so there is no appending. Frozen frames and visual corruption should be visible.
  4. Alternatively, you can seek to 0:19 or 0:24 and have no issues.

MSE by seeking (no bitrate switching required):

  1. go to http://jsbin.com/dozuzosahu/1/edit?html,console,output in Edge or IE11
  2. follow steps 2-4 from above

Native HLS by bitrate switching:

  1. Load https://s3.amazonaws.com/bc-jrivera/moose/master.m3u8 into Edge directly.
  2. Play through and observe (Note that this is a bit more difficult to reproduce as you will have to throttle/unthrottle your connection to force bitrate switches)

MSE by bitrate switching:

  1. go to http://jsbin.com/coxujudevi/1/edit?html,output in Edge or IE11
  2. play through and click on the “Switch bitrates” button to force a bitrate switch.
  3. observe the corruption

Thank you.

Microsoft Edge 41.16299.15.0
Microsoft EdgeHTML 16.16299

Copied from Description when changed from Task to Bug

Copied from Repro Steps when changed from Bug to Task

When playing back video content in EDGE and IE11 using native HLS or MSE, visual decoding errors sometimes appear in the form of miscolored pixels/macroblocks, often green, when seeking to specific times or bitrate switching. This issue is much more prevalent in IE11, but can be observed in Edge as well. The corruption when bitrate switching is more likely to happen when appending content near the playhead, but this is not a requirement if the key frames do not line up perfectly across bitrate variants. I will be using the https://github.com/videojs/videojs-contrib-hls for my MSE examples, however the issues are not specific to this project and can be reproduced with other MSE based players. videojs-contrib-hls added a workaround for the bitrate switching issues through pull request https://github.com/videojs/videojs-contrib-hls/pull/1259 but for the purposes of showing the problem, the following jsbins are using the version of videojs-contrib-hls before that workaround was merged.

Steps to reproduce:

Native HLS by seeking (no bitrate switching required):

  1. Load https://s3.amazonaws.com/bc-jrivera/moose/12140/prog_index.m3u8 into Edge directly so that it loads the video using Edge native HLS playback. This is a single bitrate, so no switching involved.
  2. You can play through the video and see there are no issues.
  3. Seek to 0:20-0:23 and observe. It should already be buffered so there is no appending. Frozen frames and visual corruption should be visible.
  4. Alternatively, you can seek to 0:19 or 0:24 and have no issues.

MSE by seeking (no bitrate switching required):

  1. go to http://jsbin.com/dozuzosahu/1/edit?html,console,output in Edge or IE11
  2. follow steps 2-4 from above

Native HLS by bitrate switching:

  1. Load https://s3.amazonaws.com/bc-jrivera/moose/master.m3u8 into Edge directly.
  2. Play through and observe (Note that this is a bit more difficult to reproduce as you will have to throttle/unthrottle your connection to force bitrate switches)

MSE by bitrate switching:

  1. go to http://jsbin.com/coxujudevi/1/edit?html,output in Edge or IE11
  2. play through and click on the “Switch bitrates” button to force a bitrate switch.
  3. observe the corruption

Thank you.

Microsoft Edge 41.16299.15.0
Microsoft EdgeHTML 16.16299

Attachments

0 attachments

    Comments and activity

    • Sorry, the Github links in the first paragraph got messed up. Here they are again

      https://github.com/videojs/videojs-contrib-hls

      https://github.com/videojs/videojs-contrib-hls/pull/1259

    • I’ve noticed a few issues with my jsbin examples so I’ve updated them here. The examples in my original post did not actually use MSE. I’m also experiencing some CORS issues for the higher bitrate playlist, but the source has proper CORS setup and loads fine in other browsers. You might have to download the source and host locally.

      MSE by seeking
      https://jsbin.com/rozosehiqu/edit?html,output

      Also with the seeking, spam clicking a specific seek time has a very odd behavior
      https://gyazo.com/8ccd6e83d356add4d4e583a7d17b8d24

      MSE by bitrate switching
      https://jsbin.com/nivitomahu/edit?html,output

    • Microsoft Edge Team

      Changed Assigned To to “James M.”

      Changed Assigned To to “Venkat K.”

      Changed Assigned To from “Venkat K.” to “Jerry S.”

      Changed Assigned To from “Jerry S.” to “Angelo L.”

      Changed Assigned To from “Angelo L.” to “Gurpreet V.”

      Changed Assigned To from “Gurpreet V.” to “Angelo L.”

      Changed Steps to Reproduce

      Changed Assigned To from “Angelo L.” to “Rafael V.”

      Changed Status to “Confirmed”

      Changed Status from “Confirmed”

      Changed Status to “Confirmed”

      Changed Status from “Confirmed” to “In progress”

    You need to sign in to your Microsoft account to add a comment.

    Sign in