# OvenPlayer

## What is OvenPlayer?
<img src="demo/assets/images/OP_LLHLS_220610.svg" style="max-width: 100%; height: auto;">

OvenPlayer is a JavaScript-based Player that can play Low Latency HLS (LLHLS) and WebRTC streams optimized for [OvenMediaEngine](https://github.com/OvenMediaLabs/OvenMediaEngine). It provides various APIs, so you can build and operate your media service more easily.

## Demo
<img src="demo/assets/images/05_OvenSpace_230214.png" style="max-width: 100%; height: auto;">

OvenSpace is a sub-second latency streaming demo service using [OvenMediaEngine](https://github.com/OvenMediaLabs/OvenMediaEngine), [OvenPlayer](https://github.com/OvenMediaLabs/OvenPlayer) and [OvenLiveKit](https://github.com/OvenMediaLabs/OvenLiveKit-Web). You can experience OvenPlayer in the **[OvenSpace Demo](https://space.ovenplayer.com/)** and see examples of applying in [OvenSpace Repository](https://github.com/OvenMediaLabs/OvenSpace).

## Features
* HTML5 Standard Video Player
* Live Streaming with Various Protocols
    * Sub-Second Latency: WebRTC (Signalling Protocol Conforms to the OME Specification)
    * Low Latency: LLHLS, LLDASH (Chunked CMAF)
    * Legacy: HLS, MPEG-DASH
* Automatic Fallback Streaming
* Fully Customizable UI and SDK
* Insert ADs with Various Formats<
    * VAST4, VAST3, VAST2, VPAID2 (HTML5), VMAP1.0.1
* Support Multiple Subtitle Formats
    * SMI, VTT, SRT

## Quick Start
Please read the [Quick Start](https://docs.ovenplayer.com/#quick-start).

### OvenPlayer Demo
* Without TLS: http://demo.ovenplayer.com
* With TLS: https://demo.ovenplayer.com

## API and Configuration
Start the [Demo](https://demo.ovenplayer.com) and see [API and Configuration](https://docs.ovenplayer.com/initialization) for more details.

## Build the source code
Check out [Build](https://docs.ovenplayer.com/builds) section how to create `ovenplayer.js` for deployment or development after modifying the source code.

## How to contribute
We appreciate your interest in OvenPlayer.

We need your help to keep and develop our open-source project, and we want to tell you that you can contribute in many ways. Please read our [Guidelines](CONTRIBUTING.md), [Rules](CODE_OF_CONDUCT.md), and [Contribute](https://www.ovenmediaengine.com/contribute).

- [Finding Bugs](https://github.com/OvenMediaLabs/OvenPlayer/blob/master/CONTRIBUTING.md#finding-bugs)
- [Reviewing Code](https://github.com/OvenMediaLabs/OvenPlayer/blob/master/CONTRIBUTING.md#reviewing-code)
- [Sharing Ideas](https://github.com/OvenMediaLabs/OvenPlayer/blob/master/CONTRIBUTING.md#sharing-ideas)
- [Testing](https://github.com/OvenMediaLabs/OvenPlayer/blob/master/CONTRIBUTING.md#testing)
- [Improving Documentation](https://github.com/OvenMediaLabs/OvenPlayer/blob/master/CONTRIBUTING.md#improving-documentation)
- [Spreading & Use Cases](https://github.com/OvenMediaLabs/OvenPlayer/blob/master/CONTRIBUTING.md#spreading--use-cases)
- [Recurring Donations](https://github.com/OvenMediaLabs/OvenPlayer/blob/master/CONTRIBUTING.md#recurring-donations)

We always hope that OvenPlayer will make your project a success.

## For more information
* [OvenMedia Labs Website](http://ovenmedialabs.com/)
  * About OvenMediaEngine, OvenMediaEngine Enterprise, OvenVideo, AirenBlog and more
* [OvenPlayer Getting Started](https://docs.ovenplayer.com/)
  * User guide for OvenPlayer UI Customize, API Reference, Examples, and more
* [OvenMediaEngine GitHub](https://github.com/OvenMediaLabs/OvenMediaEngine)
  * Sub-Second Latency Streaming Server with LLHLS and WebRTC
* [OvenMediaEngine Getting Started](https://docs.ovenmediaengine.com/)
  * User guide for OvenMediaEngine Configuration, ABR, Clustering, and more
* [OvenLiveKit](https://github.com/OvenMediaLabs/OvenLiveKit-Web)
  * JavaScript-based Live Streaming Encoder for OvenMediaEngine
* [OvenSpace Demo](https://space.ovenplayer.com/)
  * Sub-Second Latency Streaming Demo Service

## License
OvenPlayer is licensed under the [MIT license](LICENSE).

## About OvenMedia Labs Inc.
OvenMedia Labs aims to make it easier for you to build a stable broadcasting/streaming service with Sub-Second Latency.
Therefore, we will continue developing and providing the most optimized tools for smooth Sub-Second Latency Streaming.

Would you please click on each link below for details:
* ["JavaScript-based Live Streaming Encoder" **OvenLiveKit**](https://github.com/OvenMediaLabs/OvenLiveKit-Web)
* ["Sub-Second Latency Streaming Server with LLHLS and WebRTC" **OvenMediaEngine**](https://github.com/OvenMediaLabs/OvenMediaEngine)
* ["JavaScript-based Player with LLHLS and WebRTC" **OvenPlayer**](https://github.com/OvenMediaLabs/OvenPlayer)
