나의 개발일지

HLS | DASH | RTSP 용어 정리 본문

카테고리 없음

HLS | DASH | RTSP 용어 정리

heew0n 2024. 5. 2. 23:20

 

HLS 

HTTP 라이브 스트리밍 또는 HLS는 인터넷을 통해 소비자에게 미디어 콘텐츠를 제공하는 데 사용되는 스트리밍 프로토콜이다. 널리 사용되는 스트리밍 프로토콜이며 비디오 콘텐츠 스트리밍에 널리 사용된다.

 

HLS의 주요 특징

 

1. 적응형 비트 전송률 스트리밍(Adaptive Streaming) : HLS는 네트워크 상태에 따라 동적으로 비트레이트를 변경하여 최적의 영상 품질을 제공한다. 서버는 다양한 해상도와 비트레이트의 동영상 세그먼트를 저장하고, 클라이언트는 현재의 네트워크 상태에 적합한 세그먼트를 선택하여 재생한다.

 

비트 전송률 스트리밍(ABR) 적응 스트리밍 프로토콜 중에서 눈에 띄는 HLS의 기능입니다. 스트리밍 도중에도 네트워크 상태에 따라 비디오 품질을 조정할 수 있는 기능입니다. 따라서 최종 사용자의 네트워크 연결이 변동하더라도 비디오는 계속 재생됩니다. 연결이 느려지면 낮은 품질로, 연결이 다시 높아지면 최대 품질로 재생됩니다.

 

2. 라이브 스트리밍 및 VOD 지원 : HLS는 라이브 스트리밍과 비디오 온-디맨드 모두를 지원한다. 라이브 스트리밍의 경우,

실시간으로 생성되는 세그먼트를 클라이언트에 전송하며, VOD의 경우 이미 저장된 세그먼트를 전송한다.

 

3. 널리 지원되는 형식 : HLS는 Ios, Android, macOs, Windows 등 다양한 플랫폼에서 지원된다. 또한 대부분의 웹 브라우저에서도 지원되며, HTML5 Video 태그를 사용하여 플레이할 수 있다.

DRM(Digital Rights Management)지원 : HLS는 FairPlay Streaming, Widevine, PlayReady 등 다양한 DRM 기술을 통해 콘텐츠의 저작권 보호를 지원한다.

 

HLS의 단점


이점에도 불구하고 HLS는 완벽하지 않으며 모든 스트리밍 요구 사항을 충족하는 단일 크기 솔루션이 아닙니다. 다음은 HLS 스트리밍의 두 가지 일반적인 단점입니다.

높은 대기 시간: 다른 스트리밍 프로토콜에 비해 HLS는 대기 시간이 더 깁니다. 이는 시청자가 HLS 스트리밍 콘텐츠를 소비할 때 경험하는 최대 30초 이상의 지연이 있음을 의미합니다.
느린 인터넷 속도: HLS 스트리밍은 지연 시간이 상대적으로 높기 때문에 비디오 게임이나 스포츠 방송과 같이 빠른 라이브 스트리밍이 필요한 사용 사례에는 적합하지 않을 수 있습니다.
자세히 보기:

 

HLS 스트리밍을 구현하기 위해서는 서버와 클라이언트 모두 해당 프로토콜을 지원해야하 합니다. 서버에서는 동영상을 세그먼트로 분할하고, M3U8 플레이리스트 파일을 생성하여 클라이언트에 전달해야 하며, 클라이언트에서는 이를 해석하여 영상을 재생해야합니다.

 

 

HLS의 작동원리

 

 

1. 서버: HLS 스트리밍은 미디어 파일이 저장된 서버(주문형 스트리밍의 경우)나 스트리밍이 제작된 서버(라이브 스트리밍의 경우)에서 시작된다. HLS는 HTTP에 기반하기 때문에 모든 일반 웹 서버에서 스트리밍을 시작할 수 있다.

서버에서 두 가지 주요 프로세스가 진행된다.

(1) 인코딩: 비디오 데이터의 포맷을 다시 설정하여 모든 장치가 데이터를 인식하고 해석할 수 있게 합니다. HLS 은 H.264나 H.265 인코딩을 사용해야 한다.
(2) 조각화: 비디오는 몇 초 길이의 세그먼트로 나뉜다. 세그먼트 길이는 다양하지만 기본 길이는 6초다(2016년까지는 10초)
  - 비디오를 세그먼트로 나누는 것과 더불어 HLS는 비디오 세그먼트의 인덱스 파일을 만들어 세그먼트의 순서를 기록한다.
  - HLS는 또한 480p, 720p, 1080p 등의 다양한 품질로 여러 세트의 세그먼트를 복제한다.

 

2. 배포: 인코딩된 비디오 세그먼트는 클라이언트 장치가 스트리밍을 요청하면 인터넷을 통해 클라이언트 장치로 전송된다. 일반적으로 CDN(콘텐츠 전송 네트워크)이 여러 지역으로 스트리밍을 배포하는 데 도움을 준다. CDN도 스트리밍을 캐시하여 클라이언트에 더 신속히 전송할 수 있다.

3. 클라이언트 장치: 클라이언트 장치는 스트리밍을 받고 비디오를 재생하는 사용자 스마트폰이나 노트북 같은 장치이다. 클라이언트 장치는 인덱스 파일을 참조하여 비디오를 순서대로 조합하고 필요에 따라 품질을 높이거나 낮춘다.

 

 


 

 

DASH 란?


Dynamic Adaptive Streaming over HTTP의 줄임말로 HTTP 프로토콜을 통해 동적으로 적응형 스트리밍을 가능하게 하는 기술이다. 온라인 미디어 스트리밍에서 가장 큰 문제 중 하나는 네트워크 상태에 따라 스트리밍 품질이 떨어지는 것이다. DASH는 이러한 문제를 해결하기 위해 개발되었다.

DASH는 네트워크 상태에 따라 스트리밍 콘텐츠의 비트레이트를 자동으로 조정하여 최적의 스트리밍 품질을 유지한다. 이는 네트워크 상태가 좋을 때는 높은 품질의 스트리밍을, 네트워크 상태가 나쁠 때는 낮은 품질의 스트리밍을 제공하여 스트리밍 중 끊김이나 버퍼링 문제를 최소화한다.

위의 기능을 사용하는 곳이 대표적으로 유튜브이다. 유튜브에서의 동영상을 틀면 네트워크 상태에 따라 (자동)으로 화질을 선택해 영상을 받게 된다.

 

 

장점


- 네트워크 상태에 따라 스트리밍 품질을 자동으로 조정하여 스트리밍 중 끊김이나 버퍼링 문제를 최소화
- HTTP 프로토콜을 사용하여 스트리밍이 가능하므로 프록시, 파이어웨이 등의 제약 없이 스트리밍이 가능
- 다양한 디바이스에서 재생이 가능하므로 호환성이 높음

 

 

단점


- 스트리밍 서버와 클라이언트 모두 DASH에 대한 지원이 필요함.
- 처음 설정하는 것이 복잡하고 높은 전송률이 필요하며, 네트워크 상태가 좋지 않은 경우 스트리밍 품질이 떨어질 수 있다.