트랜스코드 vs 트랜스레이트 vs 트랜스먹스 차이점 : 와우자 스트리밍 엔진
Wowza Streaming Engine에는, 트랜스코드(transcode)와 트랜스레이트(transrate) 그리고 트랜스먹스(transmux)라는 개념이 등장한다. 같으면서도 다른듯한 이 용어가 무엇을 의미하고, 어떤 차이가 있는지 정리한다.
와우자 스트리밍 엔진(Wowza Streaming Engine)은 콘텐츠를 효율적으로 전송하고 다양한 환경에 맞게 변환하는 핵심 기능들을 제공한다. 그중에서도 트랜스코드(Transcode), 트랜스레이트(Transrate), 트랜스먹스(Transmux)는 얼핏 비슷해 보이지만, 스트리밍 서비스에서 각기 다른 중요한 역할을 담당한다. 본 글에서는 이 세 가지 용어의 정확한 의미와 차이점을 정리함으로, 독자제위의 스트리밍 서비스의 핵심 기능 이해에 대해 도움이 되고자 한다.
와우자 스트리밍 엔진의 두 가지 핵심 역할
와우자 스트리밍 엔진(Wowza Streaming Engine, 이하 와우자)의 역할은 크게 두가지로 나눌 수 있다.
- 오리진(Origin)
- 콘텐츠 파일 또는 라이브 스트림을 네트워크를 통해 전송한다.
- 트랜스코더(Transcoder)
- 소스 콘텐츠에 다양한 변환 작업을 가해 원하는 형태로 출력한다.
인코딩, 디코딩, 그리고 코덱의 기본 개념
먼저, 기본적인 용어와 개념에 대해 짚고 넘어가도록 하자.
영상신호는 그 크기가 매우 크다. 흔히 HD-SDI라고 부르는 방송용 무압축 신호 포맷인 SMPTE 292 신호의 경우, 약 1.5Gbps 의 대역폭을 가진다. 이는 일반적인 네트워크에서 감당하기에 버거운 대역폭인다. 따라서, 화질을 조금 손해 보더라도 전송하기에 적합한 수준으로 그 대역폭을 줄여야 할 필요가 있다. 이를 인코딩(Encoding)이라고 한다.
인코딩에는 여러가지 방법이 있으며, 각각의 방법에 따라 다양한 특징을 가지게 된다. 때문에 사용하려는 환경에 따라 가장 적합한 방법을 사용해 인코딩 하게 된다. 이렇게 인코딩에 사용되는 특정한 방법들을 코덱(Codec)이라 한다.
코덱을 통해 인코딩된 신호는 재생이 필요한 곳으로 전송된 후, 반대의 과정을 거쳐 원래의 신호로 만들어진다 한다. 쉽게 말해 인코딩된 동영상 스트림을 입력받아 다시 원래의 그림을 그리게 된다. 이렇게 인코딩과 반대의 개념으로, 전송된 신호를 바탕으로 원래의 신호를 만들어 내는 과정을 디코딩(Decoding)이라고 한다.
와우자에서 사용 가능한 코덱의 종류
위에서 말했듯, 코덱에는 여러가지 종류가 있다. 그 중 와우자 스트리밍 엔진의 트랜스코더에서 사용 가능한 비디오 코덱과 오디오 코덱은 다음과 같다.
- 비디오 코덱
- H.264
- MPEG-4 Part 2
- HEVC/H.265
- MPEG-2
- VP8
- VP9
- H.263v2
- 오디오 코덱
- AAC
- G.711
- MPEG-1 Layer 1/2/3
- Speex
- Vorbis
- Opus
이중 일부 코덱은 디코딩만 지원하거나 인코딩만 지원하기도 한다. 이들 중, 업계에서 표준으로 사용되는 코덱은 H.264와 AAC이며, 이 둘은 모두 와우자에서 디코딩과 인코딩을 지원하는 포맷이다.
인코딩과 디코딩, 코덱이 무엇인지 간단하게 정의 해 보았다. 이를 바탕으로 트랜스코드와 트랜스레이트가 어떤 것인지 정의할 수 있게 되었다.
트랜스코드(Transcode)
트랜스코드(Transcode)는 변환을 뜻하는 transform 과 codec 를 합친 단어로, 코덱을 변환하는 것을 의미한다. 와우자 스트리밍 엔진에서 트랜스코드라 하면, 보통 입력된 콘텐츠에 사용된 코덱을 클라이언트측 호환성을 위해 H.264 비디오 코덱과 AAC 오디오 코덱으로 변환하는 것을 의미한다.
이 개념은 와우자에서 뿐만 아니라 미디어 산업 전반에서 여러가지 변환 작업을 넓게 일컫는 개념이기도 하다. 예를들어,
비디오 (MPEG-2) 파일을 오디오 (MP3) 파일로 트랜스코딩 한다.
UHD 콘텐츠를 SD 급으로 트랜스코딩 한다.
와 같이 사용하는 식이다.
트랜스레이트(Transrate)
트랜스레이트(Transrate)는 변환을 의미하는 transform 과 전송율을 뜻하는 bitrate 를 합친 단어로, 코덱의 변경 없이 전송에 필요한 비트레이트를 변경하는 것을 의미한다.
이는 HLS(HTTP Live Streaming) 나 MPEG-DASH와 같은 적응형 비트레이트(ABR, adaptive bitrate streaming) 개념의 등장과 함께 사용되기 시작한 개념이다.
적응형 비트레이트는 고품질-고비트레이트의 원본 콘텐츠로부터 다양한 품질의 사본을 만들어 클라이언트의 전송 네트워크의 상황에 따라 적절한 비트레이트의 스트림을 제공하는데 활용된다. 이를 통해 클라이언트는 재생중 품질에 변동이 있을지언정, 끊임 없는 스트림 수신을 통한 재생이 가능해 진다.
해상도 또는 비트레이트를 변환한다는 관점에서 기존의 트랜스코드 개념과 중복되는 것이 있기에, 아직까지 미디어 산업에서는 트랜스코드와 혼용되어 사용되는 경우도 있다. 하지만 엄밀히 말하면, 트랜스레이트는 코덱 변경 없이 비트레이트만 조절하는 기술이다.
트랜스먹스(Transmux)
미디어 산업에서 멀티플렉서(Multiplexer, 이하 먹스)는, 오디오와 비디오 및 기타 데이터 스트림을 묶어 하나의 스트림(컨테이너)을 생성하는 것을 의미한다. 즉, 트랜스먹스(Transmux)는 앞의 두 개념이 비디오와 오디오 데이터를 변환하는 개념인 것과 다르게, 이 둘을 묶는 패키지나 컨테이너를 변경하는 작업을 의미한다.
예를들어, 베이스벤드신호를 입력받는 실시간 인코더가 MPEG-4 비디오 코덱과 HE-AAC 오디오 코덱을 사용해 인코딩한 신호를 MPEG-2 TS UDP Multicast 형태로 출력한다고 가정해 보자. UDP Multicast의 경우, 퍼블릭 인터넷을 통해 전송하기에 매우 곤란하기 때문에 HLS 나 RTMP 등의 다른 프로토콜로 변경해 주어야 할 필요가 있다.
하지만 전송되어야 하는 비디오와 오디오 데이터는 이미 적절한 코덱으로 인코딩 된 상태이다. UDP Multicast 를 통해 수신한 오디오와 비디오 데이터를 RTMP나 HLS 프로토콜에 맞게 재 배치해 주기만 하면 굳이 다시 인코딩(즉, 트랜스코딩)을 할 필요가 없어지게 된다.
이와 같은 것을 트랜스먹싱, 또는 재패키징(Repackage)이라 하며, 불필요한 컴퓨팅 파워나 변환에 걸리는 지연시간을 줄이는데 효과적으로 사용할 수 있다.
정리
와우자는 트랜스코드, 트랜스레이트, 트랜스먹스 기능을 모두 수행할 수 있는 플랫폼이다. 각각의 기능들은 스트리밍 서비스를 구성하는데 핵심적인 요소이다. 이러한 기술들을 잘 이해하고 활용함으로, 독자 제위의 여가시간이 늘어나는 데에 작은 도움이 되기를 소망한다.