와우자 스트리밍 엔진의 RTMP PUSH 라이브 스트림 멀티 플랫폼 동시 송출 설정 방법

Last modified date

Wowza Streaming Engine의 라이브 방송 스트림 RTMP PUSH 송출 방법과, 하나의 소스를 동시에 복수의 여러 멀티 플랫폼으로 다중 전송하기 위해 Stream Target 항목을 설정하는 방법을 안내합니다.

RTMP PUSH 방식과 멀티 플랫폼 송출의 필요성

RTMP PUSH

어도비(Adobe)에서 개발한 RTMP(Real-Time Messaging Protocol)는 본래, 플래시 서버와 클라이언트 간 데이터 통신을 위해 만들어졌다. 하지만 오랜 시간 사용되며 편리성과 높은 호환성으로 인해 현재는 라이브 스트리밍 분야의 데 팍토(De facto, 사실상의 표준) 프로토콜로 사용되고 있다.

영상 플랫폼들(유튜브, 틱톡, SOOP 등) 역시 라이브 스트리밍을 위해 RTMP 프로토콜을 지원하고 있다. 사용자들은 각 플랫폼에서 제공하는 인제스트(Ingest, 입수:스트리밍 수신) 주소를 향해 스트림을 밀어주는 방식, 즉 RTMP PUSH 방식으로 라이브 스트림을 연동하게 된다.

라이브 스트리밍 방송과 멀티 플랫폼

여러 시장 분석기관의 리포트가 아니더라도, 라이브 스트리밍 방송의 수익은 최대한 많은 플랫폼을 통해 많은 수의 시청자를 확보할수록 증가한다는 것은 이미 잘 알려진 사실이다. 통계에 따르면, 동영상 플랫폼의 수는 점점 증가하고 있으며, 하나의 라이브 방송 스트림을 동시에 멀티 플랫폼으로 다중 송출하고 싶어하는 수요는 자연스럽게 점점 더 많아지고 있다.

문제는, 대부분의 인코더들(하드웨어나 OBS 같은 소프트웨어 라이브 인코더를 막론하고)은 기본적으로 1개, 많아야 2개 정도의 RTMP 타겟만 지원한다는 것이다. 이를 극복하기 위한 여러 방법들이 있지만, 보통 복잡한 설정 또는 추가적인 설비가 필요한 경우가 많다.

하지만 와우자 스트리밍 엔진(Wowza Streaming Engine, 이하 와우자 엔진)은 매우 손쉽게 복수의 멀티 플랫폼으로 동시 송출할 수 있는 기능을 기본으로 제공한다. 그냥 주소를 입력해 주는 것만으로 RTMP 타겟의 수를 마음껏 사용할 수 있다.

이 글에서는 와우자 엔진을 통해 입력받은 스트림을 RTMP PUSH 타겟과 연동하는 방법과, 더 나아가 복수의 멀티 플랫폼을 타겟으로 동시에 다중 전송하도록 설정하는 방법을 알아본다.

RTMP PUSH 설정

RTMP 주소의 구성

먼저, RTMP 주소가 어떻게 구성되어 있는지 이해해야 와우자 엔진의 설정이 가능하다. 대부분의 RTMP 타겟 주소는 아래와 같은 형식으로 제공되며, 각 부분이 의미하는 것은 아래와 같다.

RTMP 주소의 예) rtmp://demo.decteng.com/live/LiveFiller1

rtmp://
rtmp 프로토콜 프리픽스
demo.decteng.com
타겟의 호스트 주소
live
타겟 호스트의 어플리케이션 이름
LiveFiller1
연동될 타겟 어플리케이션에서 사용할 스트림 이름

설정 순서

  1. 송출하고자 하는 소스 스트림을 수신하고 있는 어플리케이션을 선택하고, 좌측 메뉴에서 Stream Targets를 선택한다.
  2. Not Enabled로 표시되어 있을 경우, Enable Stream Target를 눌러 기능을 활성화 해준다.
    Wowza Streaming Engine Manager: FileToLive > Stream Targets. Configure delivery of live source streams to stream target destinations for redistribution. Existing stream targets are not active until this feature is enabled. Status: Not Enabled. Buttons: + Add Stream Target, Enable Stream Targets. Table with columns: Stream Target, Status, Actions. Text below table: There are no stream targets. Click Add Stream Target to create a new target.
    스트림 타겟 활성화
  3. 팝업 창에서 OK버튼을 클릭해 준다.
    Stream Targets feature activation confirmation pop-up. Includes a warning that active stream data will be sent to target destinations upon activation.
    스트림 타겟 활성화 확인
  4. Restart Now버튼을 클릭해 어플리케이션을 재시작한다.
    Notification message in Wowza Streaming Engine indicating that Stream Targets has been enabled and the application must be restarted for changes to take effect, with a 'Restart Now' button.
    스트림 타겟을 활성화 하면 재시작이 필요하다
  5. Add Stream Target버튼을 클릭해 새로운 타겟을 추가한다.
  6. Generic Target Destinations에서 RTMP를 선택한다.
    Wowza Streaming Engine stream target selection screen showing categories of target destinations: Wowza targets (Streaming Engine, Video Transcoder, Video), third-party targets (Akamai, Alibaba, Facebook Live, Limelight, Tata Communications, YouTube Live), and generic targets (Icecast2, MPEG-TS, RTMP, RTP, Shoutcast, SRT).
    와우자 스트리밍 엔진이 지원하는 타겟 유형 목록
  7. RTMP Configuration의 속성들을 채워준다. (위의 예시로 든 RTMP 주소를 사용 했다.)
    Wowza Streaming Engine RTMP Configuration screen showing input fields filled with values like '타겟1' for Stream Target Name, 'Filler' for Source Stream Name, and 'demo.decteng.com' as the Destination Host.
    Stream Target Name
    타겟을 구분하기 위한 이름
    실제 연동에 사용되지 않음
    Source Stream Name
    송출할 소스 스트림 네임
    Incoming Streams에 표시된 그대로 적어주면 된다
    Application Name
    live
    연동될 타겟의 어플리케이션 이름
    Destination Host
    demo.decteng.com
    타겟의 호스트 주소
    프리픽스와 포트번호는 제외하고 입력
    Destination Port
    1935
    필요시 제공된 포트 번호를 입력해 준다.
    Destination Stream Name
    LiveFiller1
    연동될 타겟에 제공되는 스트림 이름
    User Name / Password
    사용자 인증이 필요할 경우 입력
  8. Add This Target를 눌러 등록을 완료하고, Return to Stream Targets를 클릭해 스트림 타겟 목록으로 돌아간다.
  9. 타겟 항목이 초록색으로 표시가 되어 있으면 연동이 완료된 상태이다.
    Wowza Streaming Engine interface showing Stream Target 1 added, indicated with green status icons.
    정상적으로 타겟과 연동된 모습

RTMP PUSH 멀티 플랫폼 설정

멀티 플랫폼 설정이라는, 다소 거창한 제목을 붙여놓긴 했지만, 와우자 엔진에서 스트림 타겟을 하나 더 추가하는 것은 매우 간단한 작업이다. 위에 설명한 RTMP PUSH 설정 절차를 동일하게 반복하며 원하는 만큼 타겟을 추가해주기만 하면 된다.

Wowza Streaming Engine interface showing Stream Target 1 and 2 added, both indicated with green status icons.
두개의 타겟이 활성화된 모습

이러한 구성은 소스 스트림을 복제해서 여러 타겟으로 전송하는 구조이다. 즉, 와우자 엔진은 스트림을 트랜스코딩하거나 변환하지 않고 단순히 복사 및 전송만 수행하기 때문에, CPU 사용률이나 서버 부하의 증가가 거의 없이 다중 전송이 가능하다. 즉, 회선이 감당할 수 있는 범위 내에서, 얼마든지 타겟의 수를 추가할 수 있다는 의미이다.

본 필자의 경우 H.264 25Mbps 24시간 365일 라이브 스트림을 4곳의 플랫폼에 동시 송출하면서도 서버 자원 소모는 거의 증가하지 않았고, 문제 역시 발생하지 않았다. 네트워크 회선만 충분하다면, 이처럼 손쉽게 안정적인 멀티 플랫폼 송출 구성이 가능하다

마무리

점점 더 다양해지는 플랫폼 환경에서, 콘텐츠를 최대한 다양한 플랫폼에 노출시켜 시청자를 확보하는 것은 선택이 아닌 필수가 되어가고 있다. 와우자 엔진은 이러한 기술적 요구를 매우 손쉽게 해결할 수 있는 유용한 도구가 되어준다. (사실, 애초부터 이런일 하라고 나온 소프트웨어가 와우자 엔진 이다.)

특히, 별도의 트랜스코딩 없이 서버의 부하를 최소화하면서 멀티 플랫폼 송출이 가능하다는 점은, 기술적 기반이 부족한 라이브 스트리밍 운영자에게 매우 유용할 것이라 본 필자는 생각한다.

Since 2005, He has generated new value by converging traditional broadcasting technology and ICT. From Headend and Frontend to the Last Mile device, He possesses a comprehensive understanding and experience of the entire broadcast system.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Post comment