# Publish Overview

OvenMediaEngine Enterprise의 가장 중요한 기본 동작은 <mark style="color:yellow;">Media Source를 수신</mark> (Ingest/Input/Ingress)하고, 생성된 Stream을 <mark style="color:yellow;">초저지연으로 송출</mark> (Deliver/Output/Egress)하는 것입니다. 따라서 OvenMediaEngine Enterprise는 Publish Streams를 보다 쉽고 안정적으로 수행할 수 있도록 다양한 편의 기능을 제공하며, 사용자는서비스 요구사항과 운영 환경에 맞게 이용할 수 있습니다.

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

<figure><img src="/files/kw1koug2KAbfk2AFE9y0" alt=""><figcaption></figcaption></figure>

### Managed Stream 기능 소개 <a href="#managed-stream-overview" id="managed-stream-overview"></a>

* Managed Stream은 사용자가 OvenMediaEngine Enterprise에 <mark style="color:yellow;">\[Stream Name]</mark>을 사전에 등록하여 관리하는 <mark style="color:yellow;">고정형 Stream 항목</mark>입니다. 생성한 Managed Stream은 사용자가 삭제하기 전까지 Stream List에 유지됩니다.

#### 왜 필요한가요? <a href="#why-is-managed-stream-needed" id="why-is-managed-stream-needed"></a>

* 전통적인 Broadcasting 및 Studio 운영 환경에서 <mark style="color:yellow;">반복적으로 송출되는 고정 소스</mark>의 Stream Name을 표준화 (예: `studio_cam_01`, `studio_cam_02`, `program_main`, `backup_main`, `...`)하여 운영하는 경우가 많습니다. 이처럼, Stream List가 고정되면 운영자가 송출 여부와 상태를 지속적으로 Monitoring/Tracking하기 쉽고, 알림 기준이나 운영 매뉴얼도 일관되게 유지할 수 있습니다.
* Enterprise 운영 환경에서 접근 제어/권한 정책과 연계하여 관리 대상을 명확히 해야 하는 경우, System은 <mark style="color:yellow;">사전에 정의된 Stream만 수신</mark>할 수 있고, Player 등 외부 시스템이 <mark style="color:yellow;">특정 Stream Name을 기준으로 연결</mark>되도록 설정된 경우, Managed Stream은 관리 대상의 기준점이 되어 운영 실수를 줄여줍니다.

{% hint style="success" %}
자세한 내용 및 세부 기능은 [Managed and Instant Streams](/guide/ko-kr/exclusive/web-console/web-console-overview/stream-list/managed-and-instant-streams.md) 가이드를 참고해주십시오.
{% endhint %}

### Instant Stream 기능소개 <a href="#instant-stream-overview" id="instant-stream-overview"></a>

* Instant Stream은 Managed Stream으로 사전 등록되지 않은 Stream이 OvenMediaEngine Enterprise로 전송될 때, 이를 <mark style="color:yellow;">자동으로 감지</mark>하여 Instant Stream으로 분류하고 Stream List에 표시하는 기능입니다. 해당 Stream의 송출이 중단되면 Stream List에서 자동으로 삭제됩니다.

#### 왜 필요한가요? <a href="#why-is-instant-stream-needed" id="why-is-instant-stream-needed"></a>

* 테스트 송출, 라이브 이벤트, 현장 카메라 추가 등 Stream이 수시로 생겼다 사라지는 현장에서 매번 Stream을 System에 등록하는 것은 매우 번거롭습니다. OvenMediaEngine Enterprise는 Media Source가 들어오는 대로 자동 감지하여 즉시 Monitoring할 수 있게 해주고, Stream이 종료되면 자동으로 정리하여 임시 Stream 운영이 많은 환경에서도 관리 부담을 줄일 수 있고, 나아가 <mark style="color:yellow;">유연한 운영 프로세스 구축</mark> 환경을 제공합니다.

{% hint style="success" %}
자세한 내용 및 세부 기능은 [Managed and Instant Streams](/guide/ko-kr/exclusive/web-console/web-console-overview/stream-list/managed-and-instant-streams.md) 가이드를 참고해주십시오.
{% endhint %}

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

<figure><img src="/files/R9OHoOEhDEVWmTicyKwy" alt=""><figcaption></figcaption></figure>

### RTSP Pull Stream 기능 소개 <a href="#rtsp-pull-stream-overview" id="rtsp-pull-stream-overview"></a>

* RTSP Pull Stream은 OvenMediaEngine Enterprise가 <mark style="color:yellow;">외부 RTSP URL</mark> (예: CCTV, IP Camera, NVR 등)<mark style="color:yellow;">에 직접 접속하여 Media Soruce를 가져오고</mark>, 이를 서비스에서 사용할 수 있는 Stream으로 가공하는 기능입니다. 별도의 송출용 Encoder나 Gateway 없이도 RTSP Pulling만으로 Stream을 만들 수 있으며, 생성된 Stream은 WebRTC, LLHLS, HLS, SRT 등 필요한 Protocol로 재송출해 서비스에 바로 연결할 수 있습니다.

#### 왜 필요한가요? <a href="#why-is-rtsp-pull-stream-needed" id="why-is-rtsp-pull-stream-needed"></a>

* CCTV, IP Camera, NVR 등 현장 장비의 RTSP Source를 초저지연 Streaming으로 변환하여 웹/모바일 플레이어에서 재생하거나, 다수 채널을 운영하며 상황을 관제해야 하는 환경에서 OvenMediaEngine Enteprise의 RTSP Pull 기능을 이용하면, <mark style="color:yellow;">장비 변경 또는 프로그램 추가 설치 없이</mark> 중앙에서 관리할 수 있는 Live Streaming 파이프라인을 손쉽게 구축할 수 있습니다.

{% hint style="success" %}
기능 사용법은 [Publish via RTSP Pull (CCTV)](/guide/ko-kr/exclusive/aws-marketplace/publish-streams/publish-via-rtsp-pull-cctv.md) 가이드를 참고해주십시오.
{% endhint %}

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

<figure><img src="/files/VpaLFhzy2xmfRWVdSauO" alt=""><figcaption></figcaption></figure>

### Scheduled Channel 기능 소개 <a href="#scheduled-channel-overview" id="scheduled-channel-overview"></a>

* Scheduled Channel은 Media File 또는 Live를 <mark style="color:yellow;">편성하여 송출</mark>하는 기능입니다. 다양한 원인으로 Live가 중단되면 Failover 기능을 통해 자동으로 대체 입력으로 전환하고, 다시 Live가 재개되면 즉시 Live로 전환하여 중단없는 Streaming 경험을 제공합니다.

#### 왜 필요한가요? <a href="#why-is-scheduled-channel-needed" id="why-is-scheduled-channel-needed"></a>

* 24/7 채널 운영, 정시 편성, 광고/하이라이트/공지 삽입 같은 운영에는 Timetable 기반 편성 송출이 필수입니다. Scheduled Channel을 사용하면 사람이 아닌 <mark style="color:yellow;">System이 일정에 맞춰 Stream을 자동으로 송출 및 전환</mark>하며, Live 장애 시에도 자동으로 Failover되어중단 없는 Streaming을 유지할 수 있습니다.

### Scheduled Channel  메뉴 소개 <a href="#scheduled-channel-menu-overview" id="scheduled-channel-menu-overview"></a>

* 위 이미지와 같이 Web Console에서 사용자는 Scheduled Channel을 생성할 수 있습니다.
  * <mark style="color:yellow;">**Name**</mark>: Scheduled Channel을 생성하는데 필요한 기본적인 이름 정보입니다.
  * <mark style="color:yellow;">**Video track**</mark>: Scheduled Channel에서 Video 트랙을 사용할지 여부를 결정합니다. Video 트랙이 `true`로 설정되어 있고 항목에 Video 트랙이 없으면 오류가 발생합니다.
  * <mark style="color:yellow;">**Audio track**</mark>: Scheduled Channel에서 Audio 트랙을 사용할지 여부를 결정합니다. Audio 트랙이 `true`로 설정되어 있고 항목에 Audio 트랙이 없으면 오류가 발생합니다.
  * <mark style="color:yellow;">**Bypass transcoder**</mark>: Media Source를 트랜스코딩하지 않고 그대로 송출하고자 한다면 `true`로 설정하여 Bypass를 사용할 수 있습니다.
* Fallback Program을 설정하여, 현재 시간에 예약된 프로그램이 없거나 항목에 오류가 발생하면 자동으로 대체입력 화면으로 전환됩니다. Program이 업데이트 되거나 스트리밍이 정상으로 돌아오면 원래 Program으로 돌아갑니다.
  * <mark style="color:yellow;">**URL**</mark>: Fallback할 Media Source의 위치 (URL)입니다.
  * <mark style="color:yellow;">**Start**</mark>: Fallback할 Media Source File이 어디부터 재생될지 시간을 지정할 수 있으며, 밀리초 단위로 설정할 수 있습니다.
  * <mark style="color:yellow;">**Duration**</mark>: Media Source File의 재생시간을 지정할 수 있으며, 밀리초 단위로 설정할 수 있습니다.
* Program에 사용자는 `ISO8601` 형식으로 시작 및 종료 시간을 설정하여 재생할 스트리밍을 편성할 수 있습니다.
  * <mark style="color:yellow;">**Name**</mark>: Program의 이름은 선택적 참조 값이며, 설정하지 않으면 임의의 이름이 지정됩니다.
  * <mark style="color:yellow;">**Scheduled**</mark>: Program의 시작 시간을 설정합니다.
  * <mark style="color:yellow;">**Repeat**</mark>: Program의 재생이 끝나면, 해당 Program을 반복할지 여부를 설정합니다.
  * <mark style="color:yellow;">**URL**</mark>: Media Source의 위치 (URL)입니다.
    * URL이 `file://`로 시작하면 `MediaRootDir` 디렉토리 내 File을 참조합니다.
    * URL이 `stream://`로 시작하면 같은 OvenMediaEngine 내의 다른 Stream을 참조합니다.
  * <mark style="color:yellow;">**Start**</mark>: Media Source File이 어디부터 재생될지 시간을 지정할 수 있으며, 밀리초 단위로 설정할 수 있습니다. 설정하지 않으면 기본적으로 0초부터 재생합니다.
  * <mark style="color:yellow;">**Duration**</mark>: Media Source의 재생시간을 지정할 수 있으며, 밀리초 단위로 설정할 수 있습니다. 지정한 Duration이 끝나면, Program 내 다음 항목을 재생합니다. Duration을 설정하지 않은 경우, Media Source의 재생 시간으로 설정됩니다.

{% hint style="success" %}
자세한 내용 및 세부 기능은 [Scheduled Channels](/guide/ko-kr/exclusive/web-console/web-console-overview/stream-list/scheduled-channels.md) 가이드를 참고해주십시오.
{% endhint %}

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

<figure><img src="/files/r6vfH5HIRmOufmCwLAoH" alt=""><figcaption></figcaption></figure>

### Multiplex Channel 기능 소개 <a href="#multiplex-channel-overview" id="multiplex-channel-overview"></a>

* Multiplex Channel은 입력된 <mark style="color:yellow;">여러 Stream을 하나로 결합</mark>하여 <mark style="color:yellow;">ABR을 구성</mark>하거나, <mark style="color:yellow;">외부 Stream을 복제</mark>해 <mark style="color:yellow;">다른</mark> <mark style="color:yellow;"></mark><mark style="color:yellow;">`App`</mark><mark style="color:yellow;">으로 전달</mark>하는 데 사용할 수 있습니다. 또한 다른 Local Stream에서 이미 인코딩된 Track을 가져와 자체 Track으로 구성할 수 있어, Codec 변경 또는 품질 재조정이 필요한 경우에도 유용합니다.

#### 왜 필요한가요? <a href="#why-is-multiplex-channel-needed" id="why-is-multiplex-channel-needed"></a>

* Production 운영 환경에서는 입력이 여러 개로 늘어나거나 (Multi Camera/Multi Source), 서비스 요구사항에 따라 Multi Soruce를 하나로 통합 (ABR 구성/Multi View)해야 하는 경우가 있습니다. Multiplex Channel을 사용하면 Stream을 재구성하거나 복제해 재전송하는 작업을 유연하게 처리할 수 있고, 필요에 따라 기존 Track을 재활용하여 <mark style="color:yellow;">불필요한 재인코딩 부담을 줄이면서 파이프라인을 확장</mark>할 수 있습니다.

### Multiplex Channel 메뉴 소개 <a href="#multiplex-channel-menu-overview" id="multiplex-channel-menu-overview"></a>

* 위 이미지와 같이 Web Console에서 사용자는 Multiplex Channel을 생성할 수 있습니다.
  * <mark style="color:yellow;">**Name**</mark>: 새로 생성할 Multiplex Channel의 이름입니다.
* Multiplex Channel은 여러 개의 Source Stream을 Multiplexing합니다. 해당 Source Stream은 다른 `Vhost` 또는 `App`에서 Stream 형식으로 로드할 수도 있습니다.
  * <mark style="color:yellow;">**Name**</mark>: Multiplexing할 Source Stream의 이름입니다.
  * <mark style="color:yellow;">**URL**</mark>: Source Stream의 위치 (URL)입니다.
  * <mark style="color:yellow;">**Source Track Name**</mark>: Source Track 이름은 해당 Source Stream의 `<OutputProfile><Encodes><VideoName>` 또는 `<OutputProfile><Encodes><AudioName>`입니다.
  * <mark style="color:yellow;">**New Track Name**</mark>: 여러 Stream이 하나의 Stream으로 결합되므로 Track 이름이 중복될 수 있습니다. 따라서, 해당 Multiplex Channel에서 사용하기 위해 변경한 Track 이름입니다.
* Multipelx Channel에 구성된 Playlist는 해당 Multipelx Channel에만 존재합니다. Playlist는 `<SourceStreams>`의 `<TrackMap>`에서 새로 매핑된 Track 이름을 사용하여 구성해야 하며, `<OutputProfile>`과 동일한 형식을 사용해야 합니다.
  * <mark style="color:yellow;">**WebRTC Auto ABR**</mark>: 기본적으로 `true`로 설정되어 있으며, WebRTC를 사용할 때 Rendition을 자동으로 전환합니다.
  * <mark style="color:yellow;">**Enable Ts Packaging**</mark>: Playlist에서 `<EnableTsPackaging>`이 켜져 있으면, HLS Publisher가 해당 Playlist를 사용하여 TS 파일을 패키징하고 스트리밍할 준비를 합니다.
  * <mark style="color:yellow;">**audio**</mark>: Source Stream에 설정된 새로운 Track 이름이며, Playlist에서 Audio Track 이름으로 사용됩니다.
  * <mark style="color:yellow;">**video**</mark>: Source Stream에 설정된 새로운 Track 이름이며, Playlist에서 Video Track 이름으로 사용됩니다.

{% hint style="success" %}
자세한 내용 및 세부 기능은 [Multiplex Channels](/guide/ko-kr/exclusive/web-console/web-console-overview/stream-list/multiplex-channels.md) 가이드를 참고해주십시오.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ovenmediaengine-enterprise.gitbook.io/guide/ko-kr/exclusive/aws-marketplace/publish-streams/publish-overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
