# Publish Overview

OvenMediaEngine Enterprise’s most important core operation is to <mark style="color:yellow;">receive Media Sources</mark> (Ingest/Input/Ingress) and <mark style="color:yellow;">deliver the generated Streams with sub-second latency</mark> (Deliver/Output/Egress). To help you run Publish Streams more easily and reliably, OvenMediaEngine Enterprise provides a set of convenience features that you can use based on your service requirements and operating environment.

## Managed Stream and Instant Stream <a href="#managed-stream-and-instant-stream" id="managed-stream-and-instant-stream"></a>

<figure><img src="https://content.gitbook.com/content/xo7moYXTh3yBG01Dy49w/blobs/6qhYSf9Mbxo5S2dyoFmL/image.png" alt=""><figcaption></figcaption></figure>

### Managed Stream Overview <a href="#managed-stream-overview" id="managed-stream-overview"></a>

* A Managed Stream is a <mark style="color:yellow;">persistent stream entry</mark> that you create by pre-registering a <mark style="color:yellow;">\[Stream Name]</mark> in OvenMediaEngine Enterprise. A Managed Stream remains in the Stream List until you delete it.

#### Why is Managed Stream needed? <a href="#why-is-managed-stream-needed" id="why-is-managed-stream-needed"></a>

* In traditional Broadcasting and Studio environments, it is common to standardize recurring stream names (for example, `studio_cam_01`, `studio_cam_02`, `program_main`, `backup_main`, etc.) and continuously monitor/track their publishing status. In some cases, only Streams with approved names are allowed for security reasons. In these scenarios, using Managed Streams helps you meet operational requirements and reduce human errors by keeping the Stream List organized.
* In Enterprise environments where access control and permission policies must clearly define what can be ingested, the system may be configured to <mark style="color:yellow;">accept only predefined streams</mark>. Also, when external systems such as Players are configured to <mark style="color:yellow;">connect based on a specific Stream Name</mark>, Managed Streams become the operational baseline that helps prevent mistakes.

{% hint style="success" %}
For more details and advanced options, please refer to the [Managed and Instant Streams](https://ovenmediaengine-enterprise.gitbook.io/guide/exclusive/web-console/web-console-overview/stream-list/managed-and-instant-streams) guide.
{% endhint %}

### Instant Stream Overview <a href="#instant-stream-overview" id="instant-stream-overview"></a>

* An Instant Stream is a feature that <mark style="color:yellow;">automatically detects streams</mark> that are not pre-registered as Managed Streams when they are published to OvenMediaEngine Enterprise, classifies them as Instant Streams, and displays them in the Stream List. When publishing stops, the Instant Stream is automatically removed from the Stream List.

#### Why is Instant Stream needed? <a href="#why-is-instant-stream-needed" id="why-is-instant-stream-needed"></a>

* In field operations where streams frequently appear and disappear (test publishing, live events, adding temporary on-site cameras, etc.), registering every stream manually is inconvenient. OvenMediaEngine Enterprise automatically detects incoming media sources so you can start monitoring immediately, and it automatically cleans up entries when streams end, supporting a <mark style="color:yellow;">more flexible operational workflow</mark>.

{% hint style="success" %}
For more details and advanced options, please refer to the [Managed and Instant Streams](https://ovenmediaengine-enterprise.gitbook.io/guide/exclusive/web-console/web-console-overview/stream-list/managed-and-instant-streams) guide.
{% endhint %}

## RTSP Pull Stream <a href="#rtsp-pull-stream" id="rtsp-pull-stream"></a>

<figure><img src="https://content.gitbook.com/content/xo7moYXTh3yBG01Dy49w/blobs/VnDoBFi2bKo0HEgcSyjK/image.png" alt=""><figcaption></figcaption></figure>

### RTSP Pull Stream Overview

* RTSP Pull Stream allows OvenMediaEngine Enterprise to <mark style="color:yellow;">connect directly to an external RTSP URL</mark> (for example, CCTV, IP Camera, NVR, etc.), <mark style="color:yellow;">pull the media source</mark>, and convert it into a service-ready Stream.  &#x20;You can create Streams through RTSP pulling alone, without a dedicated publishing Encoder or Gateway. The created Stream can then be re-delivered via the Protocols you need, such as WebRTC, LLHLS, HLS, and SRT, and connected to your service immediately.

#### Why is RTSP Pull Stream needed? <a href="#why-is-rtsp-pull-stream-needed" id="why-is-rtsp-pull-stream-needed"></a>

* In environments where you need to convert RTSP Sources (CCTV, IP cameras, NVRs, etc.) into sub-second streaming for playback on web or mobile players, or where you must operate and monitor many channels, RTSP Pull helps you build a centrally managed live streaming pipeline with minimal effort, <mark style="color:yellow;">without changing devices or installing additional programs on-site</mark>.

{% hint style="success" %}
For usage instructions, please refer to the [Publish via RTSP Pull (CCTV)](https://ovenmediaengine-enterprise.gitbook.io/guide/exclusive/aws-marketplace/publish-streams/publish-via-rtsp-pull-cctv) guide.
{% endhint %}

## Scheduled Channel <a href="#scheduled-channel" id="scheduled-channel"></a>

<figure><img src="https://content.gitbook.com/content/xo7moYXTh3yBG01Dy49w/blobs/Pxe0JDcYlKXSbQC439R6/image.png" alt=""><figcaption></figcaption></figure>

### Scheduled Channel Overview <a href="#scheduled-channel-overview" id="scheduled-channel-overview"></a>

* Scheduled Channel lets you <mark style="color:yellow;">schedule and publish</mark> Media Files and/or Live inputs. If Live input is interrupted for any reason, the built-in Failover automatically switches to a fallback input. When the Live input resumes, it switches back to Live immediately, providing an uninterrupted streaming experience.

#### Why is Scheduled Channel needed? <a href="#why-is-scheduled-channel-needed" id="why-is-scheduled-channel-needed"></a>

* Operational scenarios such as **24/7 channel operation**, on-the-hour programming, and inserting ads, highlights, or announcements require timetable-based scheduling. With Scheduled Channel, the <mark style="color:yellow;">System automatically publishes and switches</mark> streams according to the defined schedule. Even if Live equipment issues occur, it automatically fails over to keep the Stream running without interruption.

### Scheduled Channel Menu Overview <a href="#scheduled-channel-menu-overview" id="scheduled-channel-menu-overview"></a>

* As shown in the image, you can create a Scheduled Channel in the Web Console.
  * <mark style="color:yellow;">**Name**</mark>: The basic name required to create the Scheduled Channel.
  * <mark style="color:yellow;">**Video track**</mark>: Determines whether the Scheduled Channel uses a Video track. If Video track is set to `true` but the item has no Video track, an error occurs.
  * <mark style="color:yellow;">**Audio track**</mark>: Determines whether the Scheduled Channel uses an Audio track. If Audio track is set to `true` but the item has no Audio track, an error occurs.
  * <mark style="color:yellow;">**Bypass transcoder**</mark>**:** If you want to publish the Media Source without transcoding, set this to `true` to enable bypass.
* By configuring a Fallback Program, the system automatically switches to a fallback input when there is no scheduled program for the current time or when an item error occurs. If the Program is updated or the streaming returns to normal, it switches back to the original Program.
  * <mark style="color:yellow;">**URL**</mark>: The location (URL) of the fallback Media Source.
  * <mark style="color:yellow;">**Start**</mark>: The start time (in milliseconds) for where playback begins within the fallback Media Source file.
  * <mark style="color:yellow;">**Duration**</mark>: The playback duration (in milliseconds) of the fallback Media Source file.
* You can schedule playback by setting start and end times in the `ISO8601` format.
  * <mark style="color:yellow;">**Name**</mark>: Optional reference name for the Program. If not set, a name is assigned automatically.
  * <mark style="color:yellow;">Scheduled</mark>: Sets the Program start time.
  * <mark style="color:yellow;">**Repeat**</mark>: Determines whether the Program repeats after it finishes.
  * <mark style="color:yellow;">**URL**</mark>: The location (URL) of the Media Source.
    * If the URL starts with `file://`, it references a file under the `MediaRootDir` directory.
    * If the URL starts with `stream://`, it references another Stream within the same OvenMediaEngine instance.
  * <mark style="color:yellow;">**Start**</mark>: Sets the start time (in milliseconds) for where playback begins within the Media Source file. If not set, the default is `0`.
  * <mark style="color:yellow;">**Duration**</mark>: Sets the playback duration (in milliseconds) of the Media Source. When the specified Duration ends, the next item in the Program is played. If Duration is not set, it uses the Media Source’s full playback time.

{% hint style="success" %}
For more details and advanced options, please refer to the [Scheduled Channels](https://ovenmediaengine-enterprise.gitbook.io/guide/exclusive/web-console/web-console-overview/stream-list/scheduled-channels) guide.
{% endhint %}

## Multiplex Channel <a href="#multiplex-channel" id="multiplex-channel"></a>

<figure><img src="https://content.gitbook.com/content/xo7moYXTh3yBG01Dy49w/blobs/iG26gVE9BvBAMvtB0CAZ/image.png" alt=""><figcaption></figcaption></figure>

### Multiplex Channel Overview <a href="#multiplex-channel-overview" id="multiplex-channel-overview"></a>

* Multiplex Channel can <mark style="color:yellow;">combine multiple input streams into one</mark> to build <mark style="color:yellow;">ABR</mark>, or <mark style="color:yellow;">duplicate an external stream</mark> and <mark style="color:yellow;">forward it to another</mark> <mark style="color:yellow;"></mark><mark style="color:yellow;">`App`</mark>. It can also reuse already-encoded tracks from another local stream and build them as its own Tracks, which can be useful when you need to change the Codec or retune quality.

#### Why is Multiplex Channel needed? <a href="#why-is-multiplex-channel-needed" id="why-is-multiplex-channel-needed"></a>

* In Production environments, inputs often increase (Multi Camera/Multi Source), and service requirements may require consolidating multiple sources (ABR composition or Multi View). With Multiplex Channel, you can flexibly restructure or replicate Streams for re-delivery, and you can reuse existing Tracks when appropriate to <mark style="color:yellow;">reduce unnecessary re-encoding</mark> overhead while <mark style="color:yellow;">scaling your pipeline</mark>.

### Multiplex Channel Menu Overview <a href="#multiplex-channel-menu-overview" id="multiplex-channel-menu-overview"></a>

* As shown in the image, you can create a Multiplex Channel in the Web Console.
  * <mark style="color:yellow;">**Name**</mark>: The name of the new Multiplex Channel.
* Multiplex Channel multiplexes multiple Source Streams. A Source Stream can also be loaded as a Stream from a different `Vhost` or `App`.
  * <mark style="color:yellow;">**Name**</mark>: The name of the Source Stream to multiplex.
  * <mark style="color:yellow;">**URL**</mark>: The location (URL) of the Source Stream.
  * <mark style="color:yellow;">**Source Track Name**</mark>: The Source Track name is either `<OutputProfile><Encodes><VideoName>` or `<OutputProfile><Encodes><AudioName>` of the Source Stream.
  * <mark style="color:yellow;">**New Track Name**</mark>: Because multiple Streams are merged into a single Stream, Track names may collide. This is the Track name remapped for use inside the Multiplex Channel.
* A Playlist configured in a Multiplex Channel exists only within that Multiplex Channel. The Playlist must be built using the newly mapped Track names in `<SourceStreams>`’s `<TrackMap>`, and it must follow the same structure as `<OutputProfile>`.
  * <mark style="color:yellow;">**WebRTC Auto ABR**</mark>: Set to `true` by default. When using WebRTC, it automatically switches renditions.
  * <mark style="color:yellow;">**Enable Ts Packaging**</mark>: If `<EnableTsPackaging>` is enabled in the Playlist, the HLS Publisher packages TS files using that Playlist and prepares them for streaming.
  * <mark style="color:yellow;">**audio**</mark>: The remapped Track name set on the Source Stream, used as the Audio Track name in the Playlist.
  * <mark style="color:yellow;">**video**</mark>: The remapped Track name set on the Source Stream, used as the Video Track name in the Playlist.

{% hint style="success" %}
For more details and advanced options, please refer to the [Multiplex Channels](https://ovenmediaengine-enterprise.gitbook.io/guide/exclusive/web-console/web-console-overview/stream-list/multiplex-channels) guide.
{% endhint %}
