IT_Programming/Dev Libs & Framework

[펌] WebRTC가 무엇일까요?

JJun ™ 2019. 1. 18. 13:24



 * 출처

 : https://blog.naver.com/woliver/221443164943



WebRTC가 무엇일까요?

인터랙티브 라이브 비디오 플랫폼에 대한 수요가 증가함에 따라 더 많은 공급업체가 브라우저 기반 스트리밍을 통해 지연시간(Delay Time)이 짧은 비디오를 효율적으로 전달할 방법을 현재 찾고 있습니다.

WebRTC는 소프트웨어 엔지니어 및 개발자들 사이에서 인기 있는 옵션이지만 스트리밍 사용 예에 적합할까요? 또는 맞을까요?

이 블로그에서는 WebRTC가 무엇이며 적합한지 와 Wowza Streaming Engine이 실시간 콘텐츠를 사용자에게 실시간으로 방송하기 위해 이 혁신적인 기술을 어떻게 활용해야 하는지를 알아보겠습니다.



그럼 WebRTC가 무엇일까요?

WebRTC는 이름에서도 느낄 수 있듯이 브라우저를 통해 실시간 통신(Real Time Communication)을 가능하게 하는 웹용 무료 개방형 프레임워크입니다. 이 프로토콜은 플러그인을 요구하지 않으며 브라우저 간 피어-투-피어(Peer-to-Peer) 연결을 사용하여 거의 동시에 통신교환을 할 수 있습니다.

WebRTC를 사용하면 여러 브라우저들이 서로 직접 통신할 수 있으므로 개인과 소그룹 간의 화상회의가 가능합니다. 또한 브라우저용 고품질 RTC 응용 프로그램을 개발할 수 있으므로 공통 프로토콜 세트를 통해 브라우저 간 통신이 가능합니다.

그럼 어떻게 작동할까요? WebRTC는 크롬(Crome), 파이어폭스(Firefox) 및 사파리(Safari) 브라우저에 내장된 세 가지 HTML5 API를 사용합니다. 이러한 API는 브라우저를 비디오 스트리밍용 인코더로 전환한 다음 재생을 위해 위해 다른 브라우저에 직접 연결합니다.



WebRTC가 여러분을 위한 적합한 프로토콜일까요?

먼저 WebRTC 사용을 고려하고 있다면 스트리밍 워크 프로우에 가장 적합한지를 판단해야만 합니다.

WebRTC가 적합한 경우

다음 경우에 WebRTC가 적합할 수 있습니다.

그룹 화상 회의 또는 실시간 상호작용이 필요할 때입니다. 구현에 따라 WebRTC는 그룹 화상회의 및 소규모 시청자와의 대화 형 사용 사례에 적합한 옵션일 수 있습니다. 게시(Publish)나 재생(Playback)에 WebRTC를 사용하는 한 적절한 네트워크 조건에서 실시간 통신(0.5초 미만)을 지원하므로 거의 동시적인 상호작용이 용이합니다.

재생 시간을 지연시키거나 여러 장치에서 재생을 동기화하려는 경우 WebRTC를 사용하여 캡처하고 메타데이터(Metadata) 및 시간 코드(Timecode)를 사용하여 재생에서 참조할 시간을 제어할 수 있습니다.

이것은 여러분은 대형의 인프라가 없이도 빠르고 쉽게 응용 프로그램을 통해 만들거나 방송하는 것이 필요합니다. WebRTC는 HTML5 API를 사용하기 때문에 가볍고 임베디드 된 프레임 워크를 통해 HTML5 프로그래밍 언어 내 내장된 많을 기능들을 사용할 수 있습니다. 따라서 개발자는 WebRTC를 사용하여 웹 기반 응용프로그램을 쉽게 만들 수 있으며 사용자는 클라이언트를 다운로드하거나 플러그인을 사용하지 않고도 기능 제공을 이용할 수 있습니다.

WebRTC가 제공하는 기능에는 화면 공유 기능과 브라우저 기반 인코딩 기능이 포함되어 있어 사용자가 브라우저 창에서 다른 뷰어 및 웹 참여자에게 스트리밍을 할 수 있습니다.

WebRTC가 적합하지 않은 경우

WebRTC를 사용하는데 적합하지 않을 수도 있는 일부 스트리밍 워크프로우가 있습니다. 다음 경우가 바로 WebRTC가 적합하지 않은 경우입니다.

대규모롤 스트리밍 하는 경우나 또는 바이러스 성 시청률 상승에 대비하는 경우입니다.

모든 개발자는 스트리밍 응용 프로그램이 수천 또는 수백만 명의 시청자가 시청할 수 있게 바이러스 성을 갖기를 원하는 경우가 있습니다. 그러나 많은 사용자는 이와 같은 큰 확장성에 대하여 질문을 합니다. 현재 WebRTC는 로드를 처리할 수 있는 Wowza Streaming Engine과 같은 라이브 반복 서버 네트워크 없이 확장할 수 있는 기능이 매우 제한되어 있습니다.

WebRTC 전문가인 Tashi Levent Levi에 따르면 하나의 브라우저를 다른 브라우저에 직접 연결하면 언제든지 피어(Peer) 연결을 만들어 활용해야 한다고 합니다. 그러나 브라우저가 허용할 동시 피어(Peer) 연결 수에는 제한이 있습니다. 크롬(Crome)의 경우 제한이 500회이지만 Levent Levi는 50회를 권장합니다.

WebRTC는 피어링 네트워크(Peering Network)를 사용하기에 스트리밍을 다른 로컬 호스트에 배포하는 데 도움이 되는 가까운 노드가 있어야만 하며 WebRTC와 서버 네트워크를 페어링 하지 않는 한 글로벌 네트워크를 통한 피어링은 엄청나게 어려울 수 있습니다.

다른 하나는 좋은 품질의 비디오를 위한 스트리밍이 필요로 합니다. 오늘날 WebRTC 인프라를 통해 방송 품질의 비디오를 안정적으로 스트리밍을 할 수 없다는 것입니다. 최종 사용자에게 고품질의 콘텐츠를 제공하려면 특정 비트 전송률, 속도 및 네트워크의 연결 수준이 필요하지만 시청자가 콘텐츠에 액세스하는 데 사용되는 네트워크 또는 연결을 제어할 수는 없습니다.

WebRTC 프로토콜은 현재 VP9 및 H.264를 지원하는 것으로 제한되어 있습니다. 즉, 파일 크기가 커지면 네트워크가 망가질 수 있습니다. 4K 또는 1080p60과 같이 높은 해상도를 지원하려면 다양한 장치에서 재생하기 위해 트랜스 코딩을 할 수 있어야만 하며 트랜스 코더로 최고의 품질을 만들어 전송해야만 합니다.

Wowza Streaming Engine에서의 WebRTC

위에서 언급한 많은 문제들은 Wowza Streaming Engine과 같은 미디어 서버를 사용하여 많은 문제를 풀 수 있습니다. 미디어 서버는 스트리밍 및 연결을 보다 효과적으로 제어할 수 있으며 연결 상태가 불량한 시청자를 퇴장 시키거나 모든 열악한 네트워크를 수용하기 위해 모든 사용자의 경험을 저하시키는 대신 모든 사용자에게 보다 일관적 시청 환경을 제공할 수 있습니다.

방송하는 경우, 미디어 서버가 필요입니다. 아니 구글은 그러한 무료 서비스 또는 해당 사용 사례에 맞춰진 오픈 소스 코드를 제공하지 않습니다.

그러나 Wowza Streaming Engine은 WebRTC를 지원하여 피어 투 피어(Peer-to-Peer) 이상의 방송 기회를 제공합니다.

Wowza Streaming Engine에서 WebRTC를 사용하면 대역폭을 최적화하면서 품질 및 확장성을 대한 우려를 완화시킬 수 있습니다.

아래의 동영상을 참조하기 바랍니다.

  

WebRTC와 와우자 스트리밍 엔진

WebRTC와 외우자 스트리밍 엔진

전통적인 방식의 피어 투 피어(Peer-to-Peer) 연결에서는 각 브라우저가 그룹의 다른 모든 브라우저에 직접 연결되어 프로세서의 대역폭을 소모합니다. 그러나 Wowza Streaming Engine을 사용하면 각 브라우저가 미디어 서버에 하나의 연결만 설정하면 들어오는 모든 비디오 스트리밍을 가져와서 개별 브라우저에서 재생할 수 있습니다. 이를 통한 작은 대역폭과 적은 연결로 실시간 스트리밍이 가능합니다.

또한 Wowza Streaming Engine을 사용하면 WebRTC를 통해 더 많은 사용자에게 배포할 수 있습니다. 그리고 더 높은 대기 시간에도 불구하고 HLS나 RTMP와 같은 다은 통신 프로토콜에 대한 스트리밍을 트랜스 코딩할 수 있습니다.

이를 통해 보다 광범위하게 수용되는 표준을 사용하고 다양한 플레이어를 사용하여 대규모의 글로벌 보기(large Scale Global Viewing)가 가능합니다.

Wowz Streaming Engine에서 WebRTC를 사용할 때의 이점들

미디어 서버로 Wowza Streaming Engine과 함께 WebRTC에 사용할 경우 몇 가지의 이점들이 있습니다.

이들 이점들을 보겠습니다.

1. 브라우저 기반 인코딩 스트리밍 사용자는 웹 브라우저와 Wowza Streaming Engine을 사용하여 추가 인코더 또는 플러그인을 필요로 하지 않고도 WebRTC로 인코딩된 스트리밍을 생성, 녹화 및 전송할 수 있습니다.

2. WebRTC 확장 및 피어 투 피어(Peer-to-Peer)

전통적으로 WebRTC는 확장성 측면에서 최악이라고 생각하고 있습니다. 외우자 스트리밍 엔진을 사용하면 피어 투 피어 커뮤니케이션을 넘어서 라이브 스트리밍을 많은 사람들에게 브로드캐스팅을 할 수 있습니다.

스트리밍을 확장하는 가장 좋은 방법은 외우자 스트리밍 엔진의 트랜스 코딩 기능을 사용하여 WebRTC 스트리밍을 표준 출력 형식으로 변환하는 것입니다. 그런 다음 Apple HLS, Adobe HDS 또는 MPEG-DASH를 통해 스트리밍을 전달할 수 있으므로 스트리밍을 확장하고 더 많은 사람들에게 다가갈 수 있습니다.

대기시간이 짧은 스트리밍을 제공해야 할 경우, 외우자 스트리밍 엔진을 사용하고 스트리밍 대상 기능(Destination)을 사용하여 외우자 스트리밍 클라우드 Ultra Low Latency를 이용하여 전송하는 것이 좋습니다.

3. 대역폭 최적화 화상회의

외우자 스트리밍 엔진을 사용하면 WebRTC를 통한 여러 사람이 참여할 수 있는 화상회의를 쉽게 설정할 수 있습니다. 또한 각 사용자가 설정하고 유지해야 하는 연결 수를 최소화하여 대역폭을 최적화하면서 어러 사용자 간에 대기시간이 적은 세션을 가능하게 합니다.


와우자 스트리밍 엔진 할인 이벤트

1. 할인율: 17%

2. 금액:

* 와우자 스트리밍 엔진 프로 (1년) 온라인: $1,995 --> $1,655.85 ($339.15 | 약 40만원 할인)

* 쿠폰: isahid

* 구매링크:


1. 할인율: 17%

2. 금액:

* 와우자 스트리밍 엔진 프로 (1년) 오프라인(USB): $2,995 --> $2,570.85 ($424.15 | 약48만원 할인)

* 쿠폰: okusum

* 구매링크

William Lee (이준호)

Video Evangelist, Wowza Media Systems

Member, SRT(Secure Relaible Transport) Forum

Co-Organizer, Leveraging the technologies in Education

Former CEO, Widermax

CEO and President, PLEDO

문의: woliver@naver.com