효율적인 스트리밍을 위한 HLS 기술

효율적인 스트리밍을 위한 HLS 기술

작성자
태인태인
카테고리
📗 스터디
작성일
2023년 05월 13일
태그
Web
nodeJS
🚧
이 글은 성일고등학교 학급공동체 활동 보고서로서 조원들과 공동으로 작성되었습니다.

HLS 기술

HLS(HTTP Live Streaming)는 Apple이 개발한 스트리밍 기술이다. 이 기술은 HTTP 프로토콜을 이용하여 인터넷을 통해 영상과 오디오 데이터를 전송한다.
이 기술은 대부분의 브라우저와 장치에서 지원되기 때문에 널리 사용되고 있으며, 사용자의 인터넷 환경에 따라 최적화된 비트레이트로 스트리밍을 제공함으로써 사용자 경험을 개선할 수 있다. HLS는 현재 영상 스트리밍 분야에서 가장 인기 있는 기술 중 하나이다. 대부분의 장치와 브라우저에서 지원되며, HTTP 프로토콜을 사용하여 높은 확장성과 유연성을 제공하기 때문이다.
 

HLS 기술의 원리

HLS는 영상 파일을 작은 TS(TS stands for Transport Stream) 패킷으로 분할하고, 이를 연속적으로 전송함으로써 스트리밍을 구현한다. 각각의 TS 패킷은 HTTP로 전송되며, 서버 측에서는 이를 브라우저에서 재생할 수 있는 형식으로 변환하여 전송한다.
먼저 HLS에서 사용하는 확장자는 .m3u8과 .ts가 있는데, .m3u8은 스트리밍할 동영상을 분할한 파일(.ts 파일)들의 정보가 순차적으로 저장되어있는 파일이며 .ts는 분할된 동영상 파일을 의미한다. HLS 방식은 다음과 같은 과정으로 동작한다.
클라이언트에서 .m3u8 파일을 요청하면 서버는 .m3u8 파일을 응답한다.
클라이언트는 .m3u8 파일을 읽고, 재생 시간에 맞춰서 .ts 파일을 순차적으로 요청하고
서버는 .ts 파일을 응답한다.
 

HLS 기술의 장점

HLS의 장점으로는 스트리밍 서버가 필요하지 않다는 것이 있다. HTTP 프로토콜을 사용하기 때문에 일반적인 웹 서버를 사용하여 스트리밍을 제공할 수 있으며, 스트리밍 중간에 끊길 경우 이전에 전송된 TS 패킷들을 캐시하여 다시 재생할 수 있는 장점이 있다.
또한 HTTP를 사용하기 때문에다른 프로토콜을 사용하는 방식보다 도입 비용을 절약할 수 있다. 마지막으로 동영상의 화질을 동적으로 조절할 수 있어서 현재 네트워크 상태에 따라서 최적의 화질로 동영상을 제공할 수 있다.
 

HLS 기술의 단점

HLS의 단점으로는 첫째, 지연시간이 발생할 수 있다. HLS는 동영상을 작은 조각으로 나누어서 전송하기 때문에 사용자가 이 조각들을 모두 다운로드해야만 동영상을 재생할 수 있다. 이 과정에서 지연시간이 발생할 수 있기 때문에 실시간 스트리밍에 적합하지 않을 수 있다. 둘째, 동영상의 화질을 동적으로 조절하는 것은 좋은 기능이지만 이 과정에서 갑자기 화질이 바뀔 수 있어서 사용자 경험에 영향을 줄 수 있다. 마지막으로 HLS는 HTTP프로토콜을 사용하기 때문에 데이터가 암호화되지 않고 전송될 수 있어 보안에 취약할 수 있다.
 

실습

HLS 기술을 보다 실재적으로 이해하고자 node.js를 활용해 실습을 진행하였다.
notion image
위 코드는 영상을 약 10초씩 분할한 후 영상이 담긴 .ts 파일과 그 순서가 담긴 .m3u8을 생성하는 코드이다. 약 10분의 영상을 나누면  아래와 같은 결과를 확인할 수 있다.
notion image
이를 재생하는 웹페이지를 만들어 테스트해보면 다음과 같이 순서가 담긴 .m3u8 파일을 먼저 불러온 후 이에 따라 현재 재생중인 시간의 분할된 영상을 가져와 재생하는 것을 확인할 수 있다.
notion image
 

HLS 기술의 이용 사례

HLS기술은 우리가 사용하고 있는 거의 대부분의 동영상 스트리밍 사이트, 앱에 사용되고 있다. 가장 대표적으로는 우리가 평소에도 즐겨보는 유튜브, 넷플릭스와 같은 동영상 스트리밍 사이트에 사용되는 기술이 HLS이다. 또한 멜론, 플로, 애플뮤직과 같은 음악 스트리밍 서비스에도 HLS기술이 사용되고 있다.

HLS 기술의 필요성과 중요성

HLS기술이 대부분의 영상, 음악 스트리밍 서비스에 사용되고 있다고 하였는데 왜 그럴까? 그것은 HLS 기술의 특징 때문인데 HLS 기술은 영상과 음악을 한번에 전부 업로드 하는것이 아닌, 몇초씩 잘라서(대부분 10초) 업로드한다. 이것을 이해하기 쉽게 설명하자면 HLS기술이 없다면 우리가 10분짜리 동영상을 보기 위해서는 해당 영상을 전부 다운로드 받아야지만 영상이 재생되는것이다. 그러나 HLS는 10분짜리 영상을 부분씩 잘라서 업로드 시키므로 우리도 영상을 한 부분씩 다운로드 받아서 빠르게 영상을 재생할 수 있는 것이다.(와이파이나 데이터를 꺼도 몇초 동안은 영상이 재생되는 이유)
 
📗

댓글

guest