Video example above is a HLS adaptive bitrate streaming based on m3u8 manifest file. Nuevo plugin for videojs has built quality selection menu. A quality button appears automatically if only m3u8 playlist includes information about resolution variants.
Resolution picker does not work on iOS devices, since iOS allows only native HLS streaming which is outside of control (iOS is missing Media Source Extension). Resolution picker by Nuevodevel allows to switch into any static resolution available and back to Auto mode. In Auto mode, it allows to see resolution changes in real time when the player is resized (eg. to fullscreen) or internet speed changes significantly.
videojs HLS streaming supports a bunch of HLS features. Here are some highlights:
<link href="//domain.com/videojs/skins/nuevo/videojs.min.css" rel="stylesheet"><script src="//domain.com/videojs/video.min.js"></script><script src="//domain.com/videojs/nuevo.min.js"></script>
<video id="myplayer" class="video-js vjs-fluid" poster="//domain.com/path/to/poster.jpg" controls preload="auto"><source src="//domain.com/path/to/playlist.m3u8" type="application/x-mpegURL"></video>
<script>var player = videojs('myplayer');player.nuevo()</script>
player.src({ src: "//path-to-hls-playlist.m3u8", type="application/x-mpegURL", withCredentials: true});