HLS Stats
This feature is still in Beta. To know more or report any issues, feel free to reach out to us over support@100ms.live.
@100ms-live/hls-stats is a simple library that provides easy to use APIs for acquiring stats
for your HLS Stream.
Initialization
Initializing is very simple. Just initialize Hls.js and pass that reference as well as a
video element to HLSStatsand you are already done.
import Hls from 'hls.js'; /** * Initialize Hls.js and attach the video element. */ const hlsUrl = 'http://my-domain/stream.m3u8'; const hlsInstance = new Hls(); hlsInstance.loadSource(hlsUrl); hlsInstance.attachMedia(videoEl); /** * initialize HlsStats */ const hlsStats = new HlsStats(hlsInstance, videoEl);
Subscribing to Stats
hlsStats have a subscribe function which takes two parameter. a callbackFn and an interval in ms.
The interval tells how frequent you want hls-stats to report back to you. Default is 2000ms.
const unsubscribe = hlsStats.subscribe((state) => { // ... });
the subscribe() also returns a reference to unsubscribe() function which could later be used to unsubscribe
from your subscription
Exposed Stats
hls-stats currently exposes the following stats
| Name | Description | Unit | Usage |
|---|---|---|---|
| bandwidthEstimate | The current bandwidth, as seen by the player | bits per second | Use this to show the current network speed of the user |
| bitrate | server indicated bitrate of current layer of HLS stream | bits per second | Use to know the bitrate required for current layer |
| bufferedDuration | buffered duration from the current position | ms | This can be used to show how much data is buffered from the current location (forward buffer) |
| distanceFromLiveEdge | The distance from the live edge | ms | Used to know currently buffered duration ahead |
| droppedFrames | The number of dropped frames till now | Used to calculate the total number of dropped frames | |
| videoSize.width videoSize.height | The width and height of the video | px | Used to know the resolution being played |
| watchDuration | Total duration watched | ms | used to know the overall watch duration (not the stream length) |



