스트리밍 ( Streaming ) 용어 – HLS ( Http Live Streaming ) – Kollus Blog 
 Home TECHNOLOGY 스트리밍 ( Streaming ) 용어 – HLS ( Http Live Streaming ) 
 By KOLLUS 2014 / 05 / 15 	 2014 / 05 / 15 HLS ( Http Live Streaming ) , kollus , OVP , 스트리밍 ( Streaming ) , 온라인 비디오 플랫 폼 , 카테 노이드 , 콜러스 
 스트리밍 이 란 무엇 일까요 ? 
 스트리밍 ( streaming ) 이 란 인터넷 ( 네트워크 ) 을 바탕 으로 사용 자 들 에게 각종 비디오 , 오디오 등 의 멀티미디어 디지털 정보 를 제공 하 는 기술 로 인터넷 에서 영상 및 음향 등 의 파일 을 하드 디스크 드라이브 에 다운로드 받 아 재생 하 던 것 을 다운로드 없이 실시간 으로 재생 해 주 는 기법 이 다 . 
 전송 되 는 데이터 가 마치 물 이 흐르 는 것 처럼 처리 된다고 해서 “ 스트리밍 ( streaming ) ” 이 라 표현 하 고 , 파일 이 모두 전송 되 기 전이 라도 클라이언트 브라우저 또는 플러그인 이 데이터 를 표현 하 기 시작 한다 . 재생 시간 이 단축 되 며 클라이언트 하드 디스크 드라이브 의 용량 에 도 영향 을 받 지 않 는다 . 
 전통 적 인 스트리밍 
 라이브 스트리밍 을 위한 전통 적 인 프로토콜 로 는 RTSP ( Real - Time Streaming Protocol ) / RTP ( Real - time Transport Protocol ) , RTMP ( Real - Time Messaging Protocol ) 등 이 있 다 . 이 프로토콜 을 사용 하 는 스트리밍 서버 는 영상 데이터 의 전송 뿐 만 아니 라 , 동영상 에 대한 정보 분석 이나 전송 규격 에 맞 도록 동영상 파일 을 읽 어서 변형 하 는 기능 도 갖춰야 한다 . 기능 이 많 은 만큼 웹 서버 에 비해 도입 비용 이 상대 적 으로 높 다 . 고가 의 도입 비용 이외 에 도 결정 적 인 단점 이 있 다 . 현재 가장 많이 사용 하 는 RTSP / RTP 의 경우 , RTSP 와 RTP 가 서로 다른 네트워크 연결 을 통해 데이터 를 교환 하 기 때문 에 방화벽 이나 NAT ( Network Address Translator ) 를 많이 쓰 고 있 는 환경 에서 는 서비스 가 원활 하 지 않 은 문제 가 있 다 . 
 그래서 대안 으로 나온 것 이 HTTP 를 전송 채널 로 사용 하 는 것 이 다 . HTTP 는 양방 ( full - duplex ) 방식 이 아니 기 때문 에 라이브 스트리밍 을 위해서 는 단점 을 극복 할 별도 의 방식 이 필요 하 지만 , 방화벽 에서 HTTP 서버 로 의 요청 만 통과 시키 면 되 기 때문 에 방화벽 의 설정 이 단순 해진다 . 요청 과 응답 이 1 : 1 로 대응 되 므로 NAT 환경 에서 도 서버 와 통신 하 는 것 이 쉽 다 . 방화벽 문제 때문 이 아니 라 , 웹 서비스 를 위한 캐시 구조 를 그대로 사용 할 수 있 고 , 기존 에 구축 되 어 있 는 CDN ( Content Delivery Network ) 도 특별히 변경 하 지 않 고 그대로 이용 할 수 있 다는 것 이 장점 이 다 . 
 – Pseudo streaming 
 – RTSP , RTMP 
 – Adaptive streaming 
 – Http dynamic streaming 
 HLS ( Http Live Streaming ) 이 란 ? 
 Apple ( iPhone , iPad 등 ) 에서 사용 하 는 표준 HTTP 기반 스트리밍 프로토콜 이 다 . 프로토콜 에서 스트리밍 데이터 를 m 3 u 8 의 확장자 를 가진 재생 목록 파일 과 잘 게 쪼개 놓 은 다수 의 ts 파일 들 ( 동영상 ) 을 HTTP 를 통해 전송 하 는 방식 을 사용 한다 . 
 – m 3 u 8 : m 3 u 파일 인데 , UTF - 8 로 인코딩 되 어 있 다는 의미 . 
 – m 3 u : 멀티미디어 파일 의 재생 목록 을 관리 하 는 파일 
 – ts : MPEG - 2 의 Transport Stream 포맷 
 HLS 는 iPhone 과 iPad 의 사용 자 수 가 늘어남 으로써 자연 스럽 게 그 수요 가 늘어나 게 되 었 다 . 또한 , 규격 자체 의 단순 함 과 IETF ( Internet Engineering Task Force ) 를 통한 표준 화 작업 등 을 통해 다른 업체 들 도 쉽 게 HLS 를 지원 할 수 있 게 했 다 . 그 결과 로 , Adobe 는 Flash Media Server 4 . 0 에서 , Microsoft 는 IIS Media Server 4 . 0 에서 HLS 를 정식 으로 지원 하 며 , 모바일 운영 체제 에서 상대 진영 이 라 할 수 있 는 Google 의 Android 에서 도 3 . 0 버전 인 Honeycomb 부터 HLS 를 지원 하 기 시작 했 다 . 
 HLS 전송 방식 
 HLS 에서 서버 는 HTTP 를 통해 클라이언트 로부터 요청 을 받 고 , 데이터 에 대한 응답 을 주 는 역할 만 수행 하 기 때문 에 , 저장 되 어 있 는 파일 을 읽 어서 HTTP 응답 에 데이터 를 실어서 보낼 수 있 는 어떤 웹 서버 든지 사용 이 가능 하 다 . 스트림 세 그 먼터 ( Stream Segmenter ) 는 일정 한 시간 간격 마다 입력 받 은 미디어 데이터 를 분할 해 파일 로 만들 고 , 그 분할 한 파일 에 접근 할 수 있 는 메타데이터 ( m 3 u 8 ) 를 생성 하 는 역할 을 한다 . HTTP 는 양방향 방식 이 아니 기 때문 에 , 클라이언트 에서 반드시 서버 에 요청 을 해야 만 응답 을 받 을 수 있 다 . 
 * Apple Inc , HTTP Live Streaming Overview ( 출처 http : / / developer . apple . com / library / ios / ) 
 HLS 에서 는 ABS ( Adaptive Bitrate Streaming ) 를 위해 동시 에 여러 비트 율 의 ts 파일 에 대한 정보 를 제공 한다 . ABS 을 지원 하 기 위한 m 3 u 8 파일 과 ts 파일 구조 는 아래 그림 과 같 다 . 전체 를 대표 하 는 m 3 u 8 파일 이 있 고 , 대표 파일 내 각각 의 비트 율 별 플레이 리스트 파일 을 가리키 게 한다 . 각 비트 율 별 플레이 리스트 파일 은 다시 각 비트 율 에 해당 하 는 ts 파일 을 가리킨다 . 
 HLS 는 확장 성 이 높 고 안정 적 이 기 는 하나 , 이러 한 구조 상 파일 을 먼저 만들 고 스트리밍 하 는 방식 이 기 때문 에 RTMP / RTSP 방식 에 비해 딜레이 문제 가 발생 할 수 있 다 . 
 * ABS 를 위한 m 3 u 8 파일 과 ts 의 연결 구조 
 ( 출처 http : / / helloworld . naver . com / helloworld / 7122 ) 
 HLS 는 기존 의 스트리밍 프로토콜 이 지닌 단점 을 극복 하 고 스트리밍 서비스 를 위한 인프라 를 단순 화 시키 려는 의도 에서 나온 규격 이 라고 할 수 있 다 . 고화질 서비스 를 지원 하 고 , 네트워크 상황 에 따라 원 하 는 비트레이트 의 콘텐츠 를 선택 할 수 있 는 기능 을 제공 한다 . Android 3 . 0 기기 부터 는 공식 적 으로 HLS 를 지원 하 여 iOS 기기 및 Android 기기 에 모두 동일 한 방식 의 라이브 스트리밍 서비스 를 할 수 있 게 되 었 다 . HLS 이외 에 도 HTTP 를 이용 한 Adaptive Bitrate Streaming 을 지원 하 는 스트리밍 규격 이 있 다 . Adobe 의 HTTP Dynamic Streaming 과 Microsoft 의 Smooth Streaming 도 HTTP 를 이용한 스트리밍 규격 이 다 . 
 ABS ( Adaptive Bitrate Streaming ) 
 – 사용 자 의 네트워크 속도 에 따라 적합 한 콘텐츠 를 선택 하 여 재생 
 – 사용 자 별 서비스 품질 다변 화 
 – 대역폭 변동 에 대한 품질 개선 및 안정 성 확보 
 – Apple : HTTP Live Streaming ( HLS ) 
 – Adobe : HTTP Dynamic Streaming ( HDS ) 
 – Microsoft : HTTP Smooth Streaming ( HSS ) 
 Posted by 주현 성 @ 카테 노이드 서비스 팀 
 Pogressive download / Pseudo streaming / RTSP , RTMP / Adaptive streaming / Http dynamic streaming 관련 포스팅 이 계속 될 예정 입니다 . ^^ 
 http : / / helloworld . naver . com / helloworld / 7122 
 http : / / www . adobe . com / kr / products / hds - dynamic - streaming . html 
 http : / / www . thekuroko . com / what - is - http - dynamic - streaming / 
 http : / / www . jwplayer . com / blog / what - is - video - streaming / 
 http : / / blog . edgecast . com / post / 55198896476 / hds - hls - hss - adaptive - http - streaming - demystified 
 http : / / unipro . tistory . com / 121 
 정보 통신 산업 진 흥원 , 주간 기술 동향 ( 2013 . 5 . 8 ) – 멀티미디어 서비스 확산 동인 ( 動因 ) 과 스트리밍 기술 현황 
 2016 / 04 / 04 at 15 : 48 	 4 년 ago 
 HLS 에 대해 쉽 게 설명 된 자료 
 2016 / 04 / 06 at 11 : 19 	 4 년 ago 
 안녕 하 세요 ! Kevin Kang 님 , 도움 이 되 셨 다니 기쁩니다 ^^ 
 온라인 비디오 플랫 폼 Kollus ( 콜러스 ) Blog 는 온라인 동영상 비즈니스 에 관련 된 다양 한 정보 를 지속 적 으로 포스팅 하 고 있 으니 많 은 방문 부탁드려요 ! 
 우한규 
 2016 / 06 / 21 at 16 : 55 	 4 년 ago 
 2016 / 09 / 27 at 10 : 12 	 4 년 ago 
 쉽 게 설명 되 어 있 네요 . 감사 합니다 ! 
 2018 / 09 / 04 at 15 : 59 	 2 년 ago 
 쉽 게 정리 해 주 셔서 정말 감사 합니다 ~ 
 Kevin Kang 에게 댓글 남기 기 댓글 취소