
Dolby.io WebRTC Statistics
This project is a library to use to parse WebRTC statistics.
Install this project
Run the following npm command to install the package @dolbyio/webrtc-stats
into your project:
npm install @dolbyio/webrtc-stats
Use the library
Collection
A WebRTCStats
object needs to be created to start a WebRTC statistics collection. It requires some settings to configure how you want the collection to work. First, import the WebRTCStats
definition.
import { WebRTCStats } from '@dolbyio/webrtc-stats';
Create the collection object like this example:
const collection = new WebRTCStats({
getStats: () => {
},
getStatsInterval: 1000,
includeRawStats: true,
});
Start the collection with the start()
function.
collection.start();
Stop the collection with the stop()
function.
collection.stop();
Events
After starting the collection, the stats
event is triggered when the WebRTC statistics have been collected and parsed.
import { OnStats } from '@dolbyio/webrtc-stats';
collection.on('stats', (event: OnStats) => {
console.log(event);
});
The error
event is triggered when an error happens during the collection or the parsing of the WebRTC statistics.
collection.on('error', (reason: string) => {
console.error(reason);
});
Example
Example on how to start a statistics collection from the Dolby Millicast SDK.
import { WebRTCStats, OnStats } from '@dolbyio/webrtc-stats';
import { Director, Publish } from '@millicast/sdk';
const PUBLISHER_TOKEN = '';
const STREAM_NAME = '';
const tokenGenerator = () =>
Director.getPublisher({
token: PUBLISHER_TOKEN,
streamName: STREAM_NAME,
});
const publisher = new Publish(STREAM_NAME, tokenGenerator);
const collection = new WebRTCStats({
getStatsInterval: 1000,
getStats: () => {
return publisher.webRTCPeer.getRTCPeer().getStats();
},
});
collection.on('stats', (event: OnStats) => {
console.log(event);
});
collection.start();
Logs
You can also print the logs in the console and select the log level by using the following code.
import { Logger } from '@dolbyio/webrtc-stats';
Logger.useDefaults({
defaultLevel: Logger.TRACE,
});
How to
Run tests:
npm run test
Create distribution package:
npm run build
The documentation is built on TypeDoc, to generate the doc, run the following command. You will find the HTML files in the docs
folder.
npm run docs
Related Projects