Dolby.io WebRTC Statistics - v1.0.2

Build Package Build Documentation Publish Package npm License

Dolby.io WebRTC Statistics

This project is a library to use to parse WebRTC statistics.

Run the following npm command to install the package @dolbyio/webrtc-stats into your project:

npm install @dolbyio/webrtc-stats

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: () => {
// Get the raw WebRTC statistics from the web browser
},
getStatsInterval: 1000,
includeRawStats: true,
});

Start the collection with the start() function.

collection.start();

Stop the collection with the stop() function.

collection.stop();

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 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);

// HERE: Publish a stream to Dolby Millicast

const collection = new WebRTCStats({
getStatsInterval: 1000,
getStats: () => {
return publisher.webRTCPeer.getRTCPeer().getStats();
},
});

// The stats event is triggered after each interval has elapsed
collection.on('stats', (event: OnStats) => {
console.log(event);
});

// Start the statistics collection
collection.start();

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,
});

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