0.0.8 • Published 3 years ago
patrick-wowza-webrtc-player v0.0.8
Wowza WebRTC Player
Easy to use WebRTC Player library to connect to Wowza Media Server.
🚀 Installation
Install with yarn:
$ yarn add wowza-webrtc-player
Or install using npm:
$ npm i wowza-webrtc-player
Base code
To works, we need to create a WowzaWebRTCPlayer instance bound to a HTML5 video element.
The second parameters allows you to set different options. You can change it later using player.setConfigurations(options)
.
import { WowzaWebRTCPlayer } from 'wowza-webrtc-player';
const videoElement = document.querySelector('video');
const player = new WowzaWebRTCPlayer(videoElement, {
sdpUrl: 'wss://zeezzrezrezr.streamlock.net/webrtc-session.json',
applicationName: 'webrtc',
streamName: 'myStream',
});
As a publisher
1. Play the camera locally.
It will ask for browser permission, and connect your camera to the video element.
await player.playLocal();
2. Publish video to Wowza
await player.publish();
3. Stop publishing the flux (but camera still active)
await player.stop();
4. Stop the camera (and also stop publishing the flux)
await player.stopLocal();
As a Viewer
1. Read the remote flux
await player.playRemote();
2. Stop it
await player.stop();
Extends/Replace SDP Mungle
player.setConfigurations({
sdpHandler(sdp, originalHandler) {
return originalHandler(sdp);
},
});
Get Wowza running streams
It need to be enabled in your Wowza server.
const streams = await player.getAvailableStreams();
streams.forEach((stream) => {
console.log(
stream.streamName,
stream.codecAudio,
stream.codecVideo,
stream.readyAudio,
stream.readyVideo
);
});
Options
Key | Type | ||
---|---|---|---|
applicationName | string | Your wowza app name ("live" or "webrtc" in Wowza documentation). | |
streamName | string | Your Wowza stream name ("myStream" in Wowza documentation) | |
sdpUrl | string | Your Wowza websocket secured url (should looks like "wss://zeezzrezrezr.streamlock.net/webrtc-session.json" ) | |
constrains | MediaStreamConstraints | { video: true, audio: true } | |
iceServers | RTCIceServer | List of your ICE server to connect to | |
videoConfigs | Object | { bitRate:360, codec:'VP8', frameRate: 29.97 } | |
audioConfigs | Object | { bitRate:64, codec:'opus' } | |
userData | Object / null | Can be used to send data to Wowza (to handle authentification or other stuffs) |
0.0.8
3 years ago