동영상 전송 프로토콜

탁재민 2024. 5. 2. 14:39

실시간 통신 프로토콜

  • RTMP (Real-Time Messaging Protocol):
    • 어도비 시스템즈에서 개발하여 초기 인터넷 스트리밍에 널리 사용되었던 프로토콜
    • 라이브 스트리밍, 실시간 오디오, 비디오 및 데이터 전송에 주로 사용
    • 저지연 통신을 제공하며, 양방향 통신도 가능
  • RTSP (Real Time Streaming Protocol)
    • IETF(Internet Engineering Task Force)가 개발한 스트리밍 프로토콜
    • CCTV 및 IP 카메라 스트리밍에 주로 사용

적응형 스트리밍 프로토콜

    • HLS (HTTP Live Streaming): 비디오와 오디오를 여러 작은 파일로 분할하여 네트워크 상황에 맞게 스트림의 품질을 조정
      1. 비디오 인코딩 및 세그먼트화: 원본 비디오를 여러 다른 품질로 인코딩 후 2~10초 길이의 작은 파일로 세그먼트화
      2. M3U8 플레이리스트 생성: 각 비디오 품질에 대해 하나의 M3U8 플레이리스트 파일(세그먼트 파일 위 URL 목록 포함)이 생성
      3. 컨텐츠 전송 및 접근: HTTP 프로토콜, CDN 통해 배포
      4. 클라이언트 측 동적 적응 스트리밍: 플레이리스트 다운 후 품질을 선택, 세그먼트를 순차적으로 다운로드하며 재생
    • MPEG-DASH (Dynamic Adaptive Streaming over HTTP): ISO 표준 적응형 스트리밍 기술로, HLS와 유사
    • 차이점
      • 인코딩 형식: 
        • MPEG-DASH: 어떠한 인코딩 표준도 사용 가능
        • HLS: H.264 또는 H.265를 사용
      • 장치 지원: Apple은 HLS만 지원, iPhone, MacBook 등 Apple 제품은 MPEG-DASH 재생 불가
      • 세그먼트 길이:
        • HLS: 기본 길이 6초, 기본값에서 조정 가능.
        • MPEG-DASH: 통상적으로 2-10초, 최적 길이는 2-4초
      • 표준화:
        • MPEG-DASH: 국제 표준
        • HLS: Apple에 의해 개발되었으며 광범위한 지원을 받고 있지만 국제 표준으로 게시되지는 않음

브라우저 간 실시간 통신

  • WebRTC (Web Real-Time Communication)
    • 웹 브라우저 간에 오디오, 비디오, 데이터를 피어 투 피어 방식으로 직접 교환할 수 있게 하는 기술
    • 화상 회의, 실시간 비디오 채팅, 파일 공유, 실시간 게임 등 다양한 실시간 통신 기능에 활용
    • 세그먼트 조합 과정 없이 영상을 송출하기 때문에 latency가 매우 낮음
    • JavaScript API 제공