streaming via WebRTC with Ant-MediaServer
npm install @antmedia/videojs-webrtc-pluginPlugin for viewing streams located on the ant-media server. There is also a function to change the resolution of the stream
- Quick Start
- Installation
- Issues
- Usage
- Source Object
- streamUrl
- iceServers
- Tag
- Browserify/CommonJS
- RequireJS/AMD
- Handling error-callbacks
- License
To quickly install the videojs-webrtc-plugin and run it locally on your server, follow the below steps.
- Clone the repository on your local system.
``bash`
git clone https://github.com/ant-media/videojs-webrtc-plugin.git
- After cloning the repository, run the below commands to build and run the project locally.
`bash
npm install
npm run build
npm run start
`
After the project runs, it will run on any specific port (for example, port 10000), so you can access it on http://localhost:10000 or http://IP-address:10000 if running on any cloud server.
Once the plugin runs in browser, replace the websocket URL with your server's websocket URL in the WS stream link and load the stream. Check the streamUrl part for reference.
In order to integrate the plugin into your external project, use the below command to install the package.
`bash`
npm install --save @antmedia/videojs-webrtc-plugin
To include videojs-webrtc-plugin on your website or web application, use any of the following methods.
#### streamUrl
Ant-MediaServer stream address format:
`js`
ws://[ant-address]/[app]/[streamId].webrtc?token=[token(opt)]&subscriberId=[subscriberId(opt)]&subscriberCode=[TOTP-code(opt)]
For example:
`js`
ws://12.23.322.157:5080/LiveApp/stream1.webrtc
Addtional Parameters:-
- token (optional) - a one-time token generated for the stream (in case the stream is protected by the one-time token protection mechanismsubscriberId (optional)
- - subscriber Id. Required if the stream is protected by a TOTP passwordsubscriberCode (optional)
- - generated TOTP password. Required if the stream is protected by a TOTP password
#### iceServers
Array of Ice-servers (STUN, TURN) in JSON string format to establish a WebRTC connection.
For example:
`js`
'[ { "urls": "stun:stun1.l.google.com:19302" } ]'
This is the simplest case. Get the script in whatever way you prefer and include the plugin _after_ you include [video.js][videojs], so that the videojs global is available.
`html
$3
When using with Browserify, install videojs-webrtc-plugin via npm and
require the plugin as you would any other module.`js
var videojs = require('video.js');// The actual plugin function is exported by this module, but it is also
// attached to the
Player.prototype; so, there is no need to assign it
// to a variable.
require('videojs-webrtc-plugin');var player = videojs('my-video');
player.src({
src: 'ws://localhost:5080/LiveApp/stream1.webrtc',
iceServers: '[ { "urls": "stun:stun1.l.google.com:19302" } ]'
});
`$3
When using with RequireJS (or another AMD library), get the script in whatever way you prefer and
require the plugin as you normally would:`js
require(['video.js', 'videojs-webrtc-plugin'], function(videojs) {
var player = videojs('my-video'); player.src({
src: 'ws://localhost:5080/LiveApp/stream1.webrtc',
iceServers: '[ { "urls": "stun:stun1.l.google.com:19302" } ]'
});
});
`$3
Ant-MediaServer has functionality to handle errors coming from the backend.
To catch an error, you need to subscribe to the event "ant-error":
`js
``MIT. Copyright (c) Ant Media
[videojs]: http://videojs.com/
In case of any problem, please create issues at Ant-Media-Server Repository