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