Streaming Service에 적용 가능한 핵심 기술 조사
Streaming Service에 적용 가능한 핵심 기술 조사

Streaming Service에 적용 가능한 핵심 기술 조사

Tags
Node.js
Web Dev
Projects
Published
January 26, 2024
Author
gozneokhan

Streaming Protocol 기술 선정에 앞서서

소비자의 모바일 장치 및 스마트 TV를 통한 콘텐츠 스트리밍이 증가함에 따라 비디오 스트리밍 플랫폼 시장이 급속히 성장하고 있습니다. 90년대에는 주로 스포츠 생중계에 사용되던 비디오 스트리밍 프로토콜 기술이 발전하면서 플래시와 RTMP 기반 스트리밍이 주목을 받았습니다. 이후 YouTube와 Netflix 같은 플랫폼이 등장하면서 비디오 스트리밍은 우리의 주요 미디어 소비 방식 중 하나로 자리매김했습니다.
현재 비디오 스트림 시장은 계속해서 성장하며 원격 의료, 원격 학습, 가상 이벤트, 비디오 게임 스트리밍, 라이브 스트리밍 등 다양한 산업과 사용 사례에서 활용되고 있습니다. 이러한 발전에 따라 비디오 스트리밍 프로토콜의 옵션도 다양화되고 있습니다.

 

Video Streaming Protocol이란?

비디오 스트리밍 프로토콜은 데이터를 효율적으로 전송하기 위한 규칙의 집합으로, 비디오스트림을 작은 덩어리로 나누어 전송하는 역할을 합니다. 이때 코덱이 사용되어 중요하지 않은 정보를 삭제하여 전송 효율을 높이며, 컨테이너 형식은 전송 후 비디오 파일, 오디오 파일, 메타데이터 등을 저장하는 방식을 결정합니다. 이러한 프로토콜과 형식들은 비디오 스트리밍이 원활하게 이루어질 수 있도록 합니다.

 

다양한 유형의 Protocol과 이해

비디오 스트리밍 프로토콜은 사용자가 선호하는 스트리밍 장치와의 호환성을 고려할 때 중요한 역할을 합니다. 다양한 프로토콜은 각각의 목적과 독특한 장점을 제공하며, 이를 세 가지 주요 범주로 나눌 수 있습니다.

레거시 프로토콜

레거시 프로토콜은 기본 인증을 활용하여 이메일 클라이언트, 캘린더, 웹 서비스 등에 연결됩니다. 주로 고전적이고 안정된 사용을 위한 목적으로 활용됩니다.

HTTP 기반 프로토콜

HTTP를 기반으로 하는 프로토콜은 요청-응답 구조를 활용하여 클라이언트와 서버 간에 Hypertext 메시지를 주고받습니다. 이를 통해 사용자는 웹 리소스와 상호 작용할 수 있으며, 주로 웹에서의 스트리밍에 활용됩니다.

최신 프로토콜

최신 프로토콜은 주로 오픈 소스로 제공되며, 이전 비디오 스트리밍 프로토콜에서 발생한 문제를 해결하기 위한 혁신적인 기술을 채택합니다. 아직 널리 지원되지 않을 수 있지만, 앞으로의 기술 발전에 대한 대비로 주목받고 있습니다.

일반적인 Streaming Protocol

#1. HTTP Live Streaming(HTTP 기반)

HLS는 현재 가장 인기 있는 스트리밍 프로토콜 중 하나로, Apple이 iPhone에서 Flash를 대체하기 위해 개발했습니다. 거의 모든 장치와 호환되어 데스크톱 브라우저, 스마트 TV, 셋톱박스, Android 및 iOS 모바일 장치, 심지어 HTML5 비디오 플레이어에서 사용 가능합니다. ABR(적응형 비트 전송률 스트리밍)을 통해 명확한 비디오 품질을 제공하지만, 주요 단점은 상대적으로 높은 대기 시간입니다.

장점

  • 호환성: 거의 모든 인터넷 지원 장치와 운영 체제에서 스트리밍 가능.
  • 보안: 안전한 스트리밍 기술 활용.
  • 품질: ABR 기술을 활용하여 고품질 비디오 스트림 제공.

단점

  • 대기 시간: 다른 프로토콜에 비해 상대적으로 높은 대기 시간으로 인해 비디오 품질 저하.
  • 수집 어려움: 호환 인코더의 비용이 높아 수집이 어려운 경우가 있음.

적용 사례

  • 라이브 이벤트 스트리밍
대규모 이벤트나 콘서트의 라이브 중계에 널리 사용됩니다.
  • 온라인 교육 플랫폼
원격 강의 및 온라인 교육에서 안정적인 비디오 스트리밍에 활용됩니다.
  • 미디어 및 엔터테인먼트 서비스
온디맨드 동영상 플랫폼에서 다양한 디바이스에서의 안정적인 스트리밍을 지원합니다.
  • 커뮤니케이션 및 웹 캐스팅
비즈니스 커뮤니케이션 및 화상 회의에 사용되어 원격 협업을 촉진합니다.
HLS는 대중적이지만 낮은 대기 시간을 필요로 하는 특정 사용 사례에는 적합하지 않을 수 있습니다. 예를 들어, 실시간 상호작용이 중요한 게임 스트리밍과 같은 경우에는 대안 프로토콜을 고려할 필요가 있습니다.

#2. MPEG-DASH(HTTP 기반)

MPEG-DASH는 HLS 표준의 대안으로 MPEG( Moving Pictures Expert Group )에서 개발된 프로토콜입니다. 이는 오픈 소스 표준으로, 모든 오디오 또는 비디오 코덱에 대해 고도로 사용자 정의할 수 있습니다. 마찬가지로 MPEG-DASH도 적응형 비트 전송률 스트리밍을 지원하여 시청자가 네트워크에서 처리할 수 있는 최고 품질의 비디오를 수신할 수 있습니다.

장점

  • 적응성
ABR을 활용하여 다양한 인터넷 속도와 조건에서 높은 비디오 품질로 스트리밍 가능.
  • 사용자 정의
오픈 소스로, 사용자가 스트리밍 요구 사항에 맞게 맞춤 설정 가능.

단점

  • 제한된 호환성
Apple 장치/iOS와 호환되지 않아 방송 범위가 제한됨.
  • 더 이상 사용되지 않음
한때 인기가 있었지만 제한 사항으로 인해 다양한 다른 고급 프로토콜과 경쟁이 어려워짐.

적용 사례

Netflix는 MPEG-DASH를 활용한 성공적인 사례 중 하나입니다. 이 동영상 스트리밍 서비스는 다양한 디바이스 및 환경에서 사용자에게 최상의 환경을 제공하기 위해 MPEG-DASH를 채택했습니다.
  • 다양한 디바이스 지원
Netflix는 다양한 디바이스에서 서비스를 제공하고, MPEG-DASH를 사용하여 각 디바이스에 최적화된 비디오 스트리밍을 실현하고 있습니다.
  • 적응형 비트레이트
MPEG-DASH의 적응형 비트 전송률 스트리밍 기능을 활용하여 네트워크 조건에 맞게 비디오 품질을 동적으로 조절하여 최상의 시청 경험을 제공합니다.
  • 개인화된 경험
Netflix는 사용자 맞춤형 콘텐츠 추천 및 다양한 화질/해상도 설정을 통해 MPEG-DASH를 활용하여 사용자에게 최적화된 스트리밍 환경을 제공하고 있습니다.
이를 통해 MPEG-DASH는 다양한 디바이스에서의 스트리밍에 성공적으로 적용되어 사용자들에게 최상의 시청 경험을 제공하고 있습니다.

#3. WebRTC(Modern Protocol 기반)

WebRTC는 실시간 대기 시간으로 시청자에게 비디오 스트림을 제공하는 오픈 소스 프로젝트입니다. 초기에는 텍스트 기반 채팅 앱과 VoIP 사용을 위해 개발되었으나 Google에서 인수한 이후, 영상 채팅 및 회의 앱에서 널리 사용되고 있습니다. WebRTC 프로토콜은 P2P( Peer-to-Peer Streaming )에 의존하여 대기 시간이 짧은 스트리밍 솔루션을 제공합니다. Google Meet, Discord, Houseparty, WhatsApp, 그리고 Facebook Messenger와 같은 많은 인기 앱에서 활용되고 있습니다.

장점

  • 유연성
WebRTC는 오픈 소스로, 개발자가 특정 스트리밍 요구 사항에 맞게 사용자 정의할 수 있는 충분한 유연성을 제공합니다.
  • 실시간 대기 시간
실시간 대기 시간이 있는 스트리밍을 지원하여 방송된 비디오가 높은 품질로 실시간으로 시청자의 화면으로 전송됩니다.

단점

  • 제한된 지원
WebRTC 비디오 스트리밍 프로토콜은 최근에 웹 표준으로 채택되었기 때문에 스트리밍 설정과 호환성 문제에 직면할 수 있습니다.

적용 사례

  • 온라인 비즈니스 회의
많은 비즈니스 및 업무 관련 플랫폼에서 WebRTC를 활용하여 온라인 회의 및 화상 회의 기능을 제공합니다. 이를 통해 전 세계의 팀원들이 실시간으로 소통하고 협업할 수 있습니다.
  • 영상 채팅 애플리케이션
WebRTC는 영상 통화 및 채팅 애플리케이션에서 자주 사용됩니다. 사용자들은 안정적이고 대기 시간이 짧은 환경에서 친구들이나 가족과 영상 통화를 할 수 있습니다.
  • 온라인 교육 플랫폼
원격 교육 및 튜터링 서비스에서는 WebRTC를 활용하여 학생들과 교사 간에 양방향 영상 통화 및 화면 공유가 가능한 환경을 제공합니다.
  • 소셜 미디어 라이브 스트리밍
일부 소셜 미디어 플랫폼은 WebRTC를 사용하여 실시간으로 사용자들이 자신의 콘텐츠를 라이브 스트리밍하고 시청할 수 있는 서비스를 제공합니다.
  • 의료 의사 소통
의료 분야에서는 원격 상담 및 환자와 의사 간의 실시간 대화에 WebRTC를 적용하여 응급 상황이나 원격 진료 등에 활용하고 있습니다.
WebRTC의 특성상 실시간 대기 시간이 짧고 안정적인 품질을 제공하는 데에 초점이 있어, 다양한 분야에서 적용 가능하며 특히 실시간 커뮤니케이션에 필요한 서비스에서 높은 성능을 발휘합니다.

#4. SRT(Modern Protocol 기반)

SRT(Secure Reliable Transport)는 Haivision이 개발한 오픈 소스 표준으로, 스트리밍 기술 제공 업체에서 널리 사용됩니다. 이 프로토콜은 보안, 신뢰성, 호환성, 그리고 낮은 대기 시간 스트리밍으로 잘 알려져 있습니다. 특히, SRT Alliance 회원들이 선호하는 프로토콜 중 하나로 자리 잡고 있습니다.

장점

  • 다양한 코덱 호환성
SRT 프로토콜은 특정 코덱에 의존하지 않으므로, 개발자들은 원하는 오디오 및 비디오 코덱을 선택하여 사용할 수 있습니다.
  • 보안 및 개인 정보 보호
방송사들이 안전하게 스트리밍 콘텐츠를 제공하고 시청자를 보호하기 위한 최고 수준의 보안 및 개인 정보 보호 도구를 제공합니다.
  • 호환성
SRT는 다양한 장치 및 운영 체제에서 사용 가능하며, 대부분의 인터넷 지원 장치에 스트림을 전달할 수 있어 높은 호환성을 자랑합니다.
  • 낮은 대기 시간
오류 수정 기술의 지원으로 SRT 스트리밍 프로토콜은 낮은 대기 시간 스트리밍을 실현합니다.

단점

  • 표준화 문제
SRT는 표준화된 프로토콜이 아닙니다. 이는 다른 비디오 스트리밍 표준과 호환성 문제를 야기할 수 있으며, 향후 표준화에 대한 요구가 있을 수 있습니다.
  • 학습 곡선
기존에 다른 스트리밍 프로토콜을 사용하던 사용자들이 SRT로 전환하는 데는 학습 곡선이 따릅니다. 새로운 사용자들에게는 처음에 익숙하지 않을 수 있습니다.
  • 미래 지향적인 기술
SRT는 현재에는 효과적이지만, 미래에 새로운 기술이 등장할 경우 적응하기 어려울 수 있습니다. 향후 기술의 발전에 대응하기 위해 업데이트 및 개선이 필요할 것입니다.
  • 네트워크 환경에 따른 취약성
SRT의 신뢰성은 네트워크 환경에 매우 의존적입니다. 불안정한 또는 낮은 대역폭의 네트워크에서는 성능에 제약이 있을 수 있습니다.

적용 사례

  • 라이브 이벤트 전송
대규모 이벤트나 스포츠 중계에서 안정적이고 안전한 스트리밍을 제공하여 시청자들에게 최고의 경험을 제공합니다.
  • 보도 및 뉴스 채널
뉴스 및 보도 기관은 SRT를 사용하여 안정적이고 안전한 방송을 보장하며, 현장에서의 라이브 중계에 활용됩니다.
  • 비디오 컨퍼런싱
기업 및 교육 분야에서는 SRT를 활용하여 고품질의 비디오 컨퍼런싱을 구현하고, 실시간 소통에 활용됩니다.
  • OTT 플랫폼
온디맨드 동영상 서비스에서는 SRT를 통해 안정적이고 보안된 스트리밍을 제공하여 사용자에게 최상의 시청 경험을 제공합니다.
SRT는 안전하고 신뢰성 있는 스트리밍을 위한 현대적인 솔루션으로, 다양한 산업 분야에서 널리 사용되고 있습니다.

#5. RTMP(Legacy Protocol 기반)

RTMP(Real-Time Messaging Protocol)는 Adobe에서 개발한 레거시 프로토콜로, 주로 스트리밍 서버와 Adobe Flash Player 간에 오디오 및 비디오 파일을 전송하기 위해 사용되었습니다. 그러나 Flash의 폐지로 인해 사용 사례가 변경되어 기존의 시청자 대상 콘텐츠 전달에서 RTMP를 지원하는 인코더를 통한 라이브 스트림 수집으로 전환되었습니다.

장점

  • 낮은 대기 시간
불안정한 인터넷 연결에서도 라이브 비디오 스트림이 안정적으로 전송되어 시청자에게 최적의 경험을 제공합니다.
  • 적응성
RTMP 스트림은 적응형이며 중간 서버에서 호스팅되어 시청자가 피드의 일부를 건너뛰거나 되감거나 재개할 수 있습니다.
  • 유연성
다양한 미디어 형식을 하나의 패키지로 통합할 수 있어 MP3, AAC, MP4, FLV, F4V 등 다양한 형식의 스트리밍을 지원합니다.

단점

  • 제한된 지원
Flash의 사용이 줄어들면서 HTML5 플레이어에서 RTMP를 지원하는 경우가 감소하고 있습니다.
  • 낮은 대역폭
RTMP는 대역폭 문제에 취약하여 라이브 스트림 중단으로 이어질 수 있는 부정적인 영향을 미칠 수 있습니다.

적용 사례

  • 라이브 스트리밍 플랫폼
Twitch: 초기에는 Flash와 RTMP를 사용하여 라이브 스트리밍을 제공했으며, 현재는 HTML5와 HTTP 프로토콜로의 전환을 진행하고 있습니다.
  • 웹캠 및 화상 통화 애플리케이션
Adobe Connect: 화상 회의 및 웨비나 플랫폼에서 사용되며, RTMP를 통해 실시간 비디오 및 오디오 스트리밍을 제공합니다.
  • 온라인 교육 및 원격 강의
Virtual Classroom Platforms: 일부 가상 교실 플랫폼에서는 RTMP를 통한 실시간 강의 및 화상 교육을 지원합니다.
  • 게임 스트리밍 서비스
Facebook Gaming: 일부 사용자는 게임 스트리밍에 RTMP를 사용하여 자신의 게임 플레이를 전송하고 있습니다.
  • 라이브 이벤트 중계:
콘서트 및 이벤트 중계: 일부 라이브 이벤트에서는 RTMP를 통해 고품질의 실시간 스트리밍을 제공하여 온라인 관객에게 전달합니다.
RTMP는 특히 과거에는 널리 사용되었으나, 현재는 대부분의 플랫폼이 HTML5 및 HTTP 기반의 프로토콜로 전환하고 있습니다. 이는 더 높은 보안성과 호환성을 제공하기 때문에 새로운 스트리밍 서비스 및 플랫폼에서는 RTMP의 사용이 감소하고 있습니다.

#6. RTSP(Legacy Protocol 기반)

RTSP(Real-Time Streaming Protocol)는초기에 엔터테인먼트를 고려하여 개발된 레거시 프로토콜로, 미디어 세션 설정과 제어를 목적으로 합니다. 주로 TV와 영화와 같은 엔터테인먼트 콘텐츠를 엔드포인트 간에 전송합니다. RTSP는 짧은 대기 시간 스트리밍을 지원하지만, 대부분의 장치 및 브라우저와의 호환성이 낮아 전용 서버를 통한 저지연 스트리밍에 주로 사용됩니다.

장점

  • 세그먼트 스트리밍
RTSP 스트림을 통해 시청자는 전체 비디오를 다운로드하지 않고도 콘텐츠를 시청할 수 있습니다.
  • 고도로 사용자 정의 가능
TCP 및 UDP와 같은 다양한 프로토콜을 사용하여 개발자가 자체 비디오 스트리밍 애플리케이션을 만들 수 있습니다.

단점

  • 낮은 인기도
대부분의 비디오 플레이어와 스트리밍 서비스에서 RTSP 스트리밍을 지원하지 않아 인기가 낮습니다.
  • HTTP 비호환
RTSP를 직접 HTTP를 통해 스트리밍하기 어려워 웹 브라우저에서 사용이 제한적입니다.

적용 사례

RTSP는 영상 감시 및 CCTV 시스템에서 표준적으로 사용되며, 전용 서버를 통해 선택된 소수의 청중에게 저지연 스트리밍을 제공하는 데 주로 활용됩니다.

#7. TCP(Internet Protocol 기반)

TCP(전송 제어 프로토콜)는 초기에 개발된 네트워킹 프로토콜 중 하나로, HTTP, 이메일, FTP 등과 같은 핵심 인터넷 애플리케이션에서 널리 사용됩니다. 안정적인 데이터 전송을 위해 빠른 전송보다 정확한 전송을 우선시합니다. 데이터의 안정성은 재전송을 통한 긍정적인 확인을 사용하여 보장됩니다. RTMP, RTSP, HLS 및 MPEG-DASH와 호환됩니다.

장점

  • 높은 신뢰성
신뢰할 수 없는 네트워크에서 안정적인 프로토콜을 만듭니다.
  • 제한된 오류
흐름 제어 및 데이터 승인을 사용하여 광범위한 오류 검사 메커니즘을 제공합니다. 데이터 패킷이 수신자의 IP 주소에 순서 없이 도착하거나 조각이 누락된 경우에도 프로토콜은 보낸 사람과 통신하여 각 조각이 원래 있어야 할 곳에 도착하는지 확인합니다.

단점

  • 느린 속도
재전송 및 데이터 패킷 재정렬로 인해 전송 속도가 느려질 수 있습니다.
  • 헤비 프로토콜
데이터를 보내기 전에 세 개의 패킷을 필요로 하는 소켓 연결 설정이 필요합니다.

적용 사례

  • 웹 브라우징
HTTP 프로토콜을 통해 웹 페이지를 불러오는 데 사용됩니다.
  • 이메일 전송
SMTP 프로토콜을 사용하여 이메일을 안정적으로 전송합니다.
  • 파일 전송
FTP 등을 이용하여 파일을 안전하게 전송합니다.

#8. UDP(Internet Protocol 기반)

UDP(사용자 데이터그램 프로토콜)는 최소한의 메커니즘을 갖춘 비연결 프로토콜로, 빠른 전송과 경량성이 특징입니다. 높은 전송 속도를 제공하며 연결 기반이 아니기 때문에 실시간 애플리케이션에 적합합니다. SRT, WebRTC, RTSP 및 RTP와 호환됩니다.

장점

  • 속도
도착 순서대로 데이터를 처리하므로 빠른 전송이 가능합니다.
  • 경량 프로토콜
연결 추적, 메시지 순서 등이 없어 경량 프로토콜로 간주됩니다.
  • 연결 없음
여러 클라이언트가 동시에 데이터를 보낼 수 있어 유연합니다.

단점

  • 부정확성
데이터 패킷의 누락이나 순서가 잘못되면 라이브 스트리밍 중에 영향을 미칠 수 있습니다.
  • 기본 오류 검사
오류가 있는 패킷은 삭제되며 복구를 시도하지 않습니다.

적용 사례

  • VoIP
음성 통화에 사용되며 낮은 대기 시간이 중요한 응용 프로그램에 적합합니다.
  • 온라인 게임
빠른 전송이 필요한 실시간 게임에서 사용됩니다.
  • 라이브 비디오 스트리밍
높은 전송 속도와 대기 시간이 적은 특성이 필요한 서비스에 활용됩니다.

#9. SIP( Signaling Protocol 기반 )

SIP(세션 시작 프로토콜)은 IP 장치 간의 실시간 통신을 시작, 유지, 수정 및 종료하는 데 사용되는 신호 프로토콜입니다. 음성 통화, 화상 회의, 인스턴트 메시징 및 미디어 배포를 지원하며, 사용자 정의 가능하고 유지 관리가 쉽습니다.

장점

  • 유연성
다양한 세션 유형 및 미디어에 대한 독립성을 제공합니다.
  • 사용자 정의
개방형 표준으로 다양한 기능을 지원하며 애플리케이션을 사용자 정의할 수 있습니다.
  • 쉬운 유지 관리
텍스트로 된 SIP 메시지로 인해 문제 해결이 용이합니다.

단점

  • 신규 및 틈새 시장
이해하는 데 시간이 필요한 상대적으로 새로운 프로토콜입니다.
  • 발 진행 중
여전히 발전 중이며 독점 프로토콜이 존재합니다.

적용 사례

  • 음성 통화 및 화상 회의
실시간 통신을 위해 SIP가 널리 사용됩니다.
  • 인스턴트 메시징
실시간 메시징 서비스에서 SIP가 활용됩니다.
  • 미디어 배포
다양한 미디어를 효과적으로 관리하는 데 사용됩니다.

Streaming Protocol 선택 시 고려 사항

비디오 스트리밍 프로토콜을 선택할 때 주요 고려 사항은 호환성, 지연 시간, 개인정보 보호 및 보안, 적응형 비트레이트, 그리고 비용입니다. 각 요소에 따라 다양한 프로토콜이 적합할 수 있습니다.
1. 호환성
여러 장치 및 플랫폼과의 호환성은 콘텐츠에 대한 액세스 가능성을 높입니다. 이러한 측면에서 HLS 프로토콜은 광범위한 장치 지원으로 인해 높은 호환성을 제공합니다.
2. 지연 시간
스트리밍 서비스의 핵심은 시청자에게 빠르게 콘텐츠를 전달하는 것입니다. HLS는 광범위한 스트리밍에는 용이하지만, 지연 시간이 중요한 경우 SRT나 WebRTC와 같은 프로토콜을 고려할 수 있습니다.
3. 개인정보 보호 및 보안
민감한 정보를 다루는 산업에서는 안전한 스트리밍이 필수입니다. SRT 프로토콜은 동급 최고의 보안 기능을 제공하여 개인정보 보호에 강조를 둘 수 있습니다.
4. 적응형 비트레이트
네트워크 상태에 따라 비디오 품질을 조절하는 적응형 비트레이트는 사용자 경험을 향상시킵니다. 이 측면에서는 HLS나 MPEG-DASH와 같은 프로토콜을 고려할 수 있습니다.
5. 비용
예산 내에서 효율적인 선택을 위해 HTTP 서버를 사용하는 HLS나 MPEG-DASH 프로토콜이 비용 효율적인 솔루션으로 권장됩니다.
⇒ 균형 잡힌 스트리밍 솔루션으로는 HLS이 유리합니다.

Git Actions Build 실패 시 Log 보는 설정 방법
Git Actions Build 실패 시 Log 보는 설정 방법