Introduction OvenPlayer is a proven HTML5 standard player designed for smooth streaming with Ultra-Low Latency and automatically fallback using various protocols.
Features
Various Protocols: WebRTC, HLS, MPEG-DASH, RTMP
Streaming with Ultra-Low Latency
Supports Streaming regardless of Browser and Media Type
Receives the Signaling Protocol from OME (Signalling Protocol conforms to the OME specification)
Automatically Fallback using HLS, MPEG-DASH
Easily create profit by adding Ads in various formats
Supports various subtitle formats (SMI, VTT, SRT)
Responsive player regardless of screen size
Download
You can download OvenPlayer from OvenPlayer GitHub .
If you have access to OvenPlayer GitHub , you can download it by pressing the Clone or Download button and clicking Download ZIP in the menu that appears.
Precompiled OvenPlayer
When you download and decompress it, you will see:
Copy OvenPlayer
├── dist/
│ ├── development/
│ │ └── ovenplayer/
│ │ ├── ovenplayer.js
│ │ ├── ovenplayer.provider.DashProvider.js
│ │ ├── ovenplayer.provider.DashProvider~ovenplayer.provider.HlsProvider~ovenplayer.provider.Html5~ovenplaye~7afd68cf.js
│ │ ├── ovenplayer.provider.HlsProvider.js
│ │ ├── ovenplayer.provider.Html5.js
│ │ ├── ovenplayer.provider.RtmpProvider.js
│ │ ├── ovenplayer.provider.WebRTCProvider.js
│ │ ├── OvenPlayerFlash.swf
│ │ ├── smiparser.js
│ │ └── vttparser.js
│ └── production/
│ └── ovenplayer/
│ ├── ovenplayer.js
│ ├── ovenplayer.LICENSE
│ ├── ovenplayer.js.map
│ ├── ovenplayer.provider.DashProvider.js
│ ├── ovenplayer.provider.DashProvider.js.LICENSE
│ ├── ovenplayer.provider.DashProvider.js.map
│ ├── ovenplayer.provider.HlsProvider.js
│ ├── ovenplayer.provider.HlsProvider.js.LICENSE
│ ├── ovenplayer.provider.HlsProvider.js.map
│ ├── ovenplayer.provider.Html5.js
│ ├── ovenplayer.provider.Html5.js.LICENSE
│ ├── ovenplayer.provider.Html5.js.map
│ ├── ovenplayer.provider.RtmpProvider.js
│ ├── ovenplayer.provider.RtmpProvider.js.LICENSE
│ ├── ovenplayer.provider.RtmpProvider.js.map
│ ├── ovenplayer.provider.WebRTCProvider.js
│ ├── ovenplayer.provider.WebRTCProvider.js.LICENSE
│ ├── ovenplayer.provider.WebRTCProvider.js.map
│ ├── ovenplayer.sdk.js
│ ├── ovenplayer.sdk.js.LICENSE
│ ├── ovenplayer.sdk.js.map
│ ├── OvenPlayerFlash.swf
│ ├── vttparser.js
│ └── vttparser.js.LICENSE
...
This default format is OvenPlayer compiled for use in most web projects.
We currently provide Developer, a development version for local builds, and Production, a distribution version for production builds for distribution. Also, It is split-compiled on a module-by-module basis to reduce the amount of wasted capacity.
When you put production/ovenplayer
in static directory in the web server and include only ovenplayer.js
, you are ready to use OvenPlayer.
Copy <script src="your_path_to/ovenplayer/ovenplayer.js"></script>
Quick Start
You can import ovenplayer.js
as shown below:
Copy <script src="your_path_to/ovenplayer/ovenplayer.js"></script>
And if you add the following code to your HTML code, OvenPlayer will be initialized in this element later.
Copy <div id="player_id"></div>
Initialize for default
Copy let player = OvenPlayer.create("player_id", {
sources: [
{
"type": "mp4",
"file": "../dist/OCP_480.mp4",
"label": "480p"
},
{
"type": "mp4",
"file": "../dist/OCP_720.mp4",
"label": "720p"
},
{
"type": "mp4",
"file": "../dist/OCP_1080.mp4",
"label": "1080p"
}
]
});
Initialize for OME
You can use OvenPlayer.generateWebrtcUrls()
to generate the list of WebRTC signalling URL.
Copy let webrtcSources = OvenPlayer.generateWebrtcUrls([
{
host : 'ws://host:port',
application : 'app',
stream : "stream_1080",
label : "WebRTC 1080P"
},
{
host : 'ws://host:port',
application : 'app',
stream : "stream_480",
label : "WebRTC 480P"
}
];);
Or you can write your list of URLs and use them as in the code below:
Copy let webrtcSources = [{type : "webrtc", file : "ws://host:port/app/stream_1080", label : "1080"}, {type : "webrtc", file : "ws://host:port/app/stream_480", label : "480P"}]
Copy let player = OvenPlayer.create("player_id", {
sources: webrtcSources
});
Initialize for DASH
If you want to play MPEG-DASH, you need the dash.js plugin.
You need to place the dash.js
plug-in first, and then ovenplayer.js
, as shown below:
Copy <script src="https://cdnjs.cloudflare.com/ajax/libs/dashjs/2.9.3/dash.all.min.js"></script>
<script src="your_path_to/ovenplayer/ovenplayer.js"></script>
Copy let player = OvenPlayer.create("player_id", {
sources: [
{
"type": "dash",
"file": "http://domain/dist/OCP_480.mpd",
"label": "480p"
}
]
});
Initialize for HLS
If you want to play HLS, you need the hls.js plugin.
You need to place the hls.js
plug-in first, and then ovenplayer.js
, as shown below:
Copy <script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<script src="your_path_to/ovenplayer/ovenplayer.js"></script>
Copy let player = OvenPlayer.create("player_id", {
sources: [
{
"type": "hls",
"file": "http://domain/dist/OCP_480.m3u8",
"label": "480p hls"
}
]
});
Initialize for Ads
If you want to use Ads in OvenPlayer, you need the google ima plugin.
You need to set the ima
plug-in first, and then ovenplayer.js
, as shown below:
Copy <script type="text/javascript" src="//imasdk.googleapis.com/js/sdkloader/ima3.js"></script>
<script src="your_path_to/ovenplayer/ovenplayer.js"></script>
Copy let player = OvenPlayer.create("player_id", {
sources: [{
"type": "mp4",
"file": "../dist/OCP_1080.mp4",
"label": "1080p"
}],
adTagUrl : "https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dlinear&correlator="
});
Starter Template
Copy <!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<script src="your_path_to/ovenplayer/ovenplayer.js"></script>
<title>OvenPlayer For OME</title>
</head>
<body>
<div id="player"></div>
<script>
let player = OvenPlayer.create("player", {
sources: [
{
"type": "mp4",
"file": "your_path_to/OCP_480.mp4",
"label": "480p"
}
]
});
player.on("error", function(error){
console.log(error);
});
</script>
</body>
</html>
How to Contribute
Please read our Guidelines and Rules .
License
OvenPlayer is under the MIT license .