HTTP 라이브 스트리밍이란? (HLS)

나른한 개발자·2022년 6월 1일
1

HTTP 라이브 스트리밍, HTS란?

HTTP 라이브 스트리밍이란 HTTP를 전송 채널로 하는 라이브 스트리밍 프로토콜이다.

💡 라이브 스트리밍
실시간으로 영상물을 재생하는 것


구성 - m3u8, ts

HLS에서는 m3u8과 ts를 사용한다. m3u8은 영상 재생을 위한 메타정보이며, ts는 잘개 쪼개 놓은 미디어 파일이라고 보면 된다.

m3u8은 Master Playlist, Media Playlist로 나뉘는데, 마스터 플레이리스트는 명시된 속성 별 미디어 플레이리스트의 주소를 가지고 있고, 미디어 플레이리스트는 플레이리스트의 타입과, 잘려진 미디어 파일의 단위, 각각의 미디어 조각들에 대한 url이 담겨있다. 처음에는 마스터 플레이리스트로 요청을 보내어 조회할 미디어 플레이리스트를 특정하고, 미디어 플레이리스트의 메타 정보를 통해 재생 시간 별로 ts파일을 서버에 요청을 하는 식이다.


위 사진은 마스터 플레이리스트를 나타낸 것이다. 필수 속성인 BANDWIDTH와 선택 속성인 RESOLUTION, CODECS가 적혀있고, 해당 속성들에 대한 미디어 플레이리스트 (또 다른 .m3u8파일)의 url이 명시되어 있다.


미디어 플레이리스트이다. TARGETDURATION은 잘려진 미디어 조각들의 단위이며, MEDIA-SEQUENCE는 시작 파일 url의 위치를 나타낸다. 그 이하로는 읽어야 하는 미디어 파일 조각들의 url이 인덱싱되어 나타나 있다.


Adaptive Bitrate Streaming

이러한 구조의 HLS을 사용하면 Adaptive Bitrate Streaming을 구현할 수 있다. 대역폭 별로 화질이 다른 미디어 파일을 읽도록 하여 네트워크 상태가 좋고 나빠짐에 따라 유동적으로 화질이 달라지는 것이다. 사용자 입장에서는 영상 시청 중 네트워크 상태가 나빠져도 끊김 없이 영상 시청을 할 수 있다.



참고
HTTP Live Streaming
HTTP Live Streaming (HLS)
동영상 플랫폼 이해하기 (1) - HLS

profile
Start fast to fail fast

0개의 댓글