기존의 서비스 플랫폼에서 신규 서비스나 다른 플랫폼으로 마이그레이션을 할 경우, 관련된 담당자나 프로젝트 PM은 전체 콘텐츠 통합 프로세스를 이해하고 반복해서 수정 및 최적화 등 다양한 영역에서 계속적인 반복된 일을 함으써 많은 좌절과 시간을 보내야만 합니다.
이것은 모든 물건을 한 집에서 다른 집으로 옮기는 것과 유사합니다. 일부 물건은 바로 옮겨 가지만 때로는 전체 레이아웃과 다를 경우 이 물건은 오랫동안 상자에 담겨 있어야만 합니다.
실시간 비디오/오디오 공간의 사용자에게는 특히 비즈니스 및 기술적인 요구 사항들이 증가함에 따라 서비스를 위한 WebRTC 솔루션을 구축하는 일은 매우 어려울 수도 있습니다. 비즈니스는 고객이나 운영자들이 자신의 서비스를 위한 자신들이 원하는 기준과 함께 오퍼링을 요구하고 이를 통해 플랫폼을 구성하는데 많은 도움이 될 것이며 핵심 구성요소를 이미 결정하였기에 개개의 프로세싱에 많은 도움이 될 것입니다.
그러나 우리는 이와 같은 과정을 진행하기 위해 사전에 다음과 같은 사항들을 체크해야만 합니다.
① 카메라 / 마이크 캡처
② 지능형 연결 로직 (P2P, SFU, MCU)
③ 효율적인 트랜스 코딩 처리(VPx에서 H.264, Opus에서 AAC 등)
④ 아카이빙/ 재생
⑤ WebRTC이외의 다른 프로토콜 (HLS, SRT 등)으로의 멀티플렉싱
위에서 기술한 5가지가 완전한 것은 아니지만 WebRTC 또는 지연시간이 짧은 실시간 스트리밍 서비스를 위한 요구 사항들이 될 수가 있습니다.
다른 한편으로 실망스러운 부분들은 WebRTC 서버 또는 클라우드 제품에서 이러한 요구 사항들을 모두 충족시킬 수는 없으며 그렇게 할 경우 매우 구체적인 클라이언트 측 즉 각 클라이언트 대상 (예, Web/Javascript, iOS 및 안드로이드)를 위한 소프트웨어 개발 키트(SDK)를 사용하게 될 것입니다.
특히 웹/자바 스크립트 측면에서 크롬, 파이어폭스, 사파리 및 에지(Edge)가 WebRTC를 구현한 방식의 차이로 인해 이러한 클라이언트 SDK는 WebRTC 프로젝트에서 전체 개발 시간을 줄이는데 상당히 중요합니다. 따라서 어떤 WebRTC라는 개발 방향에 관계없이 한 WebRTC 공급업체에서 다른 WebRTC 공급업체로 이동해야 할 때마다 공급업체에서 사용한 WebRTC라는 방향을 이해하고 역추적하여 따라가야만 합니다.
만일 운이 좋으면 이와 같은 역 추적 도중 새로운 방향으로 가는 길은 찾을 수 있습니다. 그러나 한 가지 확실한 점은 다음에 선택한 WebRTC 공급업체의 클라이언트 측 SDK가 오픈 소스 제품 중에서도 이전 공급 업체의 SDK와 일치하지 않는다는 것입니다.
물론 비디오 스트리밍의 역사에 나타난 유사한 상황을 찾기 위해 플래시(Flash)에 대한 일화를 생각해봄 직합니다.플래시는 비디오 플레이어가 내장되어 있지 않습니다. 비디오 URL을 Flash SWF로 전달할 수 없으며 Flash 플레이어 플러그인에서 직접 재생을 시작할 수 없습니다. 비디오 스트리밍을 재생하고 관리하려면 특정 코드를 Flash SWF 파일로 작성하고 컴파일을 해야만 합니다. 또한 내장된 재생/일시 정지 버튼이 없었습니다. 즉 모든 버튼을 내장해야만 했습니다. Adobe는 비디오 프로젝트를 Flash 프로젝트에 쉽게 추가할 수 있는 방법이 없다는 좌절감에 감사를 표했습니다. 그래서 OSMF(Open Source Media Framework) 프로젝트를 시작하여 Flash 프로젝트에 비디오를 추가하려는 모든 사람이 자유롭게 코드를 사용할 수 있게 했습니다. 해당 제공 업체는 OSMF에 사용자 정의 추가 기능 또는 플러그인을 작성하여 기능을 확장할 수 있습니다. 예를 들면 Akamai는 CDN에서 사용 가능한 기능을 활성화하기 위해 OSMF 용 플러그인을 작성했습니다.
그렇다면 위에서 기술한 것과 같이 WebRTC와 어떤 관련이 있을까요?
앞에서 언급한 듯이 각 WebRTC 공급업체에서 서로 다른 클라이언트 즉 SDK가 있으므로 새로운 SDK를 사용하기 위해 많은 코드를 리팩터링해야만 합니다. 대상 (웹, 안드로이드, iOS)에서 업데이트가 이루어져야만 합니다. 이러한 업데이트가 저비용이면 좋고 리소스 관리 관점에서 비싸지 않은 것이 좋지 않습니까? 이것은 오픈소스 WebRTC 프레임 워크에 대해 이야기하려고 했던 이야기의 일부가 될 것입니다.
따라서 WebRTC를 쉽게 구현할 수 있도록 비교적 새롭고 호환이 될 수 있으며 편하게 사용할 수 있는 WebRTC 서버 및 SDK들이 필요합니다.
이에 대한 개발 프로젝트는 캐스트웨어의 Professional Services로 문의하거나 개발 요청을 하는 것도 하나의 방법이며 또한 최근 WebRTC에 대한 편리한 기능들을 제공하는 와우자 스트리밍 엔진을 이용하는 방법도 있습니다.