와우자 스트리밍 엔진 트랜스코더는 템플릿에 정의된 프리셋을 이용해 출력 스트림을 생성한다. 스트림 이름별로 적용할 템플릿을 설정하는 방법과 기본 Fallback 템플릿에 대해 알아보고, 사용자 정의 템플릿을 설정하고 활성화하는 방법을 그림과 함께 설명한다.
와우자 스트리밍 엔진 트랜스코더의 템플릿
와우자 스트리밍 엔진(Wowza Streaming Engine, 이하 와우자)의 트랜스코더는 포맷을 정의하는 프리셋(Preset)과 적용할 프리셋을 정의하는 템플릿(Template)을 기반으로 동작한다.
기본적으로 와우자 트랜스코더는 어플리케이션 단위로 동작하며, 어플리케이션에서 수신하는 모든 입력 스트림에 Fallback Template으로 지정된 단일 템플릿을 적용시킨다.
보통의 경우, 단일 템플릿을 사용하는 것으로 충분하겠지만, 어플리케이션으로 들어오는 스트림별로 적용할 템플릿을 다르게 지정하고 싶은 경우, 사용자 템플릿을 생성해 입력되는 스트림별로 서로 다른 템플릿을 적용하게 할 수 있다.
본 글에서는 MD.stream과 MD82.stream이라는 두 입력 스트림이 모두 Fallback Template을 사용하는 상황에서, MD82.stream 스트림을 위한 별도의 템플릿을 생성해 적용하는 과정을 예시로 하여, 사용자 템플릿을 생성하고 각 스트림별로 별도의 템플릿을 적용하는 방법에 대해 설명한다.
와우자 트랜스코더의 사용자 템플릿 추가 및 적용 절차
와우자 트랜스코더를 사용하기 위해서는 우선 사용하려는 어플리케이션에 트랜스코더가 활성화되어 있어야 한다. 와우자 스트리밍 엔진 트랜스코더의 활성화 방법을 참고하여 트랜스코더를 활성화시킨다.
사용자 템플릿은 기존 템플릿을 복사하거나, 새로운 템플릿을 생성하는 방식으로 추가할 수 있다. 본 글에서는 템플릿과 프리셋을 처음부터 구성하는 과정을 살펴보기 위해 기존 템플릿을 복사하지 않고 새로운 사용자 템플릿을 생성한다.
- 와우자 웹 UI 접속
와우자 웹 UI에 접속한 후 사용자 템플릿을 적용할 어플리케이션을 선택하고 Transcoder 메뉴로 이동한다.

템플릿 관련 설정 상태 위의 그림은 XCODE라는 어플리케이션에서 트랜스코더 메뉴를 선택한 화면으로, Fallback Template가 Transrate (Default)로 설정되어 있으며, Match source stream name to template name이 활성화되어 있다. 즉, 입력 스트림과 이름이 같은 템플릿이 있으면 해당 템플릿을 우선 적용하고, 일치하는 템플릿이 없으면 Transrate (Default)를 적용하도록 구성된 상태이다.
또한, Transcoder Templates에 기본으로 생성된 4개의 템플릿이 존재함을 알 수 있다. (Default)가 표시된 이 4개의 템플릿은 삭제가 불가능한 템플릿들이다.
- Fallback 템플릿 동작 확인
아래는 좌측 메뉴에서
Incoming Streams를 선택해 확인한 스트림 목록이다.
동일한 템플릿이 적용된 모습 MD.stream과 MD82.stream이라는 두 개의 입력 스트림이 존재한다. 각 입력 스트림 아래에는 트랜스코딩을 거쳐 생성된 출력 스트림이 3개씩 추가되어 있으므로, 하나의 입력 스트림으로부터 세 가지 출력 스트림이 만들어지고 있음을 알 수 있다. 이는
Transrate (Default)템플릿에 기본 활성화된 3개의 프리셋을 통해 출력되는 스트림으로, 두 입력 스트림에 모두 동일한 템플릿이 적용되어 있음을 알 수 있다. - 트랜스코더 옵션 확인
다시 트랜스코더 메뉴로 돌아가, Match source stream name to template name에 녹색 체크 표시가 되어 있는지 확인한다. 그렇지 않을 경우 Edit 버튼을 클릭해 트랜스코더 설정 변경 창에 진입한다.

Match source stream name to template name 옵션과 Fallback Template 옵션 트랜스코더 설정 변경 창에서 Transcoder Options 옵션에 체크 표시를 해 준다. 이 옵션이 켜져 있을 경우 와우자 트랜스코더는, 입력되는 스트림 네임과 동일한 이름을 가진 트랜스코더 템플릿을 적용시켜 준다. 따라서 스트림마다 서로 다른 템플릿을 사용하려면 이 옵션이 반드시 활성화되어 있어야 한다. 만약 동일한 이름이 없을 경우에는 기본
Fallback Template이 적용된다. - 새로운 트랜스코더 템플릿 추가
새로운 사용자 템플릿을 생성하기 위해 트랜스코더 메뉴의 Transcoder Templates 항목 아래에 있는 + Add Template 버튼을 클릭한다.
- 트랜스코더 템플릿 이름 설정
Add Transcoder Template 창이 나타나면 Enter a name for the new transcoder template 항목에 트랜스코딩 작업을 적용할 스트림 이름을 적어준다. 이때 이름은 입력 스트림 이름과 완전히 동일해야 한다. 만약 스트림 파일인 경우,
.stream까지 완전히 동일하게 적어주어야 한다.
사용자 템플릿 이름 입력 화면 위의 예에서는
MD82.stream스트림에 적용할 템플릿을 생성하고 있으므로, MD82.stream이라 입력했다. +Add 버튼을 클릭해 템플릿을 생성한다.참고로, 여기서 입력한 이름은 실제로는 생성할 템플릿의 이름이다. 위에서 말한 바와 같이 템플릿 이름과 동일한 이름의 입력 스트림이 존재하면 해당 스트림에 그 템플릿이 적용된다. 하지만 이해를 돕기 위해 스트림 네임을 적는다라 표현했다.
- 생성된 템플릿 확인

MD82.stream이 추가된 모습 Transcoder Templates 목록에 새로 생성한 MD82.stream 템플릿이 추가된 것을 확인할 수 있다. 사용자 템플릿은 기본 템플릿과 다르게 템플릿 이름 오른쪽의 쓰레기통 아이콘을 눌러 삭제가 가능하며 (Default)가 붙지 않는다. 템플릿의 상세 설정을 진행하기 위해 MD82.stream를 클릭한다.
-
프리셋의 추가
현재 MD82.stream 템플릿은 생성만 완료된 상태이며, 아직 트랜스코딩에 사용할 프리셋이 정의되어 있지 않다. 템플릿의 상세 설정으로 이동해 프리셋을 추가하기 위해 Transcoder Templates 목록에서 MD82.stream을 클릭한다.

등록된 프리셋이 없는 모습 아무 것도 정의되지 않은 상태로 텅 비어 있는 모습을 볼 수 있다. 사용할 프리셋을 추가하기 위해 +Add Preset 버튼을 클릭한다.
- 프리셋 설정
아래와 같이 새로 생성할 프리셋에 대한 옵션을 입력하는 창이 나타난다. 캡처 이미지에는 Description 항목 아래의 트랜스코딩 옵션에 대한 내용을 제외했다. 본 글은 템플릿 적용에 관한 글이기 때문에 해당 부분은 다루지 않는다. 프리셋에 대한 상세한 내용은 와우자 트랜스코더 프리셋에 대한 글을 참고하기 바란다.

프리셋 이름과 출력 스트림을 지정하는 모습 다음 두 가지 항목만 입력하고 나머지 옵션은 기본값으로 둔다. 신규 프리셋의 기본 설정값은 입력 스트림을 트랜스코딩하지 않고 패스스루(Passthrough, 통과)하도록 설정되어 있다. 따라서 입력 스트림과 동일한 포맷의 스트림이 출력된다.
- Preset Name
- 프리셋의 이름이다. 사용자가 구분하기에 편한 이름을 아무거나 사용해도 된다. 본 예에서는 PresetForMD82라는 이름을 사용했다.
- Outgoing Stream Name
- 이 프리셋을 통해 트랜스코딩된 출력 스트림에 할당할 이름이다. 본 예에서는 단일 출력을 가정하고 XCODEDbyMD82라는 이름을 사용했다.
입력을 완료하고 +Add 버튼을 클릭해 준다.
- 프리셋 생성 확인
MD82.stream 템플릿의 구성 화면으로 돌아오면 Presets 목록에 새로 생성한 PresetForMD82 프리셋이 추가된 것을 확인할 수 있다.

프리셋이 추가된 모습 하지만 자세히 살펴보면 Enabled 항목에 체크 표시가 없다. 이는 해당 프리셋을 사용하지 않겠다는 의미로, 활성화를 위해 프리셋 이름을 클릭해 준다.
- 프리셋 활성화

프리셋이 활성화되지 않은 상태의 모습 PresetForMD82 프리셋의 상세 설정 화면을 확인하면 Status가 Not Enabled로 표시되어 있다. 이는 프리셋의 설정값은 저장되었지만 실제 트랜스코딩 작업에는 아직 사용되지 않는 상태를 의미한다.
프리셋을 사용 가능한 상태로 변경하기 위해 Enable Preset 버튼을 클릭한다.
- 프리셋 활성화 확인

프리셋 활성화 프리셋이 정상적으로 활성화되면 Template Preset has been enabled라는 메시지가 나타나고, 화면 하단의 Status가 Not Enabled에서 Enabled로 변경된다.
-
스트림 초기화와 적용 확인
어플리케이션 메뉴의
Incoming Streams를 클릭해 스트림 목록을 확인한다. 새로 생성한 템플릿은 이미 실행 중인 트랜스코딩 세션에 즉시 반영되지 않을 수 있으므로, 입력 스트림을 재연결해 트랜스코딩 세션을 재시작해야 한다.MD82.stream의 상세 화면으로 이동한 후 Reset stream 버튼을 클릭해 소스 스트림을 초기화한다. 스트림 파일을 통해 연결된 입력 스트림을 초기화하면 소스 연결이 재설정되며, 스트림이 다시 시작되는 과정에서 입력 스트림 이름에 대응하는 트랜스코더 템플릿도 다시 선택된다.

새로운 템플릿이 적용된 모습 화면을 갱신하면 프리셋을 생성하면서
Outgoing Stream Name에 입력했던 XCODEDbyMD82라는 스트림이 생성된 것을 확인할 수 있다. 이는 입력 스트림MD82.stream과 이름이 같은 사용자 템플릿MD82.stream이 선택되고, 그 안에서 활성화한PresetForMD82프리셋이 적용되었다는 의미이다.반면 사용자 템플릿을 별도로 생성하지 않은
MD.stream에는 기존 Transrate (Default) 템플릿이 계속 적용된다. 이 차이를 통해 입력 스트림별 사용자 템플릿 구성이 정상적으로 동작하는 것을 확인할 수 있다.
정리와 추가적인 정보
와우자 트랜스코더는 입력 스트림과 동일한 이름을 가진 트랜스코더 템플릿을 사용하며, 동일한 이름의 템플릿이 없을 경우 기본 Fallback Template을 사용한다. 이를 이용해 입력받는 스트림별로 서로 다른 템플릿을 적용하도록 지정할 수 있다.
와우자 트랜스코더와 관련하여 다음의 관련 글들도 읽어보기를 권하는 바이다.
FAQ
- 와우자 트랜스코더에서 생성할 수 있는 템플릿 수에 제한이 있는가?
-
와우자 공식 문서에는 생성할 수 있는 트랜스코더 템플릿 수의 고정된 상한이 명시되어 있지 않다. 템플릿은 설정 파일로 저장되므로 여러 개를 생성할 수 있지만, 사용하지 않는 템플릿이 지나치게 많으면 구성과 변경 이력을 관리하기 어려워진다. 따라서 어플리케이션과 입력 스트림의 운영 목적에 필요한 템플릿만 유지하는 것이 좋다.
- 하나의 템플릿에 추가할 수 있는 프리셋 수에 제한이 있는가?
-
공식 문서에는 템플릿 하나에 추가할 수 있는 프리셋 수의 고정된 상한도 명시되어 있지 않다. 다만 활성화된 프리셋이 많아질수록 생성되는 출력 스트림과 트랜스코딩 작업이 늘어나므로, 실제 운용 가능한 수는 서버의 CPU·GPU·메모리 성능과 각 프리셋의 코덱·해상도·프레임레이트 설정에 따라 달라진다.
- 스트림 파일을 사용할 때 템플릿 이름에
.stream을 포함해야 하는가? -
그렇다. 스트림 이름과 템플릿 이름을 대조하는 기능을 사용할 때는 템플릿 이름을 Incoming Streams 화면에 표시되는 입력 스트림 이름과 완전히 같게 지정해야 한다. 입력 스트림이
MD82.stream으로 표시된다면 사용자 템플릿 이름도 확장자를 포함한MD82.stream으로 지정한다. 이름이 일치하지 않으면 사용자 템플릿 대신 Fallback Template이 선택된다. - 하나의 사용자 템플릿을 여러 입력 스트림에 공통으로 적용할 수 있는가?
-
스트림 이름과 템플릿 이름을 대조하는 방식에서는 하나의 사용자 템플릿이 이름이 같은 입력 스트림에 대응한다. 여러 입력 스트림에 동일한 설정을 적용하려면 각 스트림 이름에 맞는 템플릿을 생성하거나 공통 Fallback Template을 사용한다. 스트림별로 더 복잡한 선택 조건이 필요하다면 별도의 어플리케이션 구성이나 트랜스코더 제어 모듈을 검토할 수 있다.
- 기존 템플릿을 복사하는 것과 새로운 템플릿을 만드는 것은 무엇이 다른가?
-
기존 템플릿을 복사하면 그 안에 정의된 프리셋과 디코딩·인코딩 설정을 가져와 필요한 부분만 변경할 수 있다. 반면 새로운 템플릿을 만들면 프리셋이 없는 상태에서 출력 구성을 처음부터 정의해야 한다. 기존 ABR 출력 구성을 일부 수정할 때는 복사가 편리하고, 특정 스트림에 최소한의 독립된 구성을 적용할 때는 새로운 템플릿을 만드는 편이 구성을 이해하기 쉽다.
- 하나의 템플릿에서 여러 프리셋을 활성화하면 어떻게 되는가?
-
활성화된 프리셋마다 해당 설정에 따른 출력 스트림이 생성된다. 예를 들어 1080p, 720p, 360p 프리셋을 활성화하면 하나의 입력 스트림에서 서로 다른 세 개의 출력 스트림을 만들 수 있다. 다만 여러 출력 스트림을 생성하는 것만으로 하나의 ABR 재생 주소가 자동으로 구성되는 것은 아니므로, Stream Name Group이나 SMIL 파일을 이용한 재생 구성을 별도로 확인해야 한다.
- 여러 프리셋을 활성화하면 서버 자원 사용량도 증가하는가?
-
그렇다. 하나의 입력에서 생성하는 출력 수가 많아지고 각 출력의 해상도·프레임레이트·비트레이트가 높아질수록 디코딩·스케일링·인코딩 부하도 증가한다. 패스스루 출력은 재인코딩 출력보다 부하가 작지만 처리 비용이 완전히 없어지는 것은 아니다. 운영 전에는 예상 동시 입력 수와 프리셋 구성을 기준으로 성능을 측정하고 CPU·GPU·메모리 여유와 사용 중인 라이선스 조건을 함께 확인해야 한다.
갱신 내역
- — 최초 게시
- — 1차 수정
- — 2차 수정 및 주소 이전