Skip to content

Commit

Permalink
GitBook: [#312] No subject
Browse files Browse the repository at this point in the history
  • Loading branch information
getroot authored and gitbook-bot committed May 27, 2022
1 parent 1db974f commit d922b8d
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 91 deletions.
2 changes: 1 addition & 1 deletion docs/enterprise/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ All features of OvenMediaEngine are identical to the Open Source version and the
Enterprise adds:

* Commercial library
* The features that the customer does not allow to be disclosed as open source among the features developed by the customer commissioned by AirenSoft.
* The features that the customer does not allow to be disclosed as open source among the features developed by the customer.



4 changes: 1 addition & 3 deletions docs/streaming/hls-mpeg-dash.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
# Low-Latency DASH and HLS streaming

{% hint style="danger" %}
From OvenMediaEngine v0.14.0, Legacy HLS, DASH, and LLDASH are deprecated. If you want to continue using this feature, use 0.13.2.
From OvenMediaEngine v0.14.0, Legacy HLS, DASH, and LLDASH are deprecated. We decided to focus more of our energy on LLHLS instead. See [LLHLS](low-latency-hls.md).
{% endhint %}

LLHLS, released from v0.14.0, is superior to Dash and LLDASH in all aspects of compatibility, performance and function, and also support legacy HLS players. Therefore, we decided not to update legacy HLS, DASH and LLDASH anymore. With the energy that was used to maintain these features, we will focus on more wonderful features in the future.
6 changes: 0 additions & 6 deletions docs/streaming/low-latency-hls.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,12 +64,6 @@ To use LLHLS, you need to add the `<LLHLS>` elements to the `<Publishers>` in th
HTTP/2 outperforms HTTP/1.1, especially with LLHLS. Since all current browsers only support h2, HTTP/2 is supported only on TLS port. Therefore, it is highly recommended to use LLHLS on the TLS port.
{% endhint %}

## Adaptive Bitrates Streaming (ABR)

LLHLS can deliver adaptive bitrate streaming. OME encodes the same source with multiple renditions and delivers it to the players. And LLHLS Player, including OvenPlayer, selects the best quality rendition according to its network environment. Of course, these players also provide option for users to manually select rendition.

See the [Adaptive Bitrates Streaming](../transcoding/#adaptive-bitrates-streaming-abr) section for how to configure renditions.

## CrossDomain

Most browsers and players prohibit accessing other domain resources in the currently running domain. You can control this situation through Cross-Origin Resource Sharing (CORS) or Cross-Domain (CrossDomain). You can set CORS and Cross-Domain as `<CrossDomains>` element.
Expand Down
91 changes: 10 additions & 81 deletions docs/transcoding/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# ABR and Transcoding
# Transcoding

OvenMediaEngine has a built-in live transcoder. The live transcoder can decode the incoming live source and re-encode it with the set codec or adjust the quality to encode at multiple bitrates.

Expand Down Expand Up @@ -46,7 +46,9 @@ The `<OutputProfile>` setting allows incoming streams to be re-encoded via the `
According to the above setting, if the incoming stream name is `stream`, the output stream becomes `stream_bypass`and the stream URL can be used as follows.

* **`WebRTC`** ws://192.168.0.1:3333/app/<mark style="background-color:blue;">stream\_bypass</mark>
* **`LLHLS`** http://192.168.0.1:8080/app/<mark style="background-color:blue;">stream\_bypass</mark>/llhls.m3u8
* **`HLS`** http://192.168.0.1:8080/app/<mark style="background-color:blue;">stream\_bypass</mark>/playlist.m3u8
* **`MPEG-DASH`** http://192.168.0.1:8080/app/<mark style="background-color:blue;">stream\_bypass</mark>/manifest.mpd
* **`Low-Latency MPEG-DASH`** http://192.168.0.1:8080/app/<mark style="background-color:blue;">stream\_bypass</mark>/manifest\_ll.mpd

### Encodes

Expand All @@ -57,7 +59,6 @@ You can set the video profile as below:
```markup
<Encodes>
<Video>
<Name>720_vp8</Name>
<Codec>vp8</Codec>
<Width>1280</Width>
<Height>720</Height>
Expand All @@ -75,7 +76,6 @@ The meaning of each property is as follows:
| ----------------------------------------- | ------------------------------------------- |
| Codec<mark style="color:red;">\*</mark> | Specifies the `vp8` or `h264` codec to use |
| Bitrate<mark style="color:red;">\*</mark> | Bit per second |
| Name | Encode name for Renditions |
| Width | Width of resolution |
| Height | Height of resolution |
| Framerate | Frames per second |
Expand Down Expand Up @@ -106,7 +106,6 @@ You can set the audio profile as below:
```markup
<Encodes>
<Audio>
<Name>opus_128</Name>
<Codec>opus</Codec>
<Bitrate>128000</Bitrate>
<Samplerate>48000</Samplerate>
Expand All @@ -121,7 +120,6 @@ The meaning of each property is as follows:
| ----------------------------------------- | ------------------------------------------ |
| Codec<mark style="color:red;">\*</mark> | Specifies the `opus` or `aac` codec to use |
| Bitrate<mark style="color:red;">\*</mark> | Bits per second |
| Name | Encode name for Renditions |
| Samplerate | Samples per second |
| Channel | The number of audio channels |

Expand Down Expand Up @@ -233,88 +231,19 @@ To change the video resolution when transcoding, use the values of width and hei



## Adaptive Bitrates Streaming (ABR)

{% hint style="warning" %}
Currently, ABR is only supported in LLHLS. Webrtc ABR will soon be supported.
{% endhint %}

From version 0.14.0, OvenMediaEngine can encode same source with multiple bitrates renditions and deliver it to the player.

As shown in the example configuration below, you can provide ABR by adding `<Renditions>` to `<OutputProfile>`. To set up `<Rendition>`, you need to add `<Name>` to the elements of `<Encodes>`. Connect the set `<Name>` into `<Rendition><Video>` or `<Rendition><Audio>`.&#x20;

In the example below, three quality renditions are provided.

```xml
<OutputProfile>
<Name>bypass_stream</Name>
<OutputStreamName>${OriginStreamName}</OutputStreamName>
<Renditions>
<Rendition>
<Name>Bypass</Name>
<Video>bypass_video</Video>
<Audio>bypass_audio</Audio>
</Rendition>
<Rendition>
<Name>FHD</Name>
<Video>video_1280</Video>
<Audio>bypass_audio</Audio>
</Rendition>
<Rendition>
<Name>HD</Name>
<Video>video_720</Video>
<Audio>bypass_audio</Audio>
</Rendition>
</Renditions>
<Encodes>
<Audio>
<Name>bypass_audio</Name>
<Bypass>true</Bypass>
</Audio>
<Video>
<Name>bypass_video</Name>
<Bypass>true</Bypass>
</Video>
<Audio>
<Codec>opus</Codec>
<Bitrate>128000</Bitrate>
<Samplerate>48000</Samplerate>
<Channel>2</Channel>
</Audio>
<Video>
<Name>video_1280</Name>
<Codec>h264</Codec>
<Bitrate>5024000</Bitrate>
<Framerate>30</Framerate>
<Width>1920</Width>
<Height>1280</Height>
<Preset>faster</Preset>
</Video>
<Video>
<Name>video_720</Name>
<Codec>h264</Codec>
<Bitrate>2024000</Bitrate>
<Framerate>30</Framerate>
<Width>1280</Width>
<Height>720</Height>
<Preset>faster</Preset>
</Video>
</Encodes>
</OutputProfile>
```

## Supported codecs by streaming protocol

Even if you set up multiple codecs, there is a codec that matches each streaming protocol supported by OME, so it can automatically select and stream codecs that match the protocol. However, if you don't set a codec that matches the streaming protocol you want to use, it won't be streamed.

The following is a list of codecs that match each streaming protocol:

| Protocol | Supported Codec |
| -------- | ---------------- |
| WebRTC | VP8, H.264, Opus |
| LLHLS | H.264, AAC |
| Protocol | Supported Codec |
| --------------------- | ---------------- |
| WebRTC | VP8, H.264, Opus |
| HLS | H.264, AAC |
| Low-Latency MPEG-Dash | H.264, AAC |

Therefore, you set it up as shown in the table. If you want to stream using LLHLS, you need to set up H.264 and AAC, and if you want to stream using WebRTC, you need to set up Opus.
Therefore, you set it up as shown in the table. If you want to stream using HLS or MPEG-DASH, you need to set up H.264 and AAC, and if you want to stream using WebRTC, you need to set up Opus.

Also, if you are going to use WebRTC on all platforms, you need to configure both VP8 and H.264. This is because different codecs are supported for each browser, for example, VP8 only, H264 only, or both.

Expand Down

0 comments on commit d922b8d

Please sign in to comment.