RTMP

RTMP는 라이브 스트리밍에서 가장 널리 사용되는 프로토콜 중 하나입니다.

Item
Description

Container

FLV

Transport

TCP

Codec

H.264, AAC / H.265 (E-RTMP only)

Configuration

<Providers>는 미디어 소스로부터 들어오는 스트림을 수신합니다. OvenMediaEngine은 RTMP 프로토콜을 지원하며, 다음과 같이 설정할 수 있습니다:

Bind

<!-- /Server/Bind/Providers -->
<Providers>
    ...
    <RTMP>
        <Port>1935</Port>
        <WorkerCount>1</WorkerCount>
        <ThreadPerSocket>false</ThreadPerSocket>
    </RTMP>
    ...
</Providers>
Property
Description

Port

들어오는 RTMP 연결을 수신하는 TCP 포트 번호를 지정합니다.

WorkerCount

  • Default : 1

RTMP 소켓 처리를 위한 워커 스레드 수를 정의합니다. RTMP 세션 수가 증가하면 이 값을 늘려 트래픽을 보다 효율적으로 분산할 수 있습니다.

ThreadPerSocket

  • Default : false

각 소켓에 대해 전용 스레드를 사용할지 여부를 결정합니다. true로 설정하면 WorkerCount는 무시되며, 각 세션 연결 시마다 새로운 스레드가 생성되고 세션 종료 시 종료됩니다.

circle-exclamation

Application

RTMP 입력은 각 애플리케이션 단위로 활성화/비활성화할 수 있습니다. 아래 설정은 해당 애플리케이션에서 RTMP 입력 기능을 활성화합니다.

RTMP live stream

RTMP 기반 인코더를 사용하여 라이브 스트림을 구성하려면 Server.xml에서 다음 설정이 필요합니다:

  • <BlockDuplicateStreamName>은 중복된 스트림 입력에 대한 정책입니다.

<BlockDuplicateStreamName>은 다음 규칙으로 동작합니다.

Value
Description

true

Default 중복으로 입력된 새로운 스트림을 거부하고 기존 스트림을 유지합니다.

false

중복으로 입력된 새로운 스트림을 허용하고 기존 스트림을 종료합니다.

circle-info

중복 스트림 이름을 허용할 경우 여러 문제가 발생할 수 있습니다. 새로운 스트림이 입력되면 플레이어 연결이 끊어질 수 있습니다. 대부분의 인코더는 서버 연결이 끊어지면 자동 재연결 기능을 가지고 있기 때문에, 두 인코더가 서로 연결/해제를 반복하며 경쟁하게 되고 이는 재생에 심각한 문제를 초래할 수 있습니다.

Publish

소스 스트림을 퍼블리시하려면 인코더에서 다음과 같이 설정해야 합니다:

  • URL: rtmp://{OME Host}[:{RTMP Port}]/{App Name}

  • Stream Key: {Stream Name}

기본 설정을 사용하는 경우 {RTMP Port}는 기본값인 1935이므로 생략할 수 있습니다. 또한 기본 설정에서는 app이라는 Application이 생성되어 있으므로 {App Name}app을 사용할 수 있습니다. Stream Key는 자유롭게 정의할 수 있으며, 이에 따라 스트리밍 URL이 변경됩니다.

또한 일부 인코더는 URL에 Stream Key를 포함할 수 있으며, 이 경우 다음과 같이 설정해야 합니다:

  • URL: rtmp://{OME Host}[:{RTMP Port}]/{App Name}/{Stream Name}

Example with OvenLiveKit (OvenStreamEncoder)

기본 설정을 사용하는 경우, OvenStreamEncoder 우측 상단의 URL 버튼을 클릭한 후 아래와 같이 URL을 입력합니다:

또한 {App Name}{Stream Name}은 설정에 따라 원하는 값으로 변경하여 사용할 수 있습니다.

Example with OBS

기본 설정을 사용하는 경우 OBS를 다음과 같이 설정합니다:

Stream Key는 언제든지 원하는 이름으로 설정할 수 있습니다.

E-RTMP

Enhanced RTMP(E-RTMP)는 기존 RTMP 프로토콜의 기능을 확장한 실험적인 스트리밍 기능입니다. 주요 장점 중 하나는 기존 RTMP에서 지원하지 않는 H.265(HEVC)와 같은 최신 비디오 코덱을 지원한다는 점입니다. 이를 통해 더 높은 화질과 낮은 비트레이트를 동시에 달성할 수 있어 고효율 스트리밍 워크플로우에 적합합니다. 지원 코덱 목록은 향후 계속 확장될 예정입니다.

Title
Functions

Container

FLV

Transport

TCP

Codec

H.264, H.265, AAC

Additional Features

Simulcast, Multitrack

E-RTMP는 아직 실험 단계이므로 기본적으로 비활성화되어 있으며, 서버 설정에서 수동으로 활성화해야 합니다.

How to Enable E-RTMP

E-RTMP를 활성화하려면 Server.xml 설정 파일을 수정하여 다음 설정을 추가해야 합니다.

Publish with OBS

OBS에서 E-RTMP를 사용하여 스트리밍하려면, Output 설정의 Video Encoder에서 HEVC를 지원하는 인코더를 선택해야 합니다.

Last updated