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 HLSStats
and 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) |