This article is available in English.
와우자 스트리밍 엔진 트랜스코더의 숨겨진 설정
와우자 스트리밍 엔진(이하 와우자) 트랜스코더에는 웹 UI에 표시되지 않지만 XML 템플릿으로 적용할 수 있는 세부 옵션이 있다. 공식 문서와 고객지원을 통해 확인한 MainConcept 파라미터 13개의 용도와 템플릿 파일에 Parameter 블록을 추가해 적용하는 방법을 공유한다.
숨겨진 설정을 변경하는 방법
숨겨진 설정을 변경하기 위해서는 템플릿 파일을 직접 수정해야 한다. 와우자 트랜스코더의 설정은 잘 알려진 대로 [install-dir]/transcoder/templates/에 위치한 트랜스코더 템플릿 파일을 통해 관리된다.
이 템플릿 파일은 와우자의 다른 설정 항목과 동일하게 XML 형태이다. 다른 설정의 프로퍼티를 수정하는 것과 동일한 방식으로 수정하면 된다. 이 템플릿 파일을 열고, 적용하고자 하는 트랜스코더 프리셋의 비디오 파라미터 섹션으로 이동한다. 그리고 아래의 예시와 같이 파라미터 블록을 추가해 주면 된다.
...(전략)...
<Encode>
<Name>프로파일 이름</Name>
<Enable>true</Enable>
<Description>프로파일 설명</Description>
<StreamName>mp4:${SourceStreamName}_360pvbr</StreamName>
<Video>
<Parameters>
<Parameter>
<Name>mainconcept.bit_rate_mode</Name>
<Value>2</Value>
<Type>Long</Type>
</Parameter>
</Parameters>
... (이하 생략) ...
다른 와우자 파라미터와 마찬가지로, 각각의 파라미터들은 Name, Value, Type으로 구성되어 있다.
숨겨진 추가 옵션의 목록
본 필자가 조사한 와우자 트랜스코더의 추가 옵션 목록이다. 공식 문서를 통해 공개된 것에 더해, 공식 문서는 존재하지 않으나 기술 지원을 통해 확인한 목록까지 포함되어 있다.
- 비트레이트 모드 선택
- Name
mainconcept.bit_rate_mode- Value
-
- 0: CBR 모드
- 1: CQT 모드
- 2: VBR 모드
- Type
- Long
-
평균 또는 목표 비트레이트
- Name
mainconcept.bit_rate- Value
- bps 단위의 정수를 입력한다. 예를 들어 2500000을 입력하면 2.5 Mbps를 의미한다.
- Type
- Long
-
최대 비트레이트
- Name
mainconcept.max_bit_rate- Value
- VBR 모드에서 허용할 최대 비트레이트를 bps 단위의 정수로 입력한다. 예를 들어 4000000을 입력하면 4 Mbps를 의미한다.
- Type
- Long
-
IDR 프레임 간격
- Name
mainconcept.idr_interval- Value
- IDR(Instantaneous Decoder Refresh) 프레임을 삽입할 간격을 프레임 수 기준의 정수로 입력한다.
- Type
- Long
-
H.264 Level 설정
- Name
mainconcept.level_id- Value
- 출력 스트림에 적용할 H.264 Level에 대응하는 정수를 입력한다.
- Type
- Long
-
참조 프레임 수
- Name
mainconcept.num_reference_frames- Value
- 인코더가 사용할 참조 프레임 수를 정수로 입력한다.
- Type
- Long
-
프레임 재정렬 지연
- Name
mainconcept.reordering_delay- Value
- B-프레임을 수용하기 위한 프레임 재정렬 지연값을 정수로 입력한다. Wowza 공식 문서에서 설명하는 기본값은 1이며, 이 값에서는 B-프레임을 삽입하지 않는다.
- Type
- Long
-
Access Unit Delimiter 출력 여부
- Name
mainconcept.write_au_delimiters- Value
- Access Unit Delimiter를 출력할지 결정하는 정수를 입력한다.
- Type
- Long
-
엔트로피 코딩 모드 선택
- Name
mainconcept.entropy_coding_mode- Value
-
- 0: CAVLC 모드
- 1: CABAC 모드
- Type
- Long
-
VBV 버퍼 크기
- Name
mainconcept.bit_rate_buffer_size- Value
- VBV(Video Buffering Verifier) 버퍼 크기를 바이트 단위의 정수로 입력한다. 1000000은 1 MB를 의미한다.
- Type
- Long
-
I-프레임 Quantization 값
- Name
mainconcept.quant_pI- Value
- 0부터 51 사이의 정수를 입력한다. 값이 낮을수록 품질이 높고 값이 높을수록 압축이 강해진다. 고객지원에서 제공한 시험용 예시값은 23이다.
- Type
- Long
-
P-프레임 Quantization 값
- Name
mainconcept.quant_pP- Value
- 0부터 51 사이의 정수를 입력한다. 값이 낮을수록 품질이 높고 값이 높을수록 압축이 강해진다. 고객지원에서 제공한 시험용 예시값은 25이다.
- Type
- Long
-
B-프레임 Quantization 값
- Name
mainconcept.quant_pB- Value
- 0부터 51 사이의 정수를 입력한다. 값이 낮을수록 품질이 높고 값이 높을수록 압축이 강해진다. 고객지원에서 제공한 시험용 예시값은 27이다.
- Type
- Long
정리와 주의사항
사실 본 글의 내용은 일반적인 운영자들에게는 필요 없어야 하는 내용이다. 본 필자는 다른 글들을 통해 인코딩/트랜스코딩 작업은 와우자 외부에서 처리할 것을 권장한다고 이미 수차례 밝힌 바 있다.
눈치가 빠르신 몇몇 독자 제위께서는 mainconcept이라는 단어가 계속 등장하고 있는 게 눈에 거슬리실 것이다. 와우자 트랜스코더는 MainConcept의 SDK를 기반으로 동작한다. 실제로 위에 언급된 옵션들에 대응하는 파라미터들을 메인컨셉 SDK의 AVCEncoderParams 구조체에서 확인할 수 있다. 따라서 추가적인 옵션이 있으리라 예상되지만 설정 방법에 대해서는 공개된 것이 없다.
본 글의 내용은 와우자 기술지원에서 공식적으로 제공한 정보이고, 본 필자 역시 실제로 시스템에 옵션을 적용하여 동작 여부를 직접 확인한 내용이다. 하지만 와우자에서 정규 문서로 발행하지 않은 내용들도 있으며, 그랬다 하더라도 정상적으로 동작하지 않는 경우도 있다.
다만, 어디에선가 와우자를 끝까지 쥐어짜 가며 사용해야 하는 상황에 처한 분들께 작게나마 도움이 되고자 이 내용을 공유한다. 부디 서비스 구축에 본 글이 필요한 독자 제위가 없으시기를 바란다.
인코딩은 인코더가 하는 거다.
갱신 내역
- — 최초 게시
- — 1차 수정
- — 2차 수정 및 주소 이전