{"id":1804,"date":"2023-05-11T11:43:53","date_gmt":"2023-05-11T09:43:53","guid":{"rendered":"https:\/\/www.spcast.eu\/uncategorized\/hls-http-live-streaming\/"},"modified":"2026-03-13T14:08:24","modified_gmt":"2026-03-13T12:08:24","slug":"hls-http-live-streaming","status":"publish","type":"post","link":"https:\/\/www.spcast.eu\/en\/faq\/general\/hls-http-live-streaming\/","title":{"rendered":"What is HLS? An in-depth look at the streaming protocol and the SPCast solution"},"content":{"rendered":"\n<p><strong>HLS (HTTP Live Streaming)<\/strong> is a streaming protocol developed by Apple that has revolutionized the transmission of audio and video files over the internet. Today, it is the means of choice for live events and on-demand streaming on a variety of end devices such as computers, smartphones, tablets and smart TVs. <\/p>\n\n<p>An often underestimated point: Although HLS is often associated with video, it works <strong>excellently for pure audio content<\/strong> and offers a stability that classic protocols often do not achieve.<\/p>\n\n<h2 class=\"wp-block-heading\">How does HLS work in detail?<\/h2>\n\n<p>The main mechanism of HLS is not to send the data stream as one uninterrupted &#8220;block&#8221;, but to divide it into <strong>small segments<\/strong>. These segments are transmitted to the client via the standard HTTP protocol. <\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>Segmentation:<\/strong> Each segment has a fixed duration, typically between 2 and 10 seconds.<\/li>\n\n\n\n<li><strong>The playlist file (M3U8):<\/strong> When a user opens an HLS URL, the client first loads the so-called M3U8 file. This acts as an index and contains the URLs of the individual segment files as well as information about available bit rates. <\/li>\n\n\n\n<li><strong>Playback:<\/strong> The client selects the appropriate stream, downloads the segments one after the other and puts them together seamlessly for the listener.<\/li>\n<\/ul>\n\n<h2 class=\"wp-block-heading\">Advantages of HLS compared to other protocols<\/h2>\n\n<p>HLS offers significant advantages that have made it the industry standard.<\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>Adaptive Streaming (ABR):<\/strong> HLS dynamically adapts the quality of the stream to the network conditions. If the internet connection fluctuates, the player automatically reduces the bit rate to avoid buffer pauses. <\/li>\n\n\n\n<li><strong>Compatibility:<\/strong> HLS is natively supported by all Apple devices and Android. On desktop browsers (Chrome, Firefox, Edge), playback is now possible across the board thanks to modern web technologies (MSE). <\/li>\n\n\n\n<li><strong>Scalability:<\/strong> As HLS is based on HTTP, content can be distributed efficiently via <strong>content delivery networks (CDNs)<\/strong>. This makes it possible to serve a massive number of simultaneous listeners without overloading the origin server. <\/li>\n\n\n\n<li><strong>Reusability:<\/strong> Segmentation enables simple storage and archiving so that users can easily retrieve content at different times.<\/li>\n<\/ul>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">HLS in SPCast: The technical challenge<\/h2>\n\n<p>You have to understand: <strong>HLS is very &#8220;rigid&#8221; by nature.<\/strong> The protocol is not actually intended for dynamic changes of sources or mount points within a running stream. In the standard implementation, a change of signal source necessarily causes the listener to drop out or the HLS stream to stop. <\/p>\n\n<h3 class=\"wp-block-heading\">Note for use in SPCast before version 0.9.9.097<\/h3>\n\n<p>In older versions, HLS should be used with caution due to this protocol-related rigidity:<\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>No fallback functions:<\/strong> Automatic fallback solutions are not available.<\/li>\n\n\n\n<li><strong>Mountpoint switching issues:<\/strong> Seamless transition between AutoDJ and live source does not work when broadcasting via SPCast moderator accounts.<\/li>\n\n\n\n<li><strong>Restricted transitions:<\/strong> The transitions only work if you send directly via the AutoDJ, as the mount point is not changed here.<\/li>\n\n\n\n<li><strong>Recommendation:<\/strong> Do not use HLS references here as a standard for directories, but rather point users specifically to their use.<\/li>\n<\/ul>\n\n<h3 class=\"wp-block-heading\">The solution: HLS in SPCast from version 0.9.9.097<\/h3>\n\n<p><em><strong>Since:<\/strong> 16.02.2026<\/em><\/p>\n\n<p>Since version 0.9.9.097, HLS is <strong>no longer<\/strong> subject to <strong>any restrictions<\/strong> in SPCast systems. All the problems of older versions described above are obsolete. <\/p>\n\n<p>Since the HLS protocol itself is not designed for such flexibility, we have <strong>developed our own solution<\/strong> that works &#8220;around the protocol&#8221;. This development makes it possible to map the three critical conditions (live change, mountpoint change, fallbacks) seamlessly and stably, which would not normally be possible with native HLS. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>HLS (HTTP Live Streaming) is a streaming protocol developed by Apple that has revolutionized the transmission of audio and video files over the internet. Today, it is the means of choice for live events and on-demand streaming on a variety of end devices such as computers, smartphones, tablets and smart TVs. An often underestimated point:&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[111],"tags":[120],"class_list":["post-1804","post","type-post","status-publish","format-standard","hentry","category-general","tag-hls-en"],"_links":{"self":[{"href":"https:\/\/www.spcast.eu\/en\/wp-json\/wp\/v2\/posts\/1804","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.spcast.eu\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.spcast.eu\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.spcast.eu\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.spcast.eu\/en\/wp-json\/wp\/v2\/comments?post=1804"}],"version-history":[{"count":9,"href":"https:\/\/www.spcast.eu\/en\/wp-json\/wp\/v2\/posts\/1804\/revisions"}],"predecessor-version":[{"id":2779,"href":"https:\/\/www.spcast.eu\/en\/wp-json\/wp\/v2\/posts\/1804\/revisions\/2779"}],"wp:attachment":[{"href":"https:\/\/www.spcast.eu\/en\/wp-json\/wp\/v2\/media?parent=1804"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.spcast.eu\/en\/wp-json\/wp\/v2\/categories?post=1804"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.spcast.eu\/en\/wp-json\/wp\/v2\/tags?post=1804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}