서로 다른 라이브 스트림의 오디오와 비디오를 재 조합하는 방법은? 와우자 ModuleAVMix 모듈

POV 스트리밍, 멀티 앵글 스트리밍, 장르별 음악 스트리밍등을 위한 라이브 스트림 오디오 비디오 결합을 지원하는, 와우자 ModuleAVMix의 사용법과 서비스 시나리오. 믹싱(Mixing)과 먹싱(Muxing)의 차이

믹싱? 먹싱?

라이브 스트림에서 오디오 또는 비디오 스트림을 분리해 다른 스트림과 조합하는 기능은 유연한 콘텐츠 제공을 가능하게 해주고 접근성과 활용성을 크게 확장시켜, 다양한 사용자의 요구에 대응할 수 있는 서비스를 구현하는데 매우 유용한 도구가 된다.

와우자 스트리밍 엔진(Wowza Streaming Engine 이하 와우자)에서는 이러한 기능을 ‘믹싱(Mixing)’이라 부르고 있다. 이 모듈의 이름부터가 ModuleAVMix 이다.

하지만 이렇게 스트림을 재 조합하는 것은 믹싱이 아닌 먹싱(Multiplexing) 이라 표현하는 것이 맞다. 제작 현장에서 사용되는 용어가 더 익숙할 사용자들을 위해 지은 이름이 아닐까, 본 필자는 생각한다.

정확히 말해 믹싱은 A와 B를 더해 C를 만드는 것이고, 먹싱은 A를 B로 교체하거나, A만 있던 것에 B를 추가하는 것이다. 또 다른 관점에서 본다면, 믹싱은 다시 인코딩이 필요한것, 먹싱은 인코딩이 필요 없는 것 이다. 본 글에서는 이 개념을 명확히 하기 위해 모듈의 이름을 언급할 때가 아니라면 ‘믹싱’ 대신 ‘먹싱’, 또는 ‘결합’ 이라는 표현을 사용하도록 하겠다.

오디오 비디오 먹싱을 이용한 서비스 예시

별도의 라이브 스트림의 오디오와 비디오를 먹싱하는 과정을 통해 구현할 수 있는 서비스는 어떤 것들이 있는가 생각해 본다.

하나의 비디오에 여러 오디오를 먹싱하는 시나리오

다국어 동시통역
국제 행사나 예배 중계 등에서 하나의 비디오 스트림에 여러 언어의 통역 오디오를 결합해, 언어별 라이브 스트림을 생성한다.
음향 선택형 콘텐츠
보컬 중심, 악기 중심, 현장 소리 강조 등 서로 다른 오디오 믹스를 하나의 비디오에 연결해, 시청자가 선호하는 음원을 선택할 수 있게 한다.
화면 해설
시각장애인을 위한 화면 해설 음성을 비디오 스트림과 결합해 시각장애인의 콘텐츠 접근성을 향상시킨다.
장르별 음악 스트리밍
같은 영상에 다양한 음악 장르(예: 팝, 클래식, 재즈 등)의 오디오 스트림을 결합해, 여러 채널을 구성할 수 있다.

여러 비디오에 하나의 오디오 스트림을 적용하는 시나리오

360도 VR/CCTV
어느 한 지점을 여러 각도에서 관찰하거나, 한 지점에서 여러 각도의 방향을 관찰하는 경우, 모든 비디오 스트림에 동일한 오디오를 적용시켜 현실감 있는 서비스를 제공할 수 있다.
멀티 앵글 스트리밍
다양한 시점(예: 무대 정면, 드러머 카메라, 골키퍼 뷰 등)의 비디오 스트림에 동일한 현장 오디오를 결합하면, 시청자가 원하는 각도의 영상을 선택할 수 있게 된다.
온라인 강의
여러 시점(정면, 칠판, 클로즈업 등)에서 촬영된 비디오 스트림에 동일한 현장 오디오를 적용해 학습자가 시점을 자유롭게 선택할 수 있게 한다.
POV 스트리밍
여러 플레이어의 시점(POV) 화면이나 게임 내 다양한 관전 화면에 동일한 오디오를 적용해 원하는 선수의 플레이를 선택해 볼 수 있게 한다.

ModuleAVMix 모듈 설치 절차

모듈 다운로드와 설치

  1. ModuleAVMix 을 찾아 모듈 파일을 다운로드 받는다.(와우자 스트리밍 엔진 확장 모듈 목록 참고)
  2. 다운로드 받은 확장 모듈의 압축을 풀고 와우자 서버에 설치한다. (와우자 스트리밍 엔진 확장 모듈 설치 방법을 참고)
  3. 적용할 어플리케이션의 Application.xml의 Module섹션에 아래 내용을 등록해 준다. (와우자 XML 설정 파일 종류와 프로퍼티 변경 방법 참고)
    모듈 등록 정보
    NameDescriptionFully Qualified Class Name
    ModuleAVMixAV 먹스com.wowza.wms.plugin.avmix.ModuleAVMix
    <Module>
      <Name>ModuleAVMix</Name>
      <Description>AV 먹스</Description>
      <Class>com.wowza.wms.plugin.avmix.ModuleAVMix</Class>
    </Module>
  4. 와우자 서비스를 재시작해 준다. (어플리케이션만 재시작 해 주면 모듈 적재가 되지 않음에 주의!)

모듈 적용

설치된 ModuleAVMix를 적용할 와우자 어플리케이션에 아래의 프로퍼티들을 추가시켜 준다.

ModuleAVMix 속성
PathNameTypeValue
/Root/ApplicationavMixNamesStringoutputName: MUXED, videoName: CamRTSP1, audioName: MusicBox
<Property>
  <Name>avMixNames</Name>
  <Value>outputName: MUXED, videoName: CamRTSP1, audioName: MusicBox</Value>
  <Type>String</Type>
</Property>

avMixNames 의 Value

ModuleAVMix의 핵심 프로퍼티인 avMixNames은 키-값 형태로 아래와 같이 구성된다.

outputName
ModuleAVMix 를 통해 생성될 출력 스트림 네임
필수 항목으로 반드시 입력해 주어야 한다.
videoName
비디오 소스로 사용할 스트림 네임.
없을 경우 출력 스트림은 비디오 없는 스트림으로 생성
audioName
오디오 소스로 사용할 스트림 네임.
없을 경우 출력 스트림은 오디오 없는 스트림으로 생성

최종적으로, 위의 예시에서 사용된 Value값인 outputName: MUXED, videoName: CamRTSP1, audioName: MusicBox 는, CamRTSP1 스트림의 비디오와 MusicBox 스트림의 오디오를 묶어, MUXED라고 하는 스트림을 생성하게 된다.

위 예시에서는 하나의 스트림만을 생성 했으나, 복수의 스트림 생성도 가능하다. 위의 필수 속성을 포함해, 추가 옵션으로 사용할 수 있는 속성들의 목록은 와우자의 공식 문서를 참고하기 바란다.

속성을 저장한 후, 해당 어플리케이션을 재시작 하면 적용된다.

마무리

Wowza Streaming Engine의 ModuleAVMix모듈은 오디오와 비디오를 결합해 새로운 콘텐츠를 만들고 시청자 경험을 개선하는데 매우 효과적인 기능을 제공한다. 특히 ModuleAVMix같은 멀티플랙서(Multiplexer) 유형의 기능은, 외부의 인코더 시스템을 사용하는 것 보다, 시스템의 자원을 적게 사용한다는 장점이 있다.

위에 제시한 시나리오 외에도 이 기능을 응용해 구현할 수 있는 많은 서비스 형태가 있을 것이다. 혹, 기회가 된다면 본 필자에게도 정보를 알려주기 바란다. 이 글이 독자 제위의 고민에 자그마한 도움이 되기를 소망한다.

요약 및 FAQ

먹싱(Muxing)과 믹싱(Mixing)의 차이는?
믹싱은 A+B=C를 만드는 것이고, 먹싱은 A를 B로 교체하거나 A만 있는 것에 B를 추가하는 것이다. 믹싱은 인코딩 과정이 필요하다.
구현할 수 있는 서비스 시나리오는?
다국어 동시통역, POV 스트리밍, 멀티 앵글 스트리밍, 장르별 음악 스트리밍등에 적용할 수 있다.
서로 다른 라이브 스트림의 오디오와 비디오를 결합하는 방법은?
와우자 스트리밍 엔진의 ModuleAVMix를 사용한다.

1998년 라이브 음향 엔지니어로 시작해 2005년부터 방송 송출 및 미디어 전송 엔지니어의 삶을 살아가고 있습니다. 아날로그 제작 시스템부터 최신 IP 미디어 라스트마일 환경까지, 미디어 기술과 정보 통신 기술(ICT)의 융합을 통해 새로운 솔루션을 제안하고 실현시켜 왔습니다.

답글 남기기

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

Post comment