질문과 답변
Last updated
Was this helpful?
Last updated
Was this helpful?
HLS는 HTTP Live Streaming 의 약자로 Apple 에서 만든 비디오 전송 프로토콜
크게 playlist 인 m3u8 파일과 각각의 미디어 세그멘트 파일로 구성된다
live streaming 시 client player 는 m3u8 playlist 에 명시되어있는 미디어 세그멘트 파일을 요청해 재생하며 동시에 m3u8 playlist 도 주기적으로 요청해 갱신한다
m3u8 파일 내용 예
HLS 에서 송출자가 보낸 영상을 시청자가 보기 위해선 위 사진에서 볼 수 있듯이 서버에서 미디어 세그멘트 파일을 생성하고, m3u8 에 업데이트 한 후 시청 클라이언트가 갱신된 m3u8 파일을 받아가 생성되니 미디어 세그멘트 파일을 요청해야 한다
그만큼 송출/시청 영상 사이의 딜레이가 발생 (player buffer 와 같은 다른 지연 요소들을 고려하지 않더라도)
HLS 에서의 송출/시청 간 딜레이를 줄여보기 위해 개선된 프로토콜
아직 완성되지 않은(file stream 이 아직 닫히지 않은) 미디어 세그멘트를 m3u8 에 추가
아직 만들어지지 않은 (file stream 이 아직 생성되지 않은) 미디어 세그먼트를 m3u8 에 추가
client 는 생성중인 미디어 세그멘트 파일을 transfer-encode : chunked 를 통해 실시간으로 생성되는 파일을 받아와 미디어 세그멘트 파일 생성을 기다리는 시간만큼 딜레이를 줄일 수 있다
https://github.com/google/brotli