본문 바로가기

# 03/프로토콜

Comparing Adaptive HTTP Streaming Technologies-2

반응형
3. Adaptive Streaming Internals 
3. 적응 형 스트리밍 내부


In this section we review some of the details of HLS, HDS and MSS. Each of these protocols has strengths and weaknesses, which we discuss in the following sections.
이 섹션에서는 HLS, HDS 및 MSS의 세부 정보를 검토합니다. 이 프로토콜들 각각에는 강점과 약점이 있으며, 다음 장에서 논의 할 것입니다.


Figure 4. A comparison of HLS and MSS/HDS: The latter can create aggregate formats that can be distributed on a CDN for VoD, whereas for live video, all distribute chunks on the CDN. MSS allows audio and video to be aggregated and delivered separately, but HDS and HLS deliver these together.
그림 4. HLS와 MSS / HDS의 비교 : 후자는 VoD 용 CDN에 배포 할 수있는 집계 형식을 만들 수 있지만 라이브 비디오에서는 모두 CDN에 청크를 배포합니다. MSS를 사용하면 오디오와 비디오를 집계하여 별도로 제공 할 수 있지만 HDS와 HLS는이를 함께 제공합니다.



Apple HTTP Live Streaming (HLS) 
Apple HTTP 실시간 스트리밍 (HLS)

Ironically, unlike Microsoft and Adobe, Apple chose not to use the ISO MPEG file format – a format based on Apple’s MOV file format – in its adaptive streaming technology. Instead, HLS takes an MPEG-2 TS and segments it to a sequence of MPEG-2 TS files which encapsulate both the audio and video. These segments are placed on any HTTP server along with the playlist files. The playlist (or index) manifest file is a text file (based on Winamp’s original m3u file format) with an m3u8 extension. Full details can be found in [HLS]. 
아이러니하게도 Microsoft와 Adobe와 달리 Apple은 적응 형 스트리밍 기술에서 ISO MPEG 파일 형식 (Apple의 MOV 파일 형식을 기반으로 한 형식)을 사용하지 않기로 결정했습니다. 대신 HLS는 MPEG-2 TS를 가져 와서 오디오 및 비디오를 모두 캡슐화하는 MPEG-2 TS 파일 시퀀스로 분할합니다. 이러한 세그먼트는 재생 목록 파일과 함께 모든 HTTP 서버에 배치됩니다. 재생 목록 (또는 색인) 매니페스트 파일은 m3u8 확장자를 가진 텍스트 파일 (Winamp의 원래 m3u 파일 형식을 기반으로 함)입니다. 전체 내용은 [HLS]에서 찾을 수 있습니다.


HLS defines two types of playlist files: normal and variant. The normal playlist file lists URLs that point to chunks that should be played sequentially. The variant playlist files points to a collection of different normal playlist files, one for each output profile. Metadata is carried in the playlist files as comments – lines preceded by ‘#’. In the case of normal playlist files, this metadata includes a sequence number used to associate chunks from different profiles, information about the chunk duration, a directive signaling whether chunks can be cached, the location of decryption keys, the type of stream, and time information. In the case of a variant playlist the metadata includes the bitrate of the profile, its resolution, its codec, and an ID that can be used to associate different encodings of the same content. Figure 5 and Figure 6 show a sample HLS variant playlist file and normal playlist file.
HLS는 일반 재생 목록과 변형 재생 목록의 두 가지 유형의 재생 목록 파일을 정의합니다. 일반 재생 목록 파일에는 순차적으로 재생되어야하는 청크를 가리키는 URL이 나열됩니다. 변형 재생 목록 파일은 각 출력 프로필에 대해 하나씩 다른 정상 재생 목록 파일의 모음을 가리 킵니다. 메타 데이터는 주석으로 재생 목록 파일에서 전달됩니다 ( '#'이 선행). 일반 재생 목록 파일의 경우이 메타 데이터에는 여러 프로필의 청크를 연결하는 데 사용되는 시퀀스 번호, 청크 지속 시간에 대한 정보, 청크가 캐시 될 수 있는지 여부를 나타내는 지시문, 암호 해독 키의 위치, 스트림 유형 및 시간이 포함됩니다 정보. 변형 재생 목록의 경우 메타 데이터에는 프로필의 비트 전송률, 해상도, 코덱 및 동일한 콘텐츠의 서로 다른 인코딩을 연결하는 데 사용할 수있는 ID가 포함됩니다. 그림 5와 그림 6은 샘플 HLS 변형 재생 목록 파일과 일반 재생 목록 파일을 보여줍니다.



Figure 5. An HLS variant playlist file showing eight output profiles with different bitrates. The URLs for the m3u8 files are relative, but could include the leading ‘http://…’. In this example, each profile’s playlist is in a separate path component of the URL.
그림 5. 서로 다른 비트율을 가진 8 개의 출력 프로파일을 보여주는 HLS 변형 재생 목록 파일 m3u8 파일의 URL은 상대 URL이지만 'http : // ...'가 포함될 수 있습니다. 이 예에서 각 프로필의 재생 목록은 URL의 별도 경로 구성 요소에 있습니다.


Figure 6. An HLS playlist file from a live stream showing the three latest available TS chunks. The #EXT-X-MEDIA-SEQUENCE tag identifies the sequence number of the first chunk, 505.ts; it is used to align chunks from different profiles. Note that the chunk name carries no streaming-specific information. The #EXT-X-TARGETDURATION:11 tag is the expected duration (10 seconds) of the chunks, though durations can vary. The #EXT-X-KEY:METHOD=NONE tag shows that no encryption was used in this sequence. The #EXTINF:10 tags show the duration of each segment. As in the variant playlist file, the URLs are relative to the base URL used to fetch the playlist.
그림 6. 사용 가능한 최신 TS 청크 3 개를 보여주는 라이브 스트림의 HLS 재생 목록 파일 # EXT-X-MEDIA-SEQUENCE 태그는 첫 번째 청크의 시퀀스 번호 인 505.ts를 식별합니다. 다른 프로파일의 청크를 정렬하는 데 사용됩니다. 청크 이름에는 스트리밍 관련 정보가 없습니다. # EXT-X-TARGETDURATION : 11 태그는 청크의 예상 지속 시간 (10 초)이지만 지속 시간은 다를 수 있습니다. # EXT-X-KEY : METHOD = NONE 태그는이 시퀀스에서 암호화가 사용되지 않았 음을 나타냅니다. #EXTINF : 10 태그는 각 세그먼트의 재생 시간을 표시합니다. 변형 재생 목록 파일에서와 마찬가지로 URL은 재생 목록을 가져 오는 데 사용 된 기본 URL을 기준으로합니다.


In HLS, a playlist file corresponding to a live stream must be repeatedly downloaded so that the client can know the URLs of the most recently available chunks. The playlist is downloaded every time a chunk is played, and thus, in order to minimize the number of these requests, Apple recommends a relatively long chunk duration of 10 seconds. However, the size of the playlist file is small compared with any video content, and the client maintains an open TCP connection to the server, so that this network load is not significant. Shorter chunk durations can thus be used. This allows the client to adapt bitrates more quickly. VoD playlists are distinguished from live playlists by the #EXT-X-PLAYLIST-TYPE and #EXT-X-ENDLIST tags.
HLS에서 라이브 스트림에 해당하는 재생 목록 파일을 반복적으로 다운로드해야 클라이언트가 가장 최근에 사용 가능한 청크의 URL을 알 수 있습니다. 청크가 재생 될 때마다 재생 목록이 다운로드되므로 이러한 요청의 수를 최소화하기 위해 청크 지속 시간을 10 초로하는 것이 좋습니다. 그러나 재생 목록 파일의 크기는 모든 비디오 내용과 비교하여 작으며 클라이언트는 서버에 대해 열린 TCP 연결을 유지하므로이 네트워크로드가 중요하지 않습니다. 따라서,보다 짧은 청크 기간이 사용될 수있다. 이를 통해 클라이언트는 비트 전송률을보다 신속하게 조정할 수 있습니다. VoD 재생 목록은 # EXT-X-PLAYLIST-TYPE 및 # EXT-X-ENDLIST 태그로 라이브 재생 목록과 구별됩니다.


HLS is the only protocol that doesn’t require chunks to start with IDR frames. It can download chunks from two profiles and switch the decoder between profiles on an IDR frame that occurs in the middle of a chunk. However, doing this incurs extra bandwidth consumption, as two chunks corresponding to the same portion of video are downloaded at the same time. 
HLS는 청크가 IDR 프레임으로 시작하지 않아도되는 유일한 프로토콜입니다. 두 개의 프로파일에서 청크를 다운로드하고 청크의 중간에 발생하는 IDR 프레임의 프로파일간에 디코더를 전환 할 수 있습니다. 그러나이 작업을 수행하면 동일한 부분의 비디오에 해당하는 두 개의 청크가 동시에 다운로드되므로 추가 대역폭이 소비됩니다.


HLS Considerations 
Some advantages of HLS are: 
HLS 고려 사항
HLS의 장점은 다음과 같습니다.

 It is a simple protocol that is easy to modify. The playlists are easily accessible and their text format lends to simple modification for applications such a re-broadcast or ad insertion. 
 The use of TS files means that there is a rich ecosystem for testing and verifying file conformance. 
 TS files can carry other metadata, such as SCTE 35 cues or ID3 tags (see [HLSID3]). 
 HLS is native to popular iOS devices, the users of which are accustomed to paying for apps and other services. That is, HLS is more easily monetized. Some disadvantages of HLS are: 
 HLS is not supported natively on Windows OS platforms. 
 TS files mux the audio, video and data together. This means that multi-language support either comes at the cost of sending all the languages in the chunks or creating duplicate chunks with each language. Similarly for data PIDs, these are either muxed together or multiple versions of chunks are needed with different data PIDs. 
 There is no standard aggregate format for HLS, which means that many chunk files are created. A day’s worth of one channel with eight profiles at 10-second chunk duration will consist of almost 70,000 files. Managing such a large collection of files is not convenient. 
 쉽게 수정할 수있는 간단한 프로토콜입니다. 재생 목록은 쉽게 액세스 할 수 있으며 텍스트 형식은 재방송 또는 광고 삽입과 같은 응용 프로그램의 간단한 수정을 가능하게합니다.
 TS 파일을 사용한다는 것은 파일 적합성을 테스트하고 확인하기위한 풍부한 생태계가 있음을 의미합니다.
 TS 파일은 SCTE 35 큐 또는 ID3 태그와 같은 다른 메타 데이터를 전달할 수 있습니다 ([HLSID3] 참조).
 HLS는 인기있는 iOS 장치의 기본 기능으로, 사용자는 앱 및 기타 서비스 비용을 지불하는 데 익숙합니다. 즉, HLS는 더 쉽게 수익을 창출합니다. HLS의 단점은 다음과 같습니다.
 HLS는 Windows OS 플랫폼에서 기본적으로 지원되지 않습니다.
 TS 파일은 오디오, 비디오 및 데이터를 함께 결합합니다. 즉, 다중 언어 지원은 모든 언어를 청크로 보내거나 각 언어로 중복 청크를 작성하는 비용이 든다는 의미입니다. 데이터 PID에 대해서도 이와 같이 다중화되거나 다른 데이터 PID로 여러 버전의 청크가 필요합니다.
 HLS의 표준 집계 형식이 없으므로 많은 청크 파일이 만들어집니다. 하루 10 분짜리 청크 기간에 8 개의 프로필이있는 한 채널의 가치는 약 70,000 개의 파일로 구성됩니다. 이렇게 많은 양의 파일을 관리하는 것은 편리하지 않습니다.


Note: iOS 5 offers features that loosen some of these limitations, but the distribution of iOS versions means that these disadvantages persist in the market today. 
참고 : iOS 5는 이러한 제한 사항을 완화하는 기능을 제공하지만 iOS 버전의 배포는 이러한 단점이 현재 시장에서 지속되고 있음을 의미합니다.

Microsoft Silverlight Smooth Streaming (MSS) 
Microsoft Silverlight 부드러운 스트리밍 (MSS)


Silverlight Smooth Streaming delivers streams as a sequence of ISO MPEG-4 files (see [MSS] and [MP4]). These are typically pushed by an encoder to a Microsoft IIS server (using HTTP POST), which aggregates them for each profile into an ‘ismv’ file for video and an ‘isma’ file for audio. The IIS server also creates an XML manifest file that contains information about the bitrates and resolutions of the available profiles (see Figure 7). When the request for the manifest comes from a Microsoft IIS server, it has a specific format: 
Silverlight Smooth Streaming은 일련의 ISO MPEG-4 파일로 스트림을 전달합니다 ([MSS] 및 [MP4] 참조). 이들은 일반적으로 인코더에 의해 Microsoft IIS 서버 (HTTP POST 사용)로 푸시됩니다.이 서버는 각 프로필에 대해 비디오 용 'ismv'파일과 오디오 용 'isma'파일로 집계합니다. 또한 IIS 서버는 사용 가능한 프로필의 비트 전송률 및 해상도에 대한 정보가 포함 된 XML 매니페스트 파일을 생성합니다 (그림 7 참조). 매니페스트에 대한 요청이 Microsoft IIS 서버에서 오는 경우 특정 형식을 갖습니다.

http://{serverName}/{PublishingPointPath}/{PublishingPointName}.isml/manifest 

The PublishingPointPath and PublishingPointName are derived from the IIS configuration. 
PublishingPointPath 및 PublishingPointName은 IIS 구성에서 파생됩니다.



Unlike HLS, in which the URLs are given explicitly in the playlist, in MSS the manifest files contain information that allows the client to create a RESTful URL request based on timing information in the stream. For live streaming, the client doesn’t need to repeatedly download a manifest – it computes the URLs for the chunks in each profile directly. The segments are extracted from the ismv and isma files and served as ‘fragmented’ ISO MPEG-4 (fMP4) files. MSS (optionally) separates the audio and video into separate chunks and combines them in the player. The URLs below show typical requests for video and audio. The QualityLevel indicates the profile and the video= and audio-eng= indicate the specific chunk requested. The Fragments portion of the request is given using a time stamp (usually in hundred nanosecond intervals) that the IIS server uses to extract the correct chunk from the aggregate MP4 audio and/or video files. 
URL이 재생 목록에 명시 적으로 제공되는 HLS와 달리 매니페스트 파일에는 클라이언트가 스트림의 타이밍 정보를 기반으로 RESTful URL 요청을 만들 수있는 정보가 들어 있습니다. 실시간 스트리밍의 경우 클라이언트는 매니페스트를 반복적으로 다운로드 할 필요가 없습니다. 각 프로필의 청크 URL을 직접 계산합니다. 세그먼트는 ismv 및 isma 파일에서 추출되어 '조각화 된'ISO MPEG-4 (fMP4) 파일로 제공됩니다. MSS (선택적)는 오디오와 비디오를 별도의 청크로 분리하여 플레이어에서 결합합니다. 아래 URL은 일반적인 비디오 및 오디오 요청을 보여줍니다. QualityLevel은 프로필을 나타내고 video = 및 audio-eng =은 요청 된 특정 청크를 나타냅니다. 요청의 Fragments 부분은 IIS 서버가 집계 MP4 오디오 및 / 또는 비디오 파일에서 올바른 청크를 추출하는 데 사용하는 시간 스탬프 (일반적으로 100 나노초 간격)를 사용하여 제공됩니다.


In the VoD case, the manifest files contain timing and sequence information for all the chunks in the content. The player uses this information to create the URL requests for the audio and video chunks. 
VoD의 경우 매니페스트 파일에는 콘텐츠의 모든 청크에 대한 타이밍 및 시퀀스 정보가 들어 있습니다. 플레이어는이 정보를 사용하여 오디오 및 비디오 청크에 대한 URL 요청을 만듭니다.


Note that the use of IIS as the source of the manifest and fMP4 files doesn’t preclude use of standard HTTP servers in the CDN. The CDN can still cache and deliver the manifest and chunks as it would any other files. More information about MSS can be found at Microsoft (see [SSTO]) and various excellent blogs of the developers of the technology (see [SSBLOG]). 
매니 페스트 및 fMP4 파일의 소스로 IIS를 사용한다고해서 CDN에서 표준 HTTP 서버를 사용할 수있는 것은 아닙니다. CDN은 다른 파일과 마찬가지로 매니페스트와 청크를 캐시하고 전달할 수 있습니다. MSS에 대한 자세한 내용은 Microsoft ([SSTO] 참조) 및 해당 기술 개발자의 다양한 우수 블로그 ([SSBLOG] 참조)에서 확인할 수 있습니다.


MSS Considerations 
Some advantages of MSS are: 
MSS 고려 사항
MSS의 장점은 다음과 같습니다.


 IIS creates an aggregate format for the stream, so that a small number of files can hold all the information for the complete smooth stream. 
 The use of IIS brings useful analysis and logging tools, as well as the ability to deliver more MSS and HLS content directly from the IIS server. 
 The recommended use of a small chunk size allows for rapid adaptation during HTTP streaming playback. 
 The segregated video and audio files mean that delivery of different audio tracks involves just a manifest file change. 
 The aggregate file format supports multiple data tracks that can be used to store metadata about ad insertion, subtitling, etc. 
 IIS는 스트림에 대해 집계 형식을 생성하므로 소수의 파일이 완전한 원활한 스트림을위한 모든 정보를 저장할 수 있습니다.
 IIS를 사용하면 유용한 분석 및 로깅 도구뿐만 아니라 IIS 서버에서 직접 더 많은 MSS 및 HLS 콘텐츠를 제공 할 수 있습니다.
 작은 청크 크기의 권장 사용은 HTTP 스트리밍 재생 중에 신속한 적응을 가능하게합니다.
 분리 된 비디오 및 오디오 파일은 매니페스트 파일 변경과 관련된 여러 오디오 트랙의 전달을 의미합니다.
 집계 파일 형식은 광고 삽입, 자막 등에 대한 메타 데이터를 저장하는 데 사용할 수있는 여러 데이터 트랙을 지원합니다.


Some disadvantages of MSS are: 
MSS의 단점은 다음과 같습니다.


 The need to place an IIS server in the data flow adds an extra point of failure and complicates the network. 
 On PCs, MSS requires installation of a separate Silverlight plug-in.
 데이터 흐름에 IIS 서버를 배치해야 할 필요성이 추가되고 네트워크가 복잡해집니다.
 PC에서 MSS는 별도의 Silverlight 플러그 인을 설치해야합니다.


Figure 7. A sample MSS manifest file. The elements with ‘t=”249…”’ specify the time stamps of chunks that the server already has and can deliver. These are converted to Fragment timestamps in the URL requesting an fMP4 chunk. The returned chunk holds time stamps of the next chunk or two (in its UUID box), so that the client can continue to fetch chunks without having to request a new manifest.
그림 7. 샘플 MSS 매니페스트 파일 't = "249 ..."가있는 요소는 서버가 이미 가지고 있고 제공 할 수있는 청크의 타임 스탬프를 지정합니다. 이들은 fMP4 청크를 요청하는 URL에서 Fragment timestamps로 변환됩니다. 반환 된 덩어리는 다음 덩어리 또는 두 um (UUID 상자에 있음)의 타임 스탬프를 보유하므로 클라이언트는 새 매니페스트를 요청하지 않고 청크를 계속 가져올 수 있습니다.



Adobe HTTP Dynamic Streaming (HDS) 
Adobe HTTP 동적 스트리밍 (HDS)


Adobe HDS was defined after both HLS and MSS and makes use of elements in each (see [HDS]). In HDS, an XML manifest file (of file type f4m) contains information about the available profiles (see Figure 8 and [F4M]). As in HLS, data that allows the client to derive the URLs of the available chunks is repeatedly downloaded by the client; in HDS this is called the bootstrap information. The bootstrap information is in a binary format and hence isn’t human-readable. As in MSS, segments are encoded as fragmented MP4 files that contain both audio and video information in one file. HDS chunk requests have the form:
Adobe HDS는 HLS와 MSS 모두에 따라 정의되었으며 각각의 요소를 사용합니다 ([HDS] 참조). HDS에서 XML 매니페스트 파일 (파일 유형 f4m)은 사용 가능한 프로파일에 대한 정보를 포함합니다 (그림 8 및 [F4M] 참조). HLS 에서처럼 클라이언트가 사용 가능한 청크의 URL을 파생시킬 수있게하는 데이터는 클라이언트에 의해 반복적으로 다운로드됩니다. HDS에서는이를 부트 스트랩 정보라고합니다. 부트 스트랩 정보는 바이너리 형식이므로 사람이 읽을 수 없습니다. MSS에서와 같이 세그먼트는 하나의 파일에 오디오 및 비디오 정보를 모두 포함하는 단편화 된 MP4 파일로 인코딩됩니다. HDS 청크 요청의 형식은 다음과 같습니다.


http://server_and_path/QualityModifierSeg’segment_number’–Frag’fragment_number’ 


where the segment and fragment number together define a specific chunk. As in MSS, an aggregate (f4f) file format is used to store all the chunks and extract them when a specific request is made.
세그먼트와 프래그먼트 번호가 함께 특정 청크를 정의합니다. MSS에서와 같이 집계 (f4f) 파일 형식은 모든 청크를 저장하고 특정 요청이있을 때 추출합니다.

Figure 8. A sample HDS manifest file.
그림 8. 샘플 HDS 매니페스트 파일.

HDS Considerations 
Some advantages of HDS are: 
HDS 고려 사항
HDS의 장점은 다음과 같습니다.

 The Flash client is available on multiple devices and is installed on almost every PC in the world. 
 HDS is a part of Flash and can make use of Flash’s environment and readily available developer base. 
 플래시 클라이언트는 여러 장치에서 사용할 수 있으며 세계의 거의 모든 PC에 설치됩니다.
 HDS는 Flash의 일부이며 Flash 환경과 쉽게 사용할 수있는 개발자 기반을 사용할 수 있습니다.


Some disadvantages of HSS are: 
HSS의 단점은 다음과 같습니다.


 HDS is a relative late-comer and could suffer more from stability issues. 
 Adobe’s Flash access roadmap is rapidly changing, making it difficult to deploy a stable ecosystem. 
 Adobe holds close the details of its format. Combined with the binary format of the bootstrap file, this limits the ecosystem of partners offering compatible solutions.
 HDS는 비교적 늦은 편이며 안정성 문제로 인해 더 많은 어려움을 겪을 수 있습니다.
 Adobe의 Flash 액세스 로드맵이 빠르게 변화하고있어 안정적인 생태계를 구축하기가 어렵습니다.
 Adobe는 형식에 대한 세부 정보를 제공합니다. 부트 스트랩 파일의 바이너리 형식과 결합하면 호환 가능한 솔루션을 제공하는 파트너의 생태계가 제한됩니다.



4. Feature Comparison 
4. 기능 비교


In this section, we compare HLS, HDS and MSS usability for a variety of common usage scenarios. 
이 섹션에서는 다양한 일반적인 사용 시나리오에 대해 HLS, HDS 및 MSS 사용 가능성을 비교합니다.

Delivery of Multiple Audio Channels 
다중 오디오 채널 제공

In HLS, TS files can easily carry multiple audio tracks, but this isn’t necessarily a strength when it comes to adaptive HTTP streaming because it means the TS chunks are bigger, even if only one audio stream is consumed. In places where there are multiple languages, multiple audio streams included in each chunk can consume a larger portion of the bandwidth than the video. For HLS to work well, packagers have to create chunks with each video/audio language combination, increasing the storage needed for holding the chunks. 
HLS에서 TS 파일은 여러 개의 오디오 트랙을 쉽게 휴대 할 수 있지만, 적응 형 HTTP 스트리밍의 경우 반드시 필요한 것은 아닙니다. 단 하나의 오디오 스트림 만 소비 되더라도 TS 청크가 더 커야한다는 것입니다. 여러 언어가있는 곳에서는 각 청크에 포함 된 여러 오디오 스트림이 비디오보다 대역폭의 더 많은 부분을 소비 할 수 있습니다. HLS가 잘 작동하려면 패키지 관리자가 각 비디오 / 오디오 언어 조합으로 청크를 만들어 청크 보유에 필요한 스토리지를 늘려야합니다.


MSS stores each audio track as a separate file, so it’s easy to create chunks with any video-audio combination. The total number of files is the same as with HLS, but the ability to store the audio and video once in aggregate format makes MSS more efficient. 
MSS는 각 오디오 트랙을 별도의 파일로 저장하므로 어떤 비디오 - 오디오 조합으로도 청크를 쉽게 만들 수 있습니다. 파일의 총 수는 HLS의 경우와 동일하지만 오디오 및 비디오를 집계 형식으로 한 번 저장하면 MSS가 더 효율적입니다.


HDS does not offer a compelling solution to delivering different audio streams. 
HDS는 다양한 오디오 스트림을 제공하는 강력한 솔루션을 제공하지 않습니다.


Encryption and DRM 
암호화 및 DRM

HLS supports encryption of each TS file. This means that all the data in the TS file is encrypted and there is no way to extract it without access to the decryption keys. All metadata related to the stream (e.g. the location of the decryption keys) must be included in the playlist file. This works well, except that HLS does not specify a mechanism for authenticating clients to receive the decryption keys. This is considered a deployment issue. A number of vendors offer HLS-type encryption, often with their own twist which makes the final deployment incompatible with other implementations. 
HLS는 각 TS 파일의 암호화를 지원합니다. 즉, TS 파일의 모든 데이터가 암호화되고 암호 해독 키에 액세스하지 않고 추출 할 방법이 없습니다. 스트림과 관련된 모든 메타 데이터 (예 : 해독 키의 위치)는 재생 목록 파일에 포함되어야합니다. 이것은 HLS가 해독 키를 받기 위해 클라이언트를 인증하는 메커니즘을 지정하지 않는다는 점을 제외하고는 잘 작동합니다. 이는 배포 문제로 간주됩니다. 많은 공급 업체가 HLS 유형의 암호화를 제공하며, 종종 최종 배포가 다른 구현과 호환되지 않도록하는 자체 트위스트를 사용합니다.


MSS uses Microsoft’s PlayReady, which gives a complete framework for encrypting content, managing keys, and delivering them to clients. In PlayReady, only the payload of the fMP4 file is encrypted, so the chunk can carry other metadata. Microsoft makes PlayReady code available to multiple vendors that productize it, and so a number of vendors offer PlayReady capability (in a relatively undifferentiated way). 
MSS는 Microsoft의 PlayReady를 사용하여 컨텐츠 암호화, 키 관리 및 고객에게 제공하는 완벽한 프레임 워크를 제공합니다. PlayReady에서는 fMP4 파일의 페이로드 만 암호화되므로 청크가 다른 메타 데이터를 전달할 수 있습니다. Microsoft는 PlayReady 코드를 여러 공급 업체에서 사용할 수 있도록 해줍니다. 따라서 많은 공급 업체가 PlayReady 기능을 제공합니다 (상대적으로 구분되지 않은 방식으로).


HDS uses Adobe’s Flash Access, which has an interesting twist that simplifies interaction between the key management server and the scrambler that does the encryption. Typically, keys must be exchanged between these two components, and this exchange interface is not standardized. Each DRM vendor/scrambler vendor pair must implement this pair-wise proprietary API. With Adobe Access, no key exchange is necessary – the decryption keys are sent along with the content, but are themselves encrypted. Access to those keys is granted at run time, but no interaction between the key management system and scrambler is needed. Adobe licenses its Access code to third parties, or it may be used as part of the Flash Media Server product suite. 
HDS는 암호화를 수행하는 키 관리 서버와 스크램블러 간의 상호 작용을 단순화하는 흥미로운 변형이있는 Adobe의 Flash Access를 사용합니다. 일반적으로이 두 구성 요소간에 키를 교환해야하며이 교환 인터페이스는 표준화되어 있지 않습니다. 각 DRM 공급 업체 / 스크램블러 공급 업체 쌍은이 페어 방식 독점 API를 구현해야합니다. Adobe Access를 사용하면 키 교환이 필요하지 않습니다. 암호 해독 키는 콘텐츠와 함께 전송되지만 암호화되어 있습니다. 이러한 키에 대한 액세스는 런타임에 부여되지만 키 관리 시스템과 스크램블러 간의 상호 작용은 필요하지 않습니다. Adobe는 액세스 코드를 제 3 자에게 사용하거나 Flash Media Server 제품군의 일부로 사용할 수 있습니다.



Closed Captions / Subtitling 
자막 / 부제목


HLS can decode and display closed captions (using ATSC Digital Television Standard Part 4 – MPEG-2 Video System Characteristics - A/53, Part 4:2007, see [ATCA]) included in the TS chunks as of iOS 4.3 (the implementation in iOS 4.2 is more problematic). For DVB teletext, packagers need to convert the subtitle data into ATSC format or wait for clients to support teletext data. 
HLS는 iOS 4.3에서 TS 청크에 포함 된 자막을 디코딩하고 표시 할 수 있습니다 (ATSC 디지털 TV 표준 파트 4 - MPEG-2 비디오 시스템 특성 - A / 53, 파트 4 : 2007, [ATCA] 참조) iOS 4.2는 더 문제가 있습니다.) DVB 텔레 텍스트의 경우, 패키지 작성자는 자막 데이터를 ATSC 형식으로 변환하거나 클라이언트가 텔레 텍스트 데이터를 지원할 때까지 기다려야합니다.


MSS supports data tracks that hold Time Text Markup Language (TTML), a way to specify a separate data stream with subtitle, timing and placement information (see [TTML]). For MSS, packagers need to extract subtitle information from their input and convert it into a TTML track. Microsoft’s implementation of MSS client currently offers support for W3C TTML, but not for SMPTE TTML (see [SMPTE-TT]), which adds support for bitmapped subtitles, commonly used in Europe. 
MSS는 자막, 타이밍 및 배치 정보 ([TTML] 참조)가있는 별도의 데이터 스트림을 지정하는 방법 인 TTML (Time Text Markup Language)을 보유한 데이터 트랙을 지원합니다. MSS의 경우 패키지 작성자는 입력에서 자막 정보를 추출하여 TTML 트랙으로 변환해야합니다. Microsoft의 MSS 클라이언트 구현은 현재 W3C TTML을 지원하지만 SMPTE TTML ([SMPTE-TT] 참조)은 지원하지 않습니다.이 기능은 유럽에서 일반적으로 사용되는 비트 맵 자막을 지원합니다.


HDS supports data tracks that hold subtitles as DFXP file data, based on the TTML format. Clients can selectively download this data, similar to MSS, but client support requires customization and additional development. 
HDS는 TTML 형식을 기반으로 자막을 DFXP 파일 데이터로 저장하는 데이터 트랙을 지원합니다. 클라이언트는 MSS와 마찬가지로이 데이터를 선택적으로 다운로드 할 수 있지만 클라이언트 지원에는 사용자 지정 및 추가 개발이 필요합니다.



Targeted Ad insertion 
타겟 광고 삽입


HLS is the simplest protocol to use for chunk-substitution-based ad insertion. With HLS, the playlist file can be modified to deliver different ad chunks to different clients (see Figure 9). The EXT-X-DISCONTINUITY tag can be used to tell the decoder to reset (e.g. because subsequent chunks may have different PID values), and only the sequence ID must be managed carefully, so that the IDs line up when returning to the main program. HDS also supports a repeated download of bootstrap data used to specify chunks, and this can be modified to create references to ad chunks – but because the bootstrap data format is binary, and the URLs are RESTful with references to chunk indexes, the process is complex. 
HLS는 청크 대체 기반 광고 삽입에 사용할 수있는 가장 간단한 프로토콜입니다. HLS를 사용하면 재생 목록 파일을 수정하여 다른 클라이언트에 다른 광고 청크를 제공 할 수 있습니다 (그림 9 참조). EXT-X-DISCONTINUITY 태그는 디코더에 재설정을 알리는 데 사용할 수 있습니다 (예 : 후속 청크가 다른 PID 값을 가질 수 있기 때문에). 주 프로그램으로 돌아갈 때 ID가 일렬로 정렬되도록 신중하게 관리해야합니다 . 또한 HDS는 청크를 지정하는 데 사용되는 부트 스트랩 데이터를 반복적으로 다운로드 할 수 있도록 지원하며,이를 수정하여 광고 청크에 대한 참조를 만들 수 있습니다.하지만 부트 스트랩 데이터 형식이 바이너리이고 URL이 청크 색인에 대한 참조로 RESTful이기 때문에 프로세스는 복잡합니다.

MSS is trickier when it comes to chunk-based ad insertion for live streams. The fact that chunks contain timing information used to request the next chunk means that all ad chunks have to have identical timing to the main content chunks (or that some other method is used to reconcile the program time when returning to the program). Nevertheless, a proxy can be used to redirect RESTful URL chunk requests and serve different chunks to different clients. 
라이브 스트림에 대한 청크 기반 광고 삽입의 경우 MSS가 더 까다 롭습니다. 청크가 다음 청크를 요청하는 데 사용되는 타이밍 정보를 포함한다는 사실은 모든 광고 청크가 주 콘텐츠 청크와 동일한 타이밍을 가져야한다는 것을 의미합니다 (또는 프로그램으로 돌아갈 때 프로그램 시간을 조정하는 데 다른 방법이 사용됨). 그럼에도 불구하고 프록시를 사용하여 RESTful URL 청크 요청을 리디렉션하고 다른 청크를 다른 클라이언트에 제공 할 수 있습니다.

Both MSS and HDS can deliver control events in separate data tracks. These can be used to trigger client behaviors using the Silverlight and Flash environments, including ad insertion behavior. This is beyond the scope of this paper, which is focused on ‘in stream’ insertion. One difference between MSS and HDS is that MSS defines a client-side ad insertion architecture, whereas HDS does not.
MSS와 HDS는 별도의 데이터 트랙에서 제어 이벤트를 제공 할 수 있습니다. 이러한 기능을 사용하여 광고 삽입 동작을 비롯하여 Silverlight 및 Flash 환경을 사용하여 클라이언트 동작을 트리거 할 수 있습니다. 이는 '스트림'삽입에 초점을 맞춘이 백서의 범위를 벗어납니다. MSS와 HDS의 한 가지 차이점은 MSS는 클라이언트 측 광고 삽입 아키텍처를 정의하는 반면 HDS는 정의하지 않는다는 것입니다.

Figure 9. HLS ad insertion in which changes to the playlist file delivered to each client cause each client to make different URL requests for ads and thus receive targeted ad content.
그림 9. HLS 광고 삽입 : 각 클라이언트에 전달 된 재생 목록 파일을 변경하면 각 클라이언트가 광고에 대해 서로 다른 URL 요청을 작성하여 대상 광고 콘텐츠를 수신하게됩니다.

Trick Modes (Fast-forward / Rewind) 
트릭 모드 (빨리 감기 / 되감기)

VoD trick modes, such as fast-forward or rewind, are messy in all the protocols. None of the protocols offer native support for fast-forward or rewind. Some MSS variations have defined zoetrope images that can be embedded in a separate track. These can be used to show still images from the video sequence and allow seeking into a specific location in the video. 
빨리 감기 또는 되감기와 같은 VoD 트릭 모드는 모든 프로토콜에서 지저분합니다. 어떤 프로토콜도 빨리 감기 또는 되감기에 대한 기본 지원을 제공하지 않습니다. 일부 MSS 변형은 별도의 트랙에 포함될 수있는 동물 이미지를 정의합니다. 이 버튼을 사용하여 비디오 시퀀스의 스틸 이미지를 표시하고 비디오의 특정 위치를 탐색 할 수 있습니다.

HDS supports a fast playback mode, but this doesn’t appear to work well. 
HDS는 빠른 재생 모드를 지원하지만 이는 제대로 작동하지 않습니다.

Custom VoD Playlists 
맞춤 VoD 재생 목록

It is convenient to be able to take content from multiple different assets and stitch them together to form one asset. This is readily done in HLS, where the playlist can contain URLs that reference chunks from different encodings and locations. In MSS and HDS, the RESTful URL name spaces and the references to chunks via time stamp or sequence number makes such playlists basically impossible to construct.
여러 개의 서로 다른 에셋에서 컨텐츠를 가져와 함께 묶어 하나의 에셋을 구성하는 것이 편리합니다. 이것은 재생 목록이 다른 인코딩 및 위치의 청크를 참조하는 URL을 포함 할 수있는 HLS에서 쉽게 수행됩니다. MSS 및 HDS에서 RESTful URL 네임 스페이스와 타임 스탬프 또는 시퀀스 번호를 통한 청크에 대한 참조는 이러한 재생 목록을 기본적으로 생성하는 것을 불가능하게 만듭니다.

Fast Channel Change 
빠른 채널 변경

Adaptive HTTP streaming can download low bitrate chunks initially, making channel ‘tune in’ times low. The duration of the chunk directly affects how fast the channel adapts to a higher bandwidth (and higher quality video). Because of this, MSS and HDS, which are tuned to work with smaller chunks, tend to work a bit better than HLS. 
적응 형 HTTP 스트리밍은 처음에는 낮은 비트 전송률 청크를 다운로드 할 수 있으므로 '조정'시간은 낮게 유지됩니다. 청크의 지속 시간은 채널이 고 대역폭 (및 고화질 비디오)에 적응하는 속도에 직접적인 영향을줍니다. 이 때문에 작은 조각으로 작업하도록 조정 된 MSS 및 HDS는 HLS보다 조금 더 잘 작동합니다.


Failover Due to Upstream Issues 
업스트림 문제로 인한 장애 조치


HLS manifests can list failover URLs in case content is not available. The mechanism used in the variant playlist file to specify different profiles can be used to specify failover servers, since the client (starting with iOS 3.1 and later) will attempt to change to the next profile when a profile chunk requests returns an HTTP 404 ‘file not found’ code. This is a convenient, distributed redundancy mode. 
HLS 매니페스트는 콘텐츠를 사용할 수없는 경우 장애 조치 URL을 나열 할 수 있습니다. 다른 프로필을 지정하기 위해 변형 재생 목록 파일에 사용 된 메커니즘을 사용하여 장애 조치 서버를 지정할 수 있습니다. 클라이언트 (iOS 3.1 이상)는 프로필 청크 요청이 HTTP 404 '파일을 반환 할 때 다음 프로필로 변경하려고하기 때문에 찾을 수 없음 '코드입니다. 이것은 편리하고 분산 된 이중화 모드입니다.


MSS utilizes a run-time client that is fully programmable. Similarly, HDS works within the Flash run-time environment. That means that the some failover capabilities can be built into the client. However, in both cases, there isn’t a built-in mechanism in the protocol to support a generic failover capability. 
MSS는 완전히 프로그래밍 가능한 런타임 클라이언트를 사용합니다. 마찬가지로 HDS는 Flash 런타임 환경에서 작동합니다. 즉, 일부 장애 조치 기능을 클라이언트에 내장 할 수 있습니다. 그러나 두 경우 모두 프로토콜에 일반적인 장애 조치 기능을 지원하는 기본 제공 메커니즘이 없습니다.


All the protocols will failover to a different profile if chunks/playlists in a given profile are not available. This potentially allows any of the protocols to be used in a “striping” scenario in which alternate profiles come from different encoders (as long as the encoders output IDR aligned streams), so that an encoder failure causes the client to adapt to a different, available profile. 
주어진 프로필의 청크 / 재생 목록을 사용할 수없는 경우 모든 프로토콜이 다른 프로필로 장애 조치됩니다. 이는 잠재적으로 인코더가 IDR 정렬 스트림을 출력하는 한 다른 프로파일이 다른 인코더에서 나오는 "스트라이핑"시나리오에서 모든 프로토콜을 사용할 수 있도록하여 인코더 오류로 인해 클라이언트가 다른 클라이언트로 적응하도록합니다. 사용 가능한 프로필.

Stream Latency 
스트림 대기 시간

Adaptive HTTP clients buffer a number of segments. Typically one segment is currently playing, one is cached, and a third is being downloaded – so that the end-to-end latency is minimally about three segment durations long. With HLS recommended to run with 10-second chunks (though this isn’t necessary), this latency can be quite long. 
적응 형 HTTP 클라이언트는 여러 세그먼트를 버퍼링합니다. 일반적으로 하나의 세그먼트가 현재 재생 중이며, 하나는 캐시되고 세 번째 세그먼트는 다운로드됩니다. 따라서 종단 간 대기 시간은 최소한 세 세그먼트 길이 정도입니다. HLS는 10 초 청크로 실행하는 것이 좋지만 (필수는 아니지만)이 대기 시간은 상당히 길 수 있습니다.

Of the three protocols, only MSS has implemented a low latency mode in which sub-chunks are delivered to the client as soon as they are available. The client doesn’t need to wait for a whole chunk’s worth of stream to be available at the packager before requesting it, reducing its overall end-to-end latency. 
세 가지 프로토콜 중 MSS만이 하위 대기 시간이 사용 가능한 즉시 클라이언트에 전달되는 낮은 대기 시간 모드를 구현했습니다. 클라이언트는 요청하기 전에 패키저에서 전체 덩어리 스트림을 사용할 때까지 기다릴 필요가 없으므로 전반적인 종단 간 대기 시간이 단축됩니다.

Ability to Send Other Data to the Client (Including Manifest Compression) 
다른 데이터를 클라이언트에 전송하는 기능 (매니페스트 압축 포함)

HLS and HDS can send metadata to the client in their playlist and manifest files. MSS and HDS allow data tracks which can trigger client events and contain almost any kind of data. HLS allows a separate ID3 data track to be muxed into the TS chunks. This can be used to trigger client-side events. 
HLS 및 HDS는 재생 목록 및 매니페스트 파일에서 클라이언트에 메타 데이터를 보낼 수 있습니다. MSS 및 HDS는 클라이언트 이벤트를 트리거하고 거의 모든 종류의 데이터를 포함 할 수있는 데이터 트랙을 허용합니다. HLS를 사용하면 별도의 ID3 데이터 트랙을 TS 청크로 다중화 할 수 있습니다. 이것은 클라이언트 측 이벤트를 트리거하는 데 사용될 수 있습니다.

MSS also allows manifest files to be compressed using gzip (as well as internal run-length-type compression constructs) for faster delivery. 
또한 MSS를 사용하면 gzip (내부 런타임 길이 형식 압축 구성 요소는 물론)을 사용하여 매니페스트 파일을 압축하여 더 빠르게 전달할 수 있습니다.



5. Conclusion 
5. 결론

A review of how these three formats compare is shown in the table below. In spite of MSS’s better performance, the technology that will gain the most market share remains to be seen. Ultimately, it may be DASH that succeeds in the market in the long run and not any of the technologies discussed here.
이 세 가지 형식을 비교하는 방법에 대한 리뷰가 아래 표에 나와 있습니다. MSS의 우수한 성능에도 불구하고 가장 많은 시장 점유율을 얻을 수있는 기술은 여전히 남아 있습니다. 궁극적으로 장기적으로 시장에서 성공한 DASH 일 수도 있고 여기에서 논의 된 기술이 아닐 수도 있습니다.


In any case, online and mobile viewing of premium video content is rapidly complementing the traditional TV experience, and delivery over the Internet requires new protocols to produce a high quality of experience based on device type and network congestion. Apple HLS, Microsoft Smooth Streaming and Adobe Flash HDS represent adaptive delivery protocols that enable high-quality video consumption experiences over the Internet. Content providers must now equip network delivery infrastructure with products capable of receiving standard video containers, slicing them into segments, and delivering those segments along with encryption where required. As with all new technology, the choice of delivery protocol will be made based on a combination of technical and business factors.
어쨌든 프리미엄 비디오 컨텐츠의 온라인 및 모바일 시청은 전통적인 TV 경험을 빠르게 보완하고 있으며 인터넷을 통해 제공하려면 장치 유형 및 네트워크 정체를 기반으로 한 고품질의 경험을 생산하는 새로운 프로토콜이 필요합니다. Apple HLS, Microsoft Smooth Streaming 및 Adobe Flash HDS는 인터넷을 통한 고품질 비디오 소비 경험을 가능케하는 적응 형 배달 프로토콜입니다. 콘텐츠 제공 업체는 이제 표준 비디오 컨테이너를 수신 할 수있는 제품을 네트워크 전달 인프라에 설치하고이를 세그먼트로 분할하고 필요한 경우 암호화와 함께 제공해야합니다. 모든 신기술과 마찬가지로, 배달 프로토콜의 선택은 기술 및 비즈니스 요소의 조합을 기반으로 이루어질 것입니다.




6. References 
6. 참고 문헌

[MP4] International Organization for Standardization (2003). "MPEG-4 Part 14: MP4 file format; ISO/IEC 14496-14:2003" 
[ATCA] ATSC Digital Television Standard Part 4 – MPEG-2 Video System Characteristics (A/53, Part 4:2007), http://www.atsc.org/cms/standards/a53/a_53-Part-4-2009.pdf 
[TTML] Timed Text Markup Language, W3C Recommendation 18 November 2010, http://www.w3.org/TR/ttaf1-dfxp/ 
[MSS] IIS Smooth Streaming Transport Protocol, http://www.iis.net/community/files/media/smoothspecs/%5BMS-SMTH%5D.pdf 
[F4M] Flash Media Manifest File Format Specification, http://osmf.org/dev/osmf/specpdfs/FlashMediaManifestFileFormatSpecification.pdf 
[HDS] HTTP Dynamic Streaming on the Adobe Flash Platform, http://www.adobe.com/products/httpdynamicstreaming/pdfs/httpdynamicstreaming_wp_ue.pdf 
[AHS] 3GPP TS 26.234: "Transparent end-to-end packet switched streaming service (PSS); Protocols and codecs". 
[HAS] OIPF Release 2 Specification - HTTP Adaptive Streaming http://www.openiptvforum.org/docs/Release2/OIPF-T1-R2-Specification-Volume-2a-HTTP-Adaptive-Strea ming-V2_0-2010-09-07.pdf 
[HLSID3] Timed Metadata for HTTP Live Streaming, http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/HTTP_Live_Streaming_Met adata_Spec/Introduction/Introduction.html 
[DVB-BITMAPS] Digital Video Broadcasting (DVB); Subtitling systems, ETSI EN 300 743 V1.3.1 (2006-11), http://www.etsi.org/deliver/etsi_en/300700_300799/300743/01.03.01_60/en_300743v010301p.pdf







반응형

'# 03 > 프로토콜' 카테고리의 다른 글

스트리밍 방식  (0) 2019.02.05
WebRTC topology  (0) 2019.02.05
Comparing Adaptive HTTP Streaming Technologies-1  (0) 2019.02.05
Automated Objective and Subjective Evaluation of HTTP Adaptive Streaming Systems  (0) 2019.02.05
MPEG DASH  (0) 2019.02.05