Apple Low Latency HLS

HLS의 단순성, 확장성 및 품질은 동일하지만 Apple Low Latency HLS는 더 빠릅니다. Apple Low-Latency HLS가 포함된 Wowza Streaming Engine은 기존 HLS의 이점과 결합된 초고속 비디오 스트리밍을 가능하게 합니다. 라이브 및 주문형 콘텐츠(VOD)를 스트리밍하여 2초 이내에 Apple 모바일 장치에서 기본적으로 재생하는 동시에 기존 클라이언트와의 하위 호환성을 제공합니다. 시청률에 관계없이 청중에게보다 인터랙티브 한 사용자 경험을 제공합니다.

2020 년에 Flash는 마침내 시장에서 사라질 예정입니다. 이것이 바로 Apple의 HLS (HTTP Live Streaming) 프로토콜이 사용자에게 스트리밍 비디오를 제공하는 데 선호되는 방법이 된 이유입니다. HLS는 미디어 서버에서 시청자의 화면으로 비디오 및 오디오 데이터를 전송하는 데 사용되는 적응 형 HTTP 기반 프로토콜입니다.

휴대폰의 앱을 통해 라이브 비디오를 시청하든 TV에서 주문형 콘텐츠(VOD)를 시청하든 관계없이 HLS 스트리밍이 관련될 가능성이 있습니다. Apple 기기를 사용하는 경우 특히 그렇습니다.

HTTP를 사용하여 제공되는 비디오는 기술적으로 “스트림”이 아니며  오히려 일반 웹 서버를 통해 전송되는 점진적 다운로드입니다. 업계에서는 HTTP 기반 프로토콜이 연결, 소프트웨어 또는 장치에 관계없이 가능한 최고의 비디오 품질과 뷰어 경험을 제공하기 때문에 이러한 방식을 선호했습니다.

MPEG-DASH와 Apple의 HLS는 가장 일반적인 두 가지 HTTP 기반 프로토콜입니다.

2019 년 비디오 스트리밍 지연 보고서에 따르면 사용자의 45 % 이상이 콘텐츠 배포에 HLS 프로토콜을 사용한다고 답했습니다.

대안에 비해 HLS의 인기는 재생 호환성과 경험의 질로 이어질 수 있습니다. 이는 모든 Mac, 안드로이드, 마이크로소프트 및 리눅스장치가 HLS를 사용하여 제공되는 스트림을 재생할 수 있기 때문입니다.

Apple HLS 기술사양

  • Audio Codecs: AAC-LC, HE-AAC+ v1 & v2, xHE-AAC, Apple Lossless, FLAC
  • Video Codecs: H.265, H.264
  • Playback 호환성: 우수 (모든 Google Chrome 브라우저, Android, Linux, Microsoft 및 MacOS 기기, 여러 셋톱 박스, 스마트 TV 및 기타 플레이어)
  • 이점: 적응 형 비트 전송률(Adaptive Bit Rate), 안정적이고 광범위하게 지원됩니다.
  • 단점: 낮은 지연 시간보다 경험 품질이 우선.
  • 지연시간(Latency): HLS는 전통적으로 6 ~ 30 초의 지연 시간을 제공했지만, Low-Latency HLS 확장은 이제 HLS의 기능 세트로 통합되어 2 초 미만의 지연 시간을 제공 할 것을 약속합니다.

HLS 채택율

HLS는 오늘날 사용되는 가장 일반적인 스트리밍 프로토콜입니다. 2019 년 비디오 스트리밍 지연 보고서에 따르면 방송사의 45 % 이상이 이를 사용합니다. 아래에 표시된대로 RTMP도 인기있는 선택이지만 대부분의 방송사는 RTMP 스트림이 스트리밍 서버에 도달하면 HLS 프로토콜로 다시 패키징합니다. 이렇게하면 시청자가 플러그인을 다운로드하지 않고도 다양한 기기에서 스트림을 재생할 수 있습니다.

HLS 확장성

Flash Player와 함께 사용되는 RTMP 프로토콜과 달리 HLS는 글로벌 CDN (콘텐츠 전송 네트워크)에서 일반 웹서버를 사용하여 전송을 위해 쉽게 확장할 수 있습니다.
서버 네트워크를 통해 워크로드를 공유함으로써 CDN은 시청률 급증과 예상보다 더 많은 실시간 시청자를 수용합니다. CDN은 또한 오디오 및 비디오 세그먼트를 캐싱하여 시청자 경험을 개선하는 데 도움이 됩니다.
이에 비해 RTMP에 대한 CDN 지원은 빠르게 감소하고 있습니다. RTMP는 또한 전용 스트리밍 서버를 사용해야하므로 배포하는 데 리소스가 더 많이 필요합니다.

HLS를 사용한 적응형 비트 레이트 스트리밍

작은 화면과 연결 상태가 좋지 않은 사용자를 포함하여 시청하는 모든 사람에게 가능한 최고 품질의 스트림을 제공하기 위해 HLS 스트리밍은 각 개인의 상황에 맞게 해상도를 동적으로 조정합니다. 적응형 비트레이트 스트리밍이라고하는 이를 통해 방송사는 뛰어난 대역폭과 처리 능력을 갖춘 사용자에게 고품질 스트림을 제공하는 동시에 속도 및 프로세싱파워가 부족한 사람들을 수용 할 수 있습니다.
하나의 비트 전송률로 하나의 라이브 스트림을 생성하는 대신 트랜스코더 (일반적으로 서버에 있음)를 사용하여 서로 다른 비트 전송률 및 해상도로 여러 스트림을 생성합니다. 그런 다음 미디어 서버는 각 시청자의 화면과 연결 속도에 대해 가능한 최고 해상도의 스트림을 전송합니다.
단일 스트림의 여러 변환을 생성하면 버퍼링 또는 스트림 중단을 방지하는 데 도움이 됩니다. 또한 시청자의 신호강도가 2개의 막대에서 3개의 막대로 이동함에 따라 스트림이 동적으로 조정되어 우수한 표현을 제공합니다.

HLS의 작동 원리

HLS 컨테이너 형식

MPEG-4 Part 14 (MP4) 컨테이너 형식을 사용하는 대부분의 HTTP 기반 프로토콜과 달리 HLS는 처음에 MPEG-2 TS (Transport Stream) 컨테이너 사용을 지정했습니다. 이는 2016 년 Apple이 조각난 MP4 (fMP4) 형식에 대한 지원을 발표하면서 변경되었습니다. 오늘날 fMP4는 모든 HTTP 기반 스트리밍 (MPEG-DASH 및 Microsoft Smooth 포함)에 선호되는 형식입니다. 이러한 비디오 파일에는 일반적으로 AVC/H.264로 인코딩 된 비디오와 AAC로 인코딩 된 오디오가 포함됩니다.

HLS 분할 전달

위에서 설명한 것처럼 HLS를 통해 전달되는 비디오 스트림은 정보의 지속적인 흐름으로 전달되지 않고 미디어 서버에서 데이터 세그먼트 (청크 또는 패킷이라고도 함)로 분할됩니다. 세그먼트 전송을 통해 플레이어는 사용 가능한 리소스에 따라 다른 변환간에 전환 할 수 있으며 지연 시간도 단축 할 수 있습니다.

HLS 인코딩 요구 사항

Apple은 HLS로 스트리밍 할 때 일반적인 비트 전송률 변형 세트의 예로 아래 인코딩 대상을 제공합니다.

16:9 Aspect Ratio

  • 416 x 234
  • 640 x 360
  • 768 x 432
  • 768 x 432
  • 960 x 540
  • 1280 x 720
  • 1280 x 720
  • 1920 x 1080
  • 1920 x 1080

H.264/AVC

  • 145
  • 365
  • 730
  • 1,100
  • 2,000
  • 3,000
  • 4,500
  • 6,000
  • 7,800

Framerate

  • ≤30 fps
  • ≤30 fps
  • ≤30 fps
  • ≤30 fps
  • same as source
  • same as source
  • same as source
  • same as source
  • same as source

.M3U8 매니페스트 파일

HLS 비디오 세그먼트는 비디오 플레이어가 데이터 구성 방법을 이해할 수 있도록 미디어 재생 목록에 인덱싱됩니다. 마스터 .m3u8 재생 목록 파일도 생성해야합니다.이 파일을 인덱스 색인이라고 생각하면 플레이어에게 변형별 재생목록사이를 건너 뛰는 방법을 알려줍니다.
이를 매니페스트 파일이라고도합니다.
스트림을 전달하는 사람은 누구나 웹페이지에 .m3u8 참조 URL을 삽입하거나 파일을 다운로드하는 애플리케이션을 만들어 콘텐츠를 배포 할 수 있습니다.

세그먼트 크기 및 지연 시간

2016 년까지 Apple은 HLS에 10초 세그먼트 사용을 권장했습니다. 또한 사양은 재생을 시작하기 전에 3개의 세그먼트를 로드해야했습니다. 10초 권장사항을 고수함으로써 방송사는 세그먼트 크기만 기준으로 30 초의 지연시간으로 시작합니다. Apple은 결국 기본 세그먼트크기를 6초로 줄였지만 여전히 ‘라이브’스트림이 거의 20 초 뒤쳐질 수 있음을 의미합니다.

지연을 줄이는 일반적인 방법은 짧은 지연시간을위한 ‘튜닝’HLS라고하는 세그먼트 크기를 줄이는 것입니다. 청크가 짧을수록 다운로드 시간이 빨라져 작업 속도가 빨라집니다. 그러나 이것이 HLS를 사용한 빠른 스트리밍의 유일한 경로는 아닙니다.

2019 년 Apple은 Apple Low-Latency HLS라는 확장기능의 사양을 발표했습니다. 그리고 최근에는이 확장이 기능 세트로 중요한 HLS 표준에 통합되었습니다.

Apple Low-Latency HLS

Apple은 지연 시간을 대규모로 줄이기 위해 Low-Latency HLS 확장을 설계했습니다. 프로토콜은 원래 HTTP / 2 PUSH 전달에 의존했지만 이후이 요구 사항은 제거되었습니다. 또한 IETF (Internet Engineering Task Force)는 최근 Low-Latency HLS 확장을 기존 HLS에 기능 세트로 통합했습니다. 이것의 중요성은 두 가지입니다. 새로운 기술을 더욱 표준화하고 기술 공급자에게 지원을 추가하도록 압력을가합니다.
  • 재생 호환성 : 저 지연 HLS에 최적화되지 않은 모든 플레이어는 표준 (지연 시간이 더 긴) HLS 동작으로 대체 할 수 있습니다.
  • 이점 : 짧은 지연 시간과 HTTP 기반 스트리밍 충족
  • 단점 : 새로운 사양으로서 공급 업체는 여전히 지원을 구현하고 있습니다.
  • 지연 시간 : 2 초 이하
Apple Low-Latency HLS를 Periscope가 만든 오픈 소스 LHLS (Low-Latency HLS) 솔루션과 혼동해서는 안됩니다. 둘의 주요 차이점은 전송 방법입니다. Apple의 확장과 달리 Periscope의 버전은 청크 전송 인코딩을 사용합니다. 비디오 개발자 커뮤니티는 Apple의 표준을 위해 이 오픈소스 대안을 포기했습니다.
작년 말에 Wowza Streaming Engine에서 저지연 HLS에 대한 지원을 추가했습니다. 얼리 어답터로서 Wowza는이 새로운 기술에 대해 지속적으로 개발하고 있으며 전체 제품 포트폴리오에 대한 지원을 확대하기 위해 노력하고 있습니다.

HLS 하드웨어 및 소프트웨어

HLS 스트림을 구성하는 방법에 대한 지침은 Apple의 권장 사항을 확인하세요.

대부분의 콘텐츠 배포자는 스트리밍 서버를 사용하여 RTMP, WebRTC 또는 SRT를 사용하여 비디오를 인코딩 한 다음 서버에 도달하면 HLS를 지원하도록 비디오를 트랜스 코딩합니다. 또한 다양한 기기의 시청자가 콘텐츠를 볼 수 있도록 추가 형식 (예 : MPEG-DASH)으로 동영상을 제공하는 것이 좋습니다. Wowza Streaming Cloud ™와 같은 클라우드 기반 서비스 또는 Wowza Streaming Engine ™과 같은 스트리밍 서버 소프트웨어를 라이브 트랜스 코딩 등에 사용할 수 있습니다.

HTML5 플레이어

마지막으로 플레이어는 호환되는 장치 또는 HTML5 플레이어가 필요합니다. HLS는 Adobe Flash의 쇠퇴에 따라 사실상의 표준이되었습니다. 즉, 대부분의 장치와 브라우저에는 이미 이 기능이 내장되어 있습니다.

HLS를 사용하지 않는 경우

웹 컨퍼런싱, 카메라 및 드론을 위한 실시간 장치 제어 또는 상황 인식과 같이 1 초 미만의 전달이 필요한 모든 사용 사례에는 WebRTC (Web Real-Time Communications)와 같은 프로토콜이 필요합니다. Apple Low-Latency HLS조차도 이러한 시나리오에 허용되지 않는 고유한 지연이 있습니다.

HLS를 사용하는 경우

HLS는 현재 미디어 스트리밍에 가장 널리 사용되는 프로토콜이기 때문에 대부분의 방송에서 안전합니다. 연결된 장치로 스트리밍하는 모든 사람은 적어도 이를 고려해야합니다. 특히 품질이 중요한 라이브 이벤트 및 스포츠를 방송 할 때 그렇습니다. 지연 시간은 고려할 가치가 있지만 Apple Low-Latency HLS 기능 세트에 대한 지원이 구현됨에 따라 2 초 미만의 전송이 더 보편화되어야합니다. 이를 통해 인터랙티브 스트리밍, 온라인 도박, e- 게임 등에 적합합니다.
모바일 장치로 스트리밍 할 때 HLS는 필수입니다. iPhone이 셀룰러 환경에서 수행하는 역할을 고려하십시오. 많은 스마트 TV, 셋톱 박스 및 플레이어도 기본적으로 HLS를 사용하므로 거실에서 사용자에게 도달하려는 방송사도 HLS를 확인해야합니다. 마지막으로 플래시로 전달하기 위해 RTMP를 사용하는 모든 사람을 위해 전환 할 때입니다.
즉, 가능한 가장 광범위한 청중에게 도달하려면 추가 비디오 형식을 수용하는 것부터 시작해야합니다. 스트리밍을 다양한 형식으로 트랜스 코딩하면 장치에 관계없이 비디오 확장 성을 보장 할 수 있습니다.
Wowza Streaming Engine을 사용하여 자체 서버를 사용하여 트랜스 코딩 할 수 있습니다. 온프레미스이든 타사 클라우드 플랫폼이든 상관 없습니다. 또는 Wowza Streaming Cloud가 빠르게 시작하고 실행하려는 사람들에게 더 적합 할 수 있습니다.