An approach to get QoS-related metrics from mpegts/flvjs player
npm install mpegtsjs-metric- An approach to get QoS-related metrics from mpegts.js/flv.js player.
- Compatible with both mpegts.js/flv.js libraries.
- Only applicable to MSEPlayer
- ``shell`
npm i mpegtsjs-metric
- `js`
import EnableQoS from 'mpegtsjs-metric'
// enable mpegts.js/flv.js with qos-related metrics
EnableQoS()
// get metric from the MSE player
player.getMetric.then(metric=>{
// do something
}).catch(err=>{
// fail to get metric
})
- The resolved object metric includes the following properties:
| property | explanation |
| :----------------: | :----------------------------------------------------------: |
| buffered | An array that containes multiple objects, each of them has start and end property, representing the startTime and endTime of the current video buffer |
| duration | The duration of the video source. Infinity when the source is live. |
| currentTime | The current playback time of the video |
| mimeTypes | Audio/Video type and Codec. Undetected when there is no video/audio |
| currentKBps | Current speed of pulling network stream KB/s |
| mediaInfo | Meta/video/audio Info of the current media |
| stashUsed | Current stash size used to handle media data KB |
| stashSize | Total stash size used to handle media data KB |
| totalVideoFrames | mdn |
| droppedVideoFrames | mdn |
| resolution | The resolution of the video, string format eg. 1024x960 |
| prestoredTime | The buffered time ahead of current playback time |
| presentedFrames | A count of the number of frames submitted for composition |
| presentationTime | The time at which the user agent submitted the frame for composition |
| frameRate | FPS |
- Most of above are retrieved from mpegts.js and Web APIs, and this npm package provides a unified interface.
- Compatibility
- mpegts.js/flv.js
- requestVideoFrameCallback` API