<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	 xmlns:media="http://search.yahoo.com/mrss/" >

<channel>
	<title>low-latency &#8211; Bitmovin</title>
	<atom:link href="https://bitmovin.com/tag/low-latency/feed" rel="self" type="application/rss+xml" />
	<link>https://bitmovin.com</link>
	<description>Bitmovin provides adaptive streaming infrastructure for video publishers and integrators. Fastest cloud encoding and HTML5 Player. Play Video Anywhere.</description>
	<lastBuildDate>Fri, 03 Feb 2023 17:13:08 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://bitmovin.com/wp-content/uploads/2023/11/bitmovin_favicon.svg</url>
	<title>low-latency &#8211; Bitmovin</title>
	<link>https://bitmovin.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Low Latency vs. Target Latency: Why there isn’t always a need for speed</title>
		<link>https://bitmovin.com/low-latency-vs-target-latency</link>
					<comments>https://bitmovin.com/low-latency-vs-target-latency#respond</comments>
		
		<dc:creator><![CDATA[Igor Oreper]]></dc:creator>
		<pubDate>Wed, 04 Jan 2023 10:14:59 +0000</pubDate>
				<category><![CDATA[VidTech]]></category>
		<category><![CDATA[HLS]]></category>
		<category><![CDATA[low-latency]]></category>
		<guid isPermaLink="false">https://bitmovin.com/?p=248805</guid>

					<description><![CDATA[<p>Low latency has been a hot topic in video streaming for a while now. It&#8217;s the trendy keyword you hear at every trade show throughout the year; it even ranks high in our annual Video Developer Report as one of the biggest headaches for brands to achieve or the one they are very interested in...</p>
<p>The post <a rel="nofollow" href="https://bitmovin.com/low-latency-vs-target-latency">Low Latency vs. Target Latency: Why there isn’t always a need for speed</a> appeared first on <a rel="nofollow" href="https://bitmovin.com">Bitmovin</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-rank-math-toc-block" id="rank-math-toc"><h2>Table of Contents</h2><nav><ul><li><a href="#strong-back-to-basics-what-are-low-and-target-latency-and-how-are-they-achieved-strong">Back to basics &#8211; What are Low and Target Latency, and how are they achieved?</a></li><li><a href="#strong-how-do-both-affect-the-viewer-experience-strong">How do both affect the viewer experience?</a></li><li><a href="#strong-what-does-this-mean-for-a-businesss-bottom-line-strong">What does this mean for a business&#8217;s bottom line?</a></li><li><a href="#wrapping-up">Wrapping up</a></li></ul></nav></div>



<p>Low latency has been a hot topic in video streaming for a while now. It&#8217;s the trendy keyword you hear at every trade show throughout the year; it even ranks high in our annual <a href="https://bitmovin.com/video-developer-report/#pdf" target="_blank" rel="noreferrer noopener">Video Developer Report</a> as one of the biggest headaches for brands to achieve or the one they are very interested in deploying.</p>



<p>However, despite the huge amount of conversations low latency generates, it&#8217;s also one of the most difficult terms to define. This is because each use case could require playback delay to be in the hundreds of milliseconds (ultra-low latency) to a span of 1-5 seconds (low latency), meaning your perception of what low latency is can differ significantly from another&#8217;s point of view. Additionally, low latency is limiting because there is a high probability you&#8217;re sacrificing quality for a fast video startup time. You are also likely to pay higher prices and work with multiple vendors to get the specific hardware or software you need to facilitate each step of the video workflow.</p>



<p>Furthermore, not every video streaming service needs low latency, even though it&#8217;s constantly requested by startups to enterprise-level businesses. A better question may not be &#8220;How do I minimize my live stream&#8217;s delay?&#8221; but &#8220;What is the target latency I want my audience to have?&#8221; Target latency is a feature not mentioned often and one we will explore in this blog, as it can make a world of difference to the playback experience you&#8217;re offering your viewers.</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading" id="strong-back-to-basics-what-are-low-and-target-latency-and-how-are-they-achieved-strong"><strong>Back to basics &#8211; What are Low and Target Latency, and how are they achieved?</strong></h2>



<p>If you are unfamiliar with low latency, it essentially refers to minimizing the delay between a live on-site production of an event and a specific viewer watching it over the Internet. Standard HLS and DASH streams have a delay of 8 to 30 seconds, depending on stream settings and a particular viewer&#8217;s streaming environment (e.g., the protocol used, buffer size, bandwidth connection, device, and location). For a stream to be considered low latency, it can&#8217;t have more than 5 seconds of broadcast delay, with some workflows needing as low as a few hundred milliseconds for ultra-low latency, as stated above. There are several ways to achieve this very low broadcast delay, each with its benefits and costs. However, all methods available in the market today are not standardized, and they all require each piece of your video supply chain to support a chosen low-latency streaming technology, from the live encoder and packager to the CDN and player. This is important as it drives costs and limits your flexibility in selecting a best-of-breed technology stack.</p>



<div style="height:5px" aria-hidden="true" class="wp-block-spacer"></div>



<p>On the other hand, target latency is a predefined time delay so the entire audience can watch the same stream simultaneously. The stream is not affected by the likely differences between individual viewers&#8217; circumstances, meaning that everyone in that group can experience the same live event at the same time or very close to it. This stream synchronization can be achieved by choosing a specific buffer size across the target audience and managing playback to a target delay while attempting to cater to viewers who represent the lowest common denominator (e.g., slowest to fill buffer). You can set the target latency directly in the Bitmovin Player using the <a href="https://bitmovin.com/docs/player/api-reference/web/web-sdk-v8-api-source-configuration#/player/web/8/docs/interfaces/core_config.lowlatencyconfig.html#targetlatency" target="_blank" rel="noreferrer noopener">targetLatency</a> property, enabling you to design the user experience as you want.</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading" id="strong-how-do-both-affect-the-viewer-experience-strong"><strong>How do both affect the viewer experience?</strong></h2>



<p>The benefits of low latency revolve around getting viewers their content fast, similar to broadcast speeds, which helps make them feel more connected with the live event. Live sports is an excellent example of where low latency plays a prominent role in the viewing experience. It helps combat the &#8220;Noisy Neighbor Effect,&#8221; where your audience can be negatively affected when seeing notifications or hearing cheers from neighbors when something happens before they see it on their screen. This also applies to real-time betting, which requires a stream to be available in ultra-low latency to see real-time results. Low latency is also critical for live seminars, esports, fitness classes, and many other live interactive use cases to help keep your audience engaged and up-to-date with what&#8217;s happening at that moment.</p>



<div style="height:5px" aria-hidden="true" class="wp-block-spacer"></div>



<p>The biggest downside of the available low latency solutions is that they do not permit players to buffer enough content, which leads to playback interruptions when streaming conditions are less than ideal (e.g., poor wifi, an ISP problem, device performance). This alone can quickly lead to slow video starts, rebuffering, decreased stream quality, and other performance issues, creating a terrible experience for the user.</p>



<div style="height:5px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Any video streaming service can use target latency in a way that minimizes any downside to the viewer experience. This is because you can set the delay for a consistent experience for the entire audience or for a predefined audience, ensuring your viewers will have a better quality of experience due to increased stream stability and control during playback. For example, if you offer a second screen experience like a chat feature within the live event, target latency will keep everyone at the same live point so that it feels more like a live event. The only potential downside of the target latency solution is for viewers who may be using different video streaming services, which may cause them to be at different live points relative to their neighbors.</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading" id="strong-what-does-this-mean-for-a-businesss-bottom-line-strong"><strong>What does this mean for a business&#8217;s bottom line?</strong></h2>



<p>Pricing concerns are one of the top priorities when evaluating what is best for your business. From each part of your setup to the encoding and bandwidth requirements, low-latency workflows have the potential to be more expensive. This is because each component of your video supply chain must support the low-latency streaming technology you choose and can potentially expand to multiple ones if you&#8217;re offering low-latency streaming across different platforms (e.g., iOS and Android). Due to the complexity, it can take numerous vendors and a lot of integration for you to achieve low latency needs. This is a fundamental challenge as high costs inevitably limit realizing these capabilities, especially in tough economic times.</p>



<div style="height:5px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Target latency, on the other hand, requires only client-side software changes, so implementation and operational costs are relatively low, as you won&#8217;t need to buy and integrate specialized components.</p>



<p></p>



<h2 class="wp-block-heading" id="wrapping-up">Wrapping up</h2>



<p>Reduced latency of 8-10 seconds is already achievable for most video streaming services today using standardized HLS and DASH protocols which already support a broad range of devices compared to (ultra) low latency solutions. Video streaming services should carefully consider the real-world pros and cons of (ultra) low latency vs. target latency solutions as they continue to push the limits in delivering the best viewer experience to their audiences.</p>
<p>The post <a rel="nofollow" href="https://bitmovin.com/low-latency-vs-target-latency">Low Latency vs. Target Latency: Why there isn’t always a need for speed</a> appeared first on <a rel="nofollow" href="https://bitmovin.com">Bitmovin</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://bitmovin.com/low-latency-vs-target-latency/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Video Tech Deep-Dive: Live Low Latency Streaming Part 3 &#8211; Low-Latency HLS</title>
		<link>https://bitmovin.com/live-low-latency-hls</link>
		
		<dc:creator><![CDATA[Jameson Steiner]]></dc:creator>
		<pubDate>Mon, 10 Aug 2020 09:50:09 +0000</pubDate>
				<category><![CDATA[Developers]]></category>
		<category><![CDATA[live encoding]]></category>
		<category><![CDATA[low-latency]]></category>
		<guid isPermaLink="false">https://bitmovin.com/?p=122639</guid>

					<description><![CDATA[<p>This blog post is the final piece of our Live Low-Latency Streaming series, where we previously covered the basic principles of low-latency streaming in OTT and LL-DASH. This final post focuses on latency when using Apple’s HTTP Live Streaming (HLS) protocol and how the latency time can be reduced. This article assumes that you are...</p>
<p>The post <a rel="nofollow" href="https://bitmovin.com/live-low-latency-hls">Video Tech Deep-Dive: Live Low Latency Streaming Part 3 &#8211; Low-Latency HLS</a> appeared first on <a rel="nofollow" href="https://bitmovin.com">Bitmovin</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img fetchpriority="high" decoding="async" class="aligncenter size-large wp-image-122660" src="https://bitmovin.com/wp-content/uploads/2020/08/Blog-live-low-latency-streaming-p.3-1-1024x512.jpg" alt="- Bitmovin" width="1024" height="512"><br />
<span style="font-weight: 400;">This blog post is the final piece of our Live Low-Latency Streaming series, where we previously covered the basic principles of low-latency streaming in OTT and LL-DASH. This final post focuses on latency when using </span><a href="https://developer.apple.com/streaming/" rel="nofollow noopener" target="_blank"><span style="font-weight: 400;">Apple’s HTTP Live Streaming</span></a><span style="font-weight: 400;"> (HLS) protocol and how the latency time can be reduced. This article assumes that you are already familiar with the basics of HLS and its manifest/playlist mechanics. You can view the first two posts below:</span></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;"><a href="https://bitmovin.com/live-low-latency-streaming-p1/">Part 1 Fundamentals</a> </span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;"><a href="https://bitmovin.com/live-low-latency-streaming-p2/">Part 2 Chunked delivery with CMAF in MPEG-DASH</a> </span></li>
</ul>
<h2><span style="font-weight: 400;">Why is latency high in HLS?</span></h2>
<p><span style="font-weight: 400;">HLS in its current specifications favors stream reliability over latency. Higher latency is accepted in exchange for stable playback without interruptions. In section</span> <a href="https://tools.ietf.org/html/rfc8216#section-6.3.3" rel="nofollow noopener" target="_blank"><span style="font-weight: 400;">6.3.3. Playing the Media Playlist File</span></a><span style="font-weight: 400;"> the HLS specification states that a playback client</span></p>
<blockquote><p><span style="font-weight: 400;">SHOULD NOT choose a segment that starts less than three target durations from the end of the playlist file</span></p></blockquote>
<p><img decoding="async" class="aligncenter wp-image-122641" src="https://bitmovin.com/wp-content/uploads/2020/08/Low-Latency-HLS_Earliest-stream-segment-to-join_linear-visual.jpg" alt="Low Latency HLS _Earliest stream segment to join_linear visual" width="720" height="346" srcset="https://b3148424.smushcdn.com/3148424/wp-content/uploads/2020/08/Low-Latency-HLS_Earliest-stream-segment-to-join_linear-visual.jpg?size=144x69&amp;lossy=2&amp;strip=1&amp;webp=1 144w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2020/08/Low-Latency-HLS_Earliest-stream-segment-to-join_linear-visual-300x144.png?lossy=2&amp;strip=1&amp;webp=1 300w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2020/08/Low-Latency-HLS_Earliest-stream-segment-to-join_linear-visual.jpg?size=432x208&amp;lossy=2&amp;strip=1&amp;webp=1 432w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2020/08/Low-Latency-HLS_Earliest-stream-segment-to-join_linear-visual.jpg?lossy=2&amp;strip=1&amp;webp=1 512w" sizes="(max-width: 720px) 100vw, 720px" /><br />
<span style="font-weight: 400;">Honoring this requirement results in having a latency of at least 3 target durations. Given typical target durations for current HLS deployments of 10 or </span><a href="https://developer.apple.com/documentation/http_live_streaming/hls_authoring_specification_for_apple_devices#2969514" rel="nofollow noopener" target="_blank"><span style="font-weight: 400;">6 seconds</span></a><span style="font-weight: 400;">, we would end up with a latency of at least 30 or 18 seconds, which is far from low. Even if we choose to ignore the above requirement, the fact that segments are typically produced, transferred, and consumed in their entirety poses a high risk of buffer underruns and subsequent playback interruptions, as described in more detail in the first part of this blog series.</span><br />
<span style="font-weight: 400;">The HLS media playlist for the above depicted this live stream would look something like this:</span><br />
[bg_collapse view=&#8221;button-blue&#8221; color=&#8221;#f7f7f7&#8243; icon=&#8221;eye&#8221; expand_text=&#8221;View HLS media playlist&#8221; collapse_text=&#8221;Close HLS media playlist&#8221; ]</p>
<pre><img decoding="async" class="aligncenter wp-image-122644 size-full" src="https://bitmovin.com/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.23.21.png" alt="Low-Latency HLS _HLS media playlist call request_code screenshot" width="368" height="310" srcset="https://b3148424.smushcdn.com/3148424/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.23.21-300x253.png?lossy=2&amp;strip=1&amp;webp=1 300w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.23.21.png?lossy=2&amp;strip=1&amp;webp=1 368w" sizes="(max-width: 368px) 100vw, 368px" /></pre>
<p>[/bg_collapse]</p>
<h2><span style="font-weight: 400;">Road to Low-Latency HLS</span></h2>
<p><span style="font-weight: 400;">2017’s Periscope, the most popular platform for live streaming of user-generated content at the time, investigated streaming solutions to replace their RTMP- and HLS-based hybrid approach with a more scalable one. The requirement was to offer similar end-to-end latency as RTMP but in a more cost-effective way; considering that their use case was streaming to large audiences. Periscope presented </span><a href="https://medium.com/@periscopecode/introducing-lhls-media-streaming-eb6212948bef" rel="nofollow noopener" target="_blank"><span style="font-weight: 400;">their solution</span></a><span style="font-weight: 400;"> to high latency issues: which took Apple’s HLS protocol, made two fundamental changes and called it Low-Latency HLS (LHLS):</span></p>
<ol>
<li style="font-weight: 400;"><span style="font-weight: 400;">Segments are delivered using HTTP/1.1 Chunked Transfer Coding</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Segments are advertised in the HLS playlist before the are available</span></li>
</ol>
<p><span style="font-weight: 400;">If you read our previous blog posts about Low-Latency streaming, you might recognize these simple concepts as being the key ingredients for today’s OTT-based Low-Latency streaming approaches, like LL-DASH. Periscope’s work likely sparked and influenced the following developments around low-latency streaming such as LL-DASH and a </span><a href="https://github.com/video-dev/hlsjs-rfcs/blob/a6e7cc44294b83a7dba8c4f45df6d80c4bd13955/proposals/0001-lhls.md" rel="nofollow noopener" target="_blank"><span style="font-weight: 400;">community-driven initiative</span></a><span style="font-weight: 400;"> for defining modifications to HLS aiming to reduce streaming latency that started at the end of 2018. </span><br />
<span style="font-weight: 400;">The core of the community proposal for LHLS was the same as the aforementioned concepts. Segments should be loaded in chunks using HTTP CTE and early availability of incomplete segments should be signaled using a new </span><span style="font-weight: 400;">#EXT-X-PREFETCH</span><span style="font-weight: 400;"> tag in the playlist. In the example below, the client can already load and consume the currently available data of </span><span style="font-weight: 400;">6.ts</span><span style="font-weight: 400;"> and continue to do so as the chunks become available over time. Furthermore, the request for the segment </span><span style="font-weight: 400;">7.ts</span><span style="font-weight: 400;"> can be made early on to save network round-trip time, even though production had not started yet. It is also worth mentioning that the LHLS proposal preserves full backward-compatibility allowing standard HLS clients to consume such streams. This was the gist of the proposed implementation; you can find the full proposal in the </span><a href="https://github.com/video-dev/hlsjs-rfcs/blob/a6e7cc44294b83a7dba8c4f45df6d80c4bd13955/proposals/0001-lhls.md" rel="nofollow noopener" target="_blank"><span style="font-weight: 400;">hlsjs-rfcs GitHub repository</span></a><span style="font-weight: 400;">.</span><br />
[bg_collapse view=&#8221;button-blue&#8221; color=&#8221;#f7f7f7&#8243; icon=&#8221;eye&#8221; expand_text=&#8221;View LHLS media playlist proposal&#8221; collapse_text=&#8221;Close LHLS media playlist proposal&#8221; ]<br />
<img loading="lazy" decoding="async" class="aligncenter wp-image-122645 size-full" src="https://bitmovin.com/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.24.30.png" alt="Low-Latency HLS _LHLS modification proposal_code screenshot" width="365" height="363" srcset="https://b3148424.smushcdn.com/3148424/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.24.30-150x150.png?lossy=2&amp;strip=1&amp;webp=1 150w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.24.30-300x298.png?lossy=2&amp;strip=1&amp;webp=1 300w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.24.30.png?lossy=2&amp;strip=1&amp;webp=1 365w" sizes="(max-width: 365px) 100vw, 365px" /><br />
[/bg_collapse]<br />
<span style="font-weight: 400;">Individuals across several companies in the media industry came together to work on this proposal with the hope that also Apple, being the driving force behind HLS, would join in and work the proposal into the official HLS specification. However, things came to fruition very differently than expected as Apple presented its own preliminary version, a very different approach during their 2019’s Worldwide Developers Conference.</span><br />
<span style="font-weight: 400;">Despite it being (and staying) a proprietary approach, some companies, like Twitch, are successfully using it in their production systems.</span></p>
<h2><span style="font-weight: 400;">Apple’s Low-Latency HLS</span></h2>
<p><span style="font-weight: 400;">In this section we’ll cover the principles of Apple’s preliminary specification for Low-Latency HLS.</span></p>
<h3><span style="font-weight: 400;">Generation of Partial Media Segments</span></h3>
<p><span style="font-weight: 400;">While HLS content is split into individual segments, in low-latency HLS each segment further consists of </span><i><span style="font-weight: 400;">parts </span></i><span style="font-weight: 400;">that are independently addressable by the client. For example, a segment of 6 seconds can consist of 30 parts of 200ms duration each. Depending on the </span><a href="https://go.bitmovin.com/ultimate-guide-container-formats"><span style="font-weight: 400;">container format</span></a><span style="font-weight: 400;">, such parts can represent CMAF chunks or a sequence of TS packets. This partitioning of segments decouples the end-to-end latency from the long segment duration and allows the client to load parts of a segment as soon as they become available. Compared to LL-DASH, this is achieved by using HTTP CTE, however, the MPD does not advertise individual parts/chunks of segments.</span><br />
[bg_collapse view=&#8221;button-blue&#8221; color=&#8221;#f7f7f7&#8243; icon=&#8221;eye&#8221; expand_text=&#8221;View partial media segment generation in low latency HLS&#8221; collapse_text=&#8221;Close partial media segment generation in low latency HLS&#8221; ]<br />
<img loading="lazy" decoding="async" class="aligncenter wp-image-122646 size-full" src="https://bitmovin.com/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.28.32.png" alt="Partial media segment generation in Low-Latency HLS _code screenshot" width="515" height="525" srcset="https://b3148424.smushcdn.com/3148424/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.28.32-294x300.png?lossy=2&amp;strip=1&amp;webp=1 294w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.28.32.png?size=384x391&amp;lossy=2&amp;strip=1&amp;webp=1 384w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.28.32.png?lossy=2&amp;strip=1&amp;webp=1 515w" sizes="(max-width: 515px) 100vw, 515px" /><br />
[/bg_collapse]<br />
<span style="font-weight: 400;">Partial segments are advertised using a new</span><span style="font-weight: 400;"> EXT-X-PART</span><span style="font-weight: 400;"> tag. Note that partial segments are only advertised for the most recent segments in the playlist. Furthermore, the partial segments (</span><span style="font-weight: 400;">filePart272.x.mp4</span><span style="font-weight: 400;">) and the respective full segments (</span><span style="font-weight: 400;">fileSequence272.mp4</span><span style="font-weight: 400;">) are offered.</span><br />
<span style="font-weight: 400;">Partial segments can also reference the same file but at different byte ranges. Clients can thereby load multiple partial segments with a single request and save round-trips compared to making separate requests for each part (as seen below).</span><br />
<img loading="lazy" decoding="async" class="aligncenter wp-image-122647 size-full" src="https://bitmovin.com/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.30.38.png" alt="Low-Latency HLS_byterange variations for partial segment requests_code screenshot" width="571" height="60" srcset="https://b3148424.smushcdn.com/3148424/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.30.38-300x32.png?lossy=2&amp;strip=1&amp;webp=1 300w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.30.38.png?size=384x40&amp;lossy=2&amp;strip=1&amp;webp=1 384w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.30.38.png?lossy=2&amp;strip=1&amp;webp=1 571w" sizes="(max-width: 571px) 100vw, 571px" /></p>
<h3><span style="font-weight: 400;">Preload hints and blocking of Media downloads</span></h3>
<p><span style="font-weight: 400;">Soon to be available partial segments are advertised prior to their actual availability in the playlist by a new</span><span style="font-weight: 400;"> EXT-X-PRELOAD-HINT tag</span><span style="font-weight: 400;">. This enables clients to open a request early and the server will respond once the data becomes available. This way the client can “save” the round-trip time for the request.</span><br />
<img loading="lazy" decoding="async" class="aligncenter wp-image-122648 size-full" src="https://bitmovin.com/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.32.28.png" alt="Low-Latency HLS _Preload hints for media segments_code screenshot" width="513" height="73" srcset="https://b3148424.smushcdn.com/3148424/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.32.28-300x43.png?lossy=2&amp;strip=1&amp;webp=1 300w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.32.28.png?size=384x55&amp;lossy=2&amp;strip=1&amp;webp=1 384w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.32.28.png?lossy=2&amp;strip=1&amp;webp=1 513w" sizes="(max-width: 513px) 100vw, 513px" /></p>
<h3><span style="font-weight: 400;">Playlist Delta Updates</span></h3>
<p><span style="font-weight: 400;">Clients have to refresh HLS playlists more frequently for low-latency HLS. Playlist Delta Updates can be used to reduce the amount of data transferred for each playlist request. A new</span><span style="font-weight: 400;"> EXT-X-SKIP</span><span style="font-weight: 400;"> tag replaces the content of the playlist that the client already received with a previous request.</span></p>
<h3><span style="font-weight: 400;">Blocking of Playlist reload</span></h3>
<p><span style="font-weight: 400;">The discovery of new segments becoming available for an HLS live stream is usually applied by the client reloading the playlist file in regular intervals and checking for new segments being appended. In the case of low-latency streaming, it is desirable to avoid any delay from a (partial) segment becoming available in the playlist to the client discovering its availability. With the playlist reloading approach, such discovery delay can be as high as the reload time interval in the worst case.</span><br />
<span style="font-weight: 400;">With the new feature of blocking playlist reloads, clients can specify which future segment’s availability they are awaiting and the server will have to hold onto that playlist request until that specific segment becomes available in the playlist. The segment to be awaited for is specified using a query parameter on the playlist request.</span></p>
<h3><span style="font-weight: 400;">Rendition Reports</span></h3>
<p><span style="font-weight: 400;">When playing at low latencies, fast bitrate adaptation is crucial to avoid playback interruptions due to buffer underruns. To save round-trips during playlist switching, playlists must contain rendition reports via a new</span><span style="font-weight: 400;"> EXT-X-RENDITION-REPORT</span><span style="font-weight: 400;"> tag that informs about the most recent segment and part in the respective rendition.</span><br />
<img loading="lazy" decoding="async" class="aligncenter size-full wp-image-122649" src="https://bitmovin.com/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.34.11.png" alt="- Bitmovin" width="559" height="40" srcset="https://b3148424.smushcdn.com/3148424/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.34.11-300x21.png?lossy=2&amp;strip=1&amp;webp=1 300w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.34.11.png?size=384x27&amp;lossy=2&amp;strip=1&amp;webp=1 384w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2020/08/Screenshot-2020-08-10-at-11.34.11.png?lossy=2&amp;strip=1&amp;webp=1 559w" sizes="(max-width: 559px) 100vw, 559px" /></p>
<h2><span style="font-weight: 400;">Conclusion</span></h2>
<p><span style="font-weight: 400;">For more detailed information on Apple’s low-latency HLS take a look at the </span><a href="https://developer.apple.com/documentation/http_live_streaming/protocol_extension_for_low-latency_hls_preliminary_specification" rel="nofollow noopener" target="_blank"><span style="font-weight: 400;">Preliminary Specification</span></a><span style="font-weight: 400;"> and the </span><a href="https://datatracker.ietf.org/doc/draft-pantos-hls-rfc8216bis/" rel="nofollow noopener" target="_blank"><span style="font-weight: 400;">latest IEFT draft</span></a><span style="font-weight: 400;"> containing low-latency extensions for HLS.</span><br />
<span style="font-weight: 400;">We can conclusively say that low-latency HLS increases complexity quite significantly compared to standard HLS. The server will have its responsibilities expanded, from simply serving segments to supporting several additional mechanisms that clients use to save network round-trips and speed up segment delivery which ultimately enables lower end-to-end latency. Considering that the specification remains subject to change and is yet to be finalized, it might still take a while until streaming vendors pick it up and we finally see low-latency HLS in the wild. In short, live low latency streaming using HLS is possible, but at a large cost to server complexity, there are measures being developed to reduce complexity and server load, but it&#8217;ll take wider spread adoption by major stream providers for this to happen.</span></p>
<p>The post <a rel="nofollow" href="https://bitmovin.com/live-low-latency-hls">Video Tech Deep-Dive: Live Low Latency Streaming Part 3 &#8211; Low-Latency HLS</a> appeared first on <a rel="nofollow" href="https://bitmovin.com">Bitmovin</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Video Tech Deep-Dive: Live Low Latency Streaming Part 2</title>
		<link>https://bitmovin.com/live-low-latency-streaming-p2</link>
		
		<dc:creator><![CDATA[Jameson Steiner]]></dc:creator>
		<pubDate>Thu, 25 Jun 2020 12:42:01 +0000</pubDate>
				<category><![CDATA[Developers]]></category>
		<category><![CDATA[live encoding]]></category>
		<category><![CDATA[low-latency]]></category>
		<category><![CDATA[video player]]></category>
		<guid isPermaLink="false">https://bitmovin.com/?p=118091</guid>

					<description><![CDATA[<p>This blog post is continuation of an ongoing blog and webinar technical deep series. You can find the first blog post here. The first post covered the fundamentals of live low latency and defined chunked delivery methods with CMAF. This blog post expands on chunked CMAF delivery by explaining it’s application with MPEG-DASH to achieve low...</p>
<p>The post <a rel="nofollow" href="https://bitmovin.com/live-low-latency-streaming-p2">Video Tech Deep-Dive: Live Low Latency Streaming Part 2</a> appeared first on <a rel="nofollow" href="https://bitmovin.com">Bitmovin</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="aligncenter wp-image-118093 size-large" src="https://bitmovin.com/wp-content/uploads/2020/06/Blog-live-low-latency-streaming-p.2-1-1024x512.png" alt="- Bitmovin" width="1024" height="512"><br />
<span style="font-weight: 400;">This blog post is continuation of an ongoing blog and webinar technical deep series. You can find the </span><a href="https://bitmovin.com/live-low-latency-streaming-p1/"><span style="font-weight: 400;">first blog post here</span></a>.<span style="font-weight: 400;"> The first post covered the fundamentals of live low latency and defined chunked delivery methods with CMAF.</span><br />
<span style="font-weight: 400;">This blog post expands on chunked CMAF delivery by explaining it’s application with MPEG-DASH to achieve low latency. We’ll lay some foundations and cover the basic approaches behind low-latency DASH, then look into what future developments are expected as low-latency streaming is a heavily researched subject and is quickly becoming a media industry standard.</span></p>
<h2><span style="font-weight: 400;">Basics of MPEG-DASH Live Streaming</span></h2>
<p><span style="font-weight: 400;">Before diving into how Low Latency Streaming works in MPEG-DASH we first need to understand some basic stream mechanics of DASH live streams, most importantly, the concept of segment availability.</span><br />
<span style="font-weight: 400;">The </span><a href="https://bitmovin.com/dynamic-adaptive-streaming-http-mpeg-dash/#MPD"><span style="font-weight: 400;">DASH Media Presentation Description</span></a><span style="font-weight: 400;"> (MPD) is an XML document containing essential metadata of a DASH stream. Among many other things, it describes which segments a stream consists of and how a playback client can obtain them. The main difference between on-demand and live stream segments within DASH is that all segments of the stream are available at all times for on-demand; whereas the segments are produced continuously one after another as time progresses for live-streams. Every time a new segment is produced, its availability is signaled to playback clients through the MPD. It is important to note that a segment is only made available once it is fully encoded and written to the origin.</span></p>
<p><figure id="attachment_118092" aria-describedby="caption-attachment-118092" style="width: 1024px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-large wp-image-118092" src="https://bitmovin.com/wp-content/uploads/2020/06/Live-Low-Latency-Segment-AvailabilityTime-1-1024x493.png" alt="Live Low Latency-Segment Availability:Time" width="1024" height="493" /><figcaption id="caption-attachment-118092" class="wp-caption-text">Fig. 1 Live stream with template-based addressing scheme (simplified)</figcaption></figure></p>
<p><span style="font-weight: 400;">The MPD would specify the start of the stream availability (i.e. the Availability Start Time) and a constant segment duration, e.g. 2 seconds. Using these values the player can calculate how many segments are currently in the availability window and also their individual availability start time. For example, the segment availability start time for the second segment would be </span><span style="font-weight: 400;">AST + segment_duration * 2</span><span style="font-weight: 400;">.</span></p>
<h2><span style="font-weight: 400;">Low Latency Streaming with MPEG-DASH</span></h2>
<p><span style="font-weight: 400;">In the first part of this blog post series, we described how chunked encoding and transfer enables partial loads and consumption of segments that are still in the process of being encoded. To make a player aware of this action, the segment availability in the MPD is adjusted to signal an earlier availability, i.e. when the first chunk is complete. This is done using the </span><span style="font-weight: 400;">availabilityTimeOffset</span><span style="font-weight: 400;"> in the MPD. As a result, the player will not wait for a segment to be fully available and will load and consume it earlier.</span><br />
<span style="font-weight: 400;">Consider the example of Fig.1 with a segment duration of 2 seconds and a chunk duration of </span><span style="font-weight: 400;">0.033 seconds (i.e. one video frame duration with 29.97 fps). To signal the segment availability once the first chunk is completed we would set the </span><span style="font-weight: 400;">availabilityTimeOffset</span><span style="font-weight: 400;"> to 1.967 seconds </span><span style="font-weight: 400;">(segment_duration &#8211; chunk_duration</span><span style="font-weight: 400;">). This would signal the greyed-out segment in Fig. 1 to become partially available.</span><br />
<span style="font-weight: 400;">The below MPD represents this example:</span></p>
<pre><span style="font-weight: 400;">&lt;?xml version="1.0" encoding="utf-8"?&gt;</span>
<span style="font-weight: 400;">&lt;MPD</span>
<span style="font-weight: 400;">  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</span>
<span style="font-weight: 400;">  xmlns="urn:mpeg:dash:schema:mpd:2011"</span>
<span style="font-weight: 400;">  xmlns:xlink="http://www.w3.org/1999/xlink"</span>
<span style="font-weight: 400;"> xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd"</span>
<span style="font-weight: 400;">  profiles="urn:mpeg:dash:profile:isoff-live:2011"</span>
<span style="font-weight: 400;">  type="dynamic"</span>
<span style="font-weight: 400;">  minimumUpdatePeriod="PT500S"</span>
<span style="font-weight: 400;">  suggestedPresentationDelay="PT2S"</span>
<span style="font-weight: 400;">  availabilityStartTime="2019-08-20T05:00:03Z"</span>
<span style="font-weight: 400;">  publishTime="2019-08-20T12:42:07Z"</span>
<span style="font-weight: 400;">  minBufferTime="PT2.0S"&gt;</span>
<span style="font-weight: 400;">  &lt;Period start="PT0.0S"&gt;</span>
<span style="font-weight: 400;">    &lt;AdaptationSet</span>
<span style="font-weight: 400;">      contentType="video"</span>
<span style="font-weight: 400;">      segmentAlignment="true"</span>
<span style="font-weight: 400;">      bitstreamSwitching="true"</span>
<span style="font-weight: 400;">      frameRate="30000/1001"&gt;</span>
<span style="font-weight: 400;">      &lt;Representation</span>
<span style="font-weight: 400;">       id="0"</span>
<span style="font-weight: 400;">       mimeType="video/mp4"</span>
<span style="font-weight: 400;">       codecs="avc1.64001f"</span>
<span style="font-weight: 400;">       bandwidth="2000000"</span>
<span style="font-weight: 400;">       width="1280"</span>
<span style="font-weight: 400;">       height="720"</span>
<span style="font-weight: 400;">        &lt;SegmentTemplate</span>
<span style="font-weight: 400;">         timescale="1000000"</span>
<span style="font-weight: 400;">         duration="2000000"</span>
<span style="font-weight: 400;">        <strong> </strong></span></pre>
<p><strong>availabilityTimeOffset=&#8221;1.967&#8243;</strong></p>
<pre><span style="font-weight: 400;">         initialization="1566277203/init-stream$RepresentationID$.m4s"</span>
<span style="font-weight: 400;">         media="1566277203/chunk-stream_t_$RepresentationID$-$Number%05d$.m4s"</span>
<span style="font-weight: 400;">         startNumber="1"&gt;</span>
<span style="font-weight: 400;">        &lt;/SegmentTemplate&gt;</span>
<span style="font-weight: 400;">      &lt;/Representation&gt;</span>
<span style="font-weight: 400;">    &lt;/AdaptationSet&gt;</span>
<span style="font-weight: 400;">  &lt;/Period&gt;</span>
<span style="font-weight: 400;">&lt;/MPD&gt;</span></pre>
<p><span style="font-weight: 400;">To recap, for low-latency DASH we are mainly doing two things:</span></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">Chunked encoding and transfer (i.e. chunked CMAF)</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Signaling early availability of in-progress segments</span></li>
</ul>
<p><span style="font-weight: 400;">While the previous approach enables a basic low-latency DASH setup, there are additional considerations to be made to further optimize and stabilize streaming experience. </span><a href="https://dashif.org/" rel="nofollow noopener" target="_blank"><span style="font-weight: 400;">The DASH Industry Forum</span></a><span style="font-weight: 400;"> is working on guidelines for low-latency DASH to be released in the next version of the </span><a href="https://dashif.org/guidelines/" rel="nofollow noopener" target="_blank"><span style="font-weight: 400;">DASH-IF Interoperability Points (DASH-IF IOP)</span></a><span style="font-weight: 400;"> &#8211; expected in early July 2020. The change request for that can be found </span><a href="https://dashif.org/docs/CR-Low-Latency-Live-r8.pdf" rel="nofollow noopener" target="_blank"><span style="font-weight: 400;">here</span></a><span style="font-weight: 400;">. The following will explain key parts of these guidelines. Please note that some features were not officially finalized and standardized at the time of this post’s publication (June 2020).</span></p>
<h2><span style="font-weight: 400;">Wallclock Time Mapping</span></h2>
<p><span style="font-weight: 400;">For the purpose of measuring latency, a mapping between the media’s presentation time and the wall-clock time is needed. This is so that for any given presentation time of the stream the corresponding wall-clock time is known. The latency for a given playback position can then be calculated by determining the corresponding wall-clock time and subtracting it from the current wall-clock time.</span><br />
<span style="font-weight: 400;">This mapping can be achieved by specifying a so-called </span><i><span style="font-weight: 400;">Producer Reference Time </span></i><span style="font-weight: 400;">either in the segments (i.e. inband as </span><span style="font-weight: 400;">prft</span><span style="font-weight: 400;"> box) or in the MPD. It essentially specifies the wallclock time at which the respective segment/chunk was produced. (as seen below)</span></p>
<pre><span style="font-weight: 400;">&lt;ProducerReferenceTime</span>
<span style="font-weight: 400;">  id="0"</span>
<span style="font-weight: 400;">  type="encoder"</span>
<span style="font-weight: 400;">  presentationTime="538590000000"</span>
<span style="font-weight: 400;">  wallclockTime="2020-05-19T14:57:45Z"&gt;</span>
<span style="font-weight: 400;">&lt;/ProducerReferenceTime&gt;</span></pre>
<p><span style="font-weight: 400;">The</span><span style="font-weight: 400;"> type </span><span style="font-weight: 400;">attribute</span> <span style="font-weight: 400;">specifies whether the reference time was set by the capturing device or the encoder. Allowing for calculation of the </span><i><span style="font-weight: 400;">End-to-End Latency</span></i><span style="font-weight: 400;"> (EEL) or </span><i><span style="font-weight: 400;">Encoder-Display Latency</span></i><span style="font-weight: 400;"> (EDL), respectively.</span></p>
<h2><span style="font-weight: 400;">Client Time Synchronization</span></h2>
<p><span style="font-weight: 400;">A precise time/clock at the playback client is necessary for calculations that involve the client’s wallclock time such as segment availability calculations and latency calculations. It is recommended for the MPD to include a </span><span style="font-weight: 400;">UTCTiming</span><span style="font-weight: 400;"> element which specifies a time source that can be used to adjust for any drift of the client clock. (as seen below)</span></p>
<pre><span style="font-weight: 400;">&lt;UTCTiming
</span>
<span style="font-weight: 400;">  schemeIdUri="urn:mpeg:dash:utc:http-iso:2014"
</span>
<span style="font-weight: 400;">  value="https://time.akamai.com/?iso"
</span>
<span style="font-weight: 400;">/</span><span style="font-weight: 400;">&gt;</span></pre>
<h2><span style="font-weight: 400;">Low Latency Service Description</span></h2>
<p><span style="font-weight: 400;">A </span><span style="font-weight: 400;">ServiceDescription</span><span style="font-weight: 400;"> element should be used to specify the service provider’s desired target latency and minimum/maximum latency boundaries in milliseconds. Furthermore, playback rate boundaries may be specified that define the allowed range for playback acceleration/deceleration by the playout client to fulfill the latency requirements.</span></p>
<pre><span style="font-weight: 400;">&lt;ServiceDescription id="0"&gt;</span>
<span style="font-weight: 400;">  &lt;Latency target="3500" min="2000" max="10000" referenceId="0"/&gt;</span>
<span style="font-weight: 400;">  &lt;PlaybackRate min="0.9" max="1.1"/&gt;</span>
<span style="font-weight: 400;">&lt;/ServiceDescription&gt;</span></pre>
<p><span style="font-weight: 400;">In most player implementations such parameters are provided externally using configurations and APIs.</span></p>
<h2><span style="font-weight: 400;">Resynchronization Points</span></h2>
<p><span style="font-weight: 400;">The previous post pointed out that chunked delivery decouples the achievable latency from the segment durations and enables us to choose relatively long segment durations to maintain good video encoding efficiency. In turn, this prevents fast quality adaptation of the player as quality switching can only be done on segment boundaries. In a low-latency scenario with low buffer levels, fast adaptation &#8212; especially down-switching &#8212; would be desirable to avoid buffer underruns and consequently playback interruptions.</span><br />
<span style="font-weight: 400;">To that end, </span><span style="font-weight: 400;">Resync</span><span style="font-weight: 400;"> elements may be used that specify segment properties like chunk duration and chunk size. Playback clients can utilize them to locate resync point and</span></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">Join streams mid-segment, based on latency requirements</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Switch representations mid-segment</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">Resynchronize at mid-segment position after buffer underruns</span></li>
</ul>
<p><span style="font-weight: 400;">The previous was a glimpse of what to expect in the near future and shows the great effort of the media industry put into kick-starting low-latency streaming with MPEG-DASH and getting it ready for production services. </span><br />
<span style="font-weight: 400;">Want to learn more? Check out Part 3: <a href="https://bitmovin.com/live-low-latency-hls/">Video Tech Deep-Dive: Live Low Latency Streaming Part 3 – Low-Latency HLS</a> </span><br />
<span style="font-weight: 400;">&#8230; or take a look at some of the supporting documentation below:</span><br />
<span style="font-weight: 400;">[Tool] </span><a href="https://conformance.dashif.org/" rel="nofollow noopener" target="_blank"><span style="font-weight: 400;">DASH-IF Conformance Tool</span></a><span style="font-weight: 400;"> </span><br />
<span style="font-weight: 400;">[Blog Post] </span><a href="https://bitmovin.com/live-low-latency-streaming-p1/"><span style="font-weight: 400;">Video Tech Deep-Dive: Live Low Latency Streaming Part 1</span></a><span style="font-weight: 400;"> </span><br />
<span style="font-weight: 400;">[Demo] </span><a href="https://bitmovin.com/demos/low-latency-streaming"><span style="font-weight: 400;">Low Latency Streaming with Bitmovin’s Player</span></a><span style="font-weight: 400;"> </span></p>
<p>The post <a rel="nofollow" href="https://bitmovin.com/live-low-latency-streaming-p2">Video Tech Deep-Dive: Live Low Latency Streaming Part 2</a> appeared first on <a rel="nofollow" href="https://bitmovin.com">Bitmovin</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>2019 Video Developer Report &#8211; The Future of Video: AV1 Codec, AI &#038; Machine Learning, and Low Latency</title>
		<link>https://bitmovin.com/bitmovin-2019-video-developer-report-av1-codec-ai-machine-learning-low-latency</link>
		
		<dc:creator><![CDATA[Stefan Lederer]]></dc:creator>
		<pubDate>Fri, 06 Sep 2019 05:21:23 +0000</pubDate>
				<category><![CDATA[VidTech]]></category>
		<category><![CDATA[av1]]></category>
		<category><![CDATA[low-latency]]></category>
		<guid isPermaLink="false">https://bitmovin.com/?p=60732</guid>

					<description><![CDATA[<p>Download now: The 2019 Video Developer Report reveals the immense growth opportunities today’s developers must evaluate and some of the major challenges they face. In its third year, the Bitmovin Video Developer Report provides key insights into the evolving technology trends of the digital video industry; we’ve also revamped the look and feel of the report!...</p>
<p>The post <a rel="nofollow" href="https://bitmovin.com/bitmovin-2019-video-developer-report-av1-codec-ai-machine-learning-low-latency">2019 Video Developer Report &#8211; The Future of Video: AV1 Codec, AI &#038; Machine Learning, and Low Latency</a> appeared first on <a rel="nofollow" href="https://bitmovin.com">Bitmovin</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2><img loading="lazy" decoding="async" class="alignnone size-full wp-image-60767" src="https://bitmovin.com/wp-content/uploads/2019/09/Bitmovin_Developer_Report_2019_Featured_Image__Q3_19-1-1.jpg" alt="- Bitmovin" width="800" height="453"></h2>
<h3><span style="font-weight: 400;"><span style="color: #0dc4ff;"><a style="color: #0dc4ff;" href="https://go.bitmovin.com/video-developer-report-2019"><strong>Download now</strong></a>:</span> The 2019 Video Developer Report reveals the immense growth opportunities today’s developers must evaluate and some of the major challenges they face.</span></h3>
<p><span style="font-weight: 400;">In its third year, the Bitmovin </span><span style="font-weight: 400;">Video Developer Report</span><span style="font-weight: 400;"> provides key insights into the evolving technology trends of the digital video industry;</span><span style="font-weight: 400;"> we’ve also revamped the look and feel of the report!</span><span style="font-weight: 400;"> This year, Bitmovin&#8217;s report resulted in 542 participants from 108 different countries, a major increase from previous years! This report acts as a handy reference for how the video streaming industry is shaped by consumer demands and technology challenges.</span><br />
<span style="font-weight: 400;">The insights from the gathered data reveal a combination of specific trends in video technology usage and a holistic picture of what developers are hoping (and planning) for in the coming year. This report identified that AV1, Artificial Intelligence &amp; Machine Learning, and Low Latency are the latest trends in video development, but why? And how! The 2019 Video Developer report covers these hot topics with excellent insights and recommendations for the future of the industry. </span><br />
The report starts with an overview of various challenges that modern developers are facing, as well the types of encoding solutions that they implement to help alleviate such problems. This is followed by an insightful look into Video Codecs, Streaming Formats, and the current/future implementations of AI &amp; ML in video infrastructure.<br />
That will transition into player insights, as well as a close look into platform/device usage &#8211; broken out by platform/device type and regional responses. To tie all player-oriented information together, the report continues with Monetization models, Digital Rights Management, and the ad structure formats that developers are most sought out by industry experts.<br />
Much like in the video development world, all the content is concluded with a section focusing on performance metrics and analytics models that tell a numerical story of a campaign or projects success!<br />
<span style="font-weight: 400;">Now! Here’s a sneak peak into the results of the <a href="https://go.bitmovin.com/video-developer-report-2019">2019 Video Developer Report</a>:</span></p>
<h2><span style="font-weight: 400;">Low latency and device playback are still major concerns for video developers</span></h2>
<p><span style="font-weight: 400;">Latency or broadcast delay is the biggest problem being experienced with video technology today, according to over half of global respondents (54 percent). Delivery delays can be a particular pain point for online streaming compared to traditional broadcasters, especially for live sports events.</span><br />
<span style="font-weight: 400;">The next most prevalent issue is ensuring playback on all devices, identified as an issue for 41 percent of global respondents, a nine percent drop-off from the previous years report (50 percent). </span><br />
<span style="font-weight: 400;">The widespread challenges faced by respondents indicate that developers are tasked with an immensely complex set of responsibilities that attempt to deliver and protect high-quality video, at lower costs.</span><br />
<img loading="lazy" decoding="async" class="alignnone size-full wp-image-60733" src="https://bitmovin.com/wp-content/uploads/2019/09/Screenshot-2019-08-29-at-14.09.19.png" alt="- Bitmovin" width="952" height="974" srcset="https://b3148424.smushcdn.com/3148424/wp-content/uploads/2019/09/Screenshot-2019-08-29-at-14.09.19-293x300.png?lossy=2&amp;strip=1&amp;webp=1 293w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2019/09/Screenshot-2019-08-29-at-14.09.19.png?size=384x393&amp;lossy=2&amp;strip=1&amp;webp=1 384w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2019/09/Screenshot-2019-08-29-at-14.09.19-768x786.png?lossy=2&amp;strip=1&amp;webp=1 768w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2019/09/Screenshot-2019-08-29-at-14.09.19.png?lossy=2&amp;strip=1&amp;webp=1 952w" sizes="(max-width: 952px) 100vw, 952px" /></p>
<h2><span style="font-weight: 400;">Codecs: The few dominate the many &#8211; H.264/AVC remains atop, AAC (audio) controls the market</span></h2>
<p><span style="font-weight: 400;"><a href="https://bitmovin.com/av1/">AV1</a> has maintained consistent growth in interest with </span><span style="font-weight: 400;">Planned usage set to triple in the coming year.</span><span style="font-weight: 400;"> One in five (20 percent) expect to start using AV1 in the coming year</span><span style="font-weight: 400;">.</span><span style="font-weight: 400;"> While <a href="https://bitmovin.com/av1-multi-codec-dash-dataset/">H.264/AVC</a> maintained a 91 percent usage rate; some respondents indicate that they plan to implement it on other new projects in the following year </span><span style="font-weight: 400;">(resulting in &gt;100% total responses for the category).</span><br />
<img loading="lazy" decoding="async" class="alignnone size-full wp-image-60734" src="https://bitmovin.com/wp-content/uploads/2019/09/Screenshot-2019-08-29-at-15.05.00-1.png" alt="- Bitmovin" width="836" height="536"><br />
<span style="font-weight: 400;">Which <a href="https://bitmovin.com/get-ready-for-a-multi-codec-world/">video codecs</a> are you currently using and planning to implement within the next 12 months?</span></p>
<h2><span style="font-weight: 400;">Artificial Intelligence &amp; Machine Learning are here to stay</span></h2>
<p><span style="font-weight: 400;">One of the largest topics of discussion surrounding video technologies today is the implementation of Artificial Intelligence and/or Machine Learning in video workflows. 56 percent of this year’s respondents indicated that they expect to implement AI/ML-based video workflow solutions within the next two years. We believe that this is a topic that needs to be closely monitored and tested, as this number is predicted to increase. In fact, Bitmovin is already testing new AI/ML-based solutions </span><span style="font-weight: 400;">today.</span><br />
<span style="font-weight: 400;">We had a lot of fun digging into the numbers this year and we are thankful to the many developers that took our survey and making this report possible. Download the full report for a more detailed and insightful analysis of our findings relative to Low Latency, Codecs, AI/ML, and even Digital Rights Management! Other topics covered include: encoding infrastructures, video monetization business models, and video analytics implementations.  You can find the full report with all of our findings at the following link:</span><br />
<!--HubSpot Call-to-Action Code --><span id="hs-cta-wrapper-47d6c775-415f-41ef-8b43-1c0597f41756" class="hs-cta-wrapper"><span id="hs-cta-47d6c775-415f-41ef-8b43-1c0597f41756" class="hs-cta-node hs-cta-47d6c775-415f-41ef-8b43-1c0597f41756"><!-- [if lte IE 8]>


<div id="hs-cta-ie-element"></div>


<![endif]--><a href="https://cta-redirect.hubspot.com/cta/redirect/3411032/47d6c775-415f-41ef-8b43-1c0597f41756" rel="nofollow noopener" target="_blank"><img decoding="async" id="hs-cta-img-47d6c775-415f-41ef-8b43-1c0597f41756" class="hs-cta-img" style="border-width: 0px;" src="https://no-cache.hubspot.com/cta/default/3411032/47d6c775-415f-41ef-8b43-1c0597f41756.png" alt="Download the Report" /></a></span></span><!-- end HubSpot Call-to-Action Code --></p>
<h2><strong>Video technology guides and articles</strong></h2>
<ul>
<li>Back to Basics: Guide to the <a href="https://bitmovin.com/html5-video-tag-guide/">HTML5 Video Tag </a></li>
<li><a href="https://bitmovin.com/vod-platforms/">What is a VoD Platform?</a> A comprehensive guide to Video on Demand (VOD)</li>
<li><a href="https://bitmovin.com/top-5-video-technology-trends/">Video Technology [2022]</a>: Top 5 video technology trends</li>
<li><a href="https://bitmovin.com/vp9-vs-hevc-h265/">HEVC vs VP9</a>: Modern codecs comparison</li>
<li>What is the <a href="https://bitmovin.com/av1/">AV1 Codec</a>?</li>
<li>Video Compression: <a href="https://bitmovin.com/encoding-definition-bitrates/">Encoding Definition and Adaptive Bitrate</a></li>
<li>What is <a href="https://bitmovin.com/adaptive-streaming/">adaptive bitrate streaming</a></li>
<li><a href="https://bitmovin.com/mkv-vs-mp4/">MP4 vs MKV</a>: Battle of the Video Formats</li>
<li><a href="https://bitmovin.com/video-streaming-models-svod-avod-tvod/">AVOD vs SVOD</a>; the “fall” of SVOD and Rise of AVOD &amp; TVOD (Video Tech Trends)</li>
<li><a href="https://bitmovin.com/dynamic-adaptive-streaming-http-mpeg-dash/">MPEG-DASH</a> (Dynamic Adaptive Streaming over HTTP)</li>
<li><a href="https://bitmovin.com/container-formats-fun-1/">Container Formats</a>: The 4 most common container formats and why they matter to you.</li>
<li><a href="https://bitmovin.com/qoe-why-quality-video-matters/">Quality of Experience</a> (QoE) in Video Technology [2022 Guide]</li>
</ul>
<p>The post <a rel="nofollow" href="https://bitmovin.com/bitmovin-2019-video-developer-report-av1-codec-ai-machine-learning-low-latency">2019 Video Developer Report &#8211; The Future of Video: AV1 Codec, AI &#038; Machine Learning, and Low Latency</a> appeared first on <a rel="nofollow" href="https://bitmovin.com">Bitmovin</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Low Latency Streaming: What is it and How can it be solved?</title>
		<link>https://bitmovin.com/cmaf-low-latency-streaming</link>
		
		<dc:creator><![CDATA[Christopher Mueller]]></dc:creator>
		<pubDate>Fri, 26 Oct 2018 08:18:05 +0000</pubDate>
				<category><![CDATA[Developers]]></category>
		<category><![CDATA[live encoding]]></category>
		<category><![CDATA[low-latency]]></category>
		<guid isPermaLink="false">http://bitmovin.com/?p=24688</guid>

					<description><![CDATA[<p>Latency is a major challenge for the online video industry. This article takes us through what latency is, why it&#8217;s important for streaming and how CMAF low latency streaming can help to solve the problems. Live stream “latency” is the time delay between the transmission of actual live content from the source to when it...</p>
<p>The post <a rel="nofollow" href="https://bitmovin.com/cmaf-low-latency-streaming">Low Latency Streaming: What is it and How can it be solved?</a> appeared first on <a rel="nofollow" href="https://bitmovin.com">Bitmovin</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-184082" src="https://bitmovin.com/wp-content/uploads/2018/10/BLOG-POST_SSAI-1-1024x537.png" alt="- Bitmovin" width="1024" height="537" srcset="https://b3148424.smushcdn.com/3148424/wp-content/uploads/2018/10/BLOG-POST_SSAI-1-300x157.png?lossy=2&amp;strip=1&amp;webp=1 300w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2018/10/BLOG-POST_SSAI-1.png?size=384x201&amp;lossy=2&amp;strip=1&amp;webp=1 384w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2018/10/BLOG-POST_SSAI-1-768x402.png?lossy=2&amp;strip=1&amp;webp=1 768w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2018/10/BLOG-POST_SSAI-1-1024x537.png?lossy=2&amp;strip=1&amp;webp=1 1024w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2018/10/BLOG-POST_SSAI-1.png?lossy=2&amp;strip=1&amp;webp=1 1080w" sizes="(max-width: 1024px) 100vw, 1024px" /></p>
<blockquote><p><span style="font-weight: 400;">Latency is a major challenge for the online video industry. This article takes us through what latency is, why it&#8217;s important for streaming and how CMAF low latency streaming can help to solve the problems.</span></p></blockquote>
<p>Live stream “latency” is the time delay between the transmission of actual live content from the source to when it is received and displayed by the playback device. Or to put it another way, the difference between the moment when the actual event is captured on camera or the live feed comes out of a playout server, and the time when the end user actually sees the content on their device’s screen.<br />
Typical broadcast linear stream delay ranges anywhere from 3-5 seconds whereas online streaming has historically been anywhere from 30 seconds to over 60 seconds depending on the viewing device and the video workflow used.<br />
The challenge for the online streaming industry is to reduce this latency to a range closer to linear broadcast signal latency (3-5 sec) or even lower, depending on the application needs. Therefore, many video providers have taken steps to optimize their live streaming workflows by rolling out new streaming standards like the Common Media Application Format (CMAF) and making changes to encoding, CDN delivery, and playback technologies to close the latency gap and to provide near real-time streaming experience for end-users. This reduced latency for online linear video streaming is commonly referred to as “Low Latency”.<br />
<figure id="attachment_24700" aria-describedby="caption-attachment-24700" style="width: 800px" class="wp-caption alignnone"><a href="https://bitmovin.com/wp-content/uploads/2018/10/diagram-streaming-latency-continuum-1.jpg"><img loading="lazy" decoding="async" class="size-full wp-image-24700" src="https://bitmovin.com/wp-content/uploads/2018/10/diagram-streaming-latency-continuum-1.jpg" alt="Streaming Latency Continuum" width="800" height="484" /></a><figcaption id="caption-attachment-24700" class="wp-caption-text">Streaming Latency Continuum</figcaption></figure><br />
Linear stream/signal latency represents a continuum, as indicated in the diagram above. This diagram illustrates the historic reality of online streaming protocols such as HLS and DASH exhibiting higher latency, and nonadaptive bitrate protocols like RTP/RTSP and WebRTC exhibiting much lower sub-second latency. The discussion here is based on the adaptive bitrate protocols, HLS and MPEG-DASH.</p>
<h2>Why is this important for me?</h2>
<p>The main goal of Low Latency streaming is to keep playback as close as possible to real-time broadcasts so users can engage and interact with content as it’s unfolding. Typical applications include sports, news, betting, and gaming. Another class of latency-sensitive applications includes feedback data as part of the interactive experience &#8211; an example is the <a href="https://bitmovin.com/customers/classpass/">ClassPass virtual fitness class</a>, as announced by Bitmovin <a href="https://www.theiabm.org/news/bitmovin-works-higher-quality-virtual-fitness-classes-classpass/" target="_blank" rel="noopener noreferrer nofollow">here</a>.<br />
Other interactive applications include game shows and social engagement. In these use-cases, synchronizing latency across multiple devices becomes valuable for viewers to have a similar chance to answer questions, or provide other interactions.</p>
<h2>What is CMAF?</h2>
<p>Common Media Application Format (<a href="https://bitmovin.com/what-is-cmaf-threat-opportunity/">CMAF</a>) was introduced in 2016 and was co-authored by Apple and Microsoft to create a standardized transport container for streaming VoD and linear media using the MPEG-DASH or HLS protocols.<br />
<strong>The main goals were:</strong><br />
1) Reduce overhead/<a href="https://bitmovin.com/video-encoding-data-sheet/">encoding</a> and delivery costs through standardized encryption methods<br />
2) simplify complexities associated with video streaming workflows and integrations (ex: <a href="https://bitmovin.com/what-is-drm/">DRM</a>, advertising, closed captioning, caching, etc)<br />
3) support a single format that can be used to stream across any online streaming device.<br />
When we originally posted our thoughts on CMAF, adoption was still in its infancy. But, in recent months we have seen increased adoption of CMAF across the video workflow chain and by device manufacturers. As end-user expectations to stream linear content with latency equivalent to traditional broadcast have continued to increase, and content rights to stream real-time have become more and more commonplace, CMAF has stepped in as a viable solution.</p>
<h2>What is CMAF Low Latency?</h2>
<p>When live streaming, the media (video/audio) is sent in segments that are each a few seconds (2-6 sec) long. This inherently adds a few seconds of delay from transmission to playback as the segments have to be encoded, delivered, downloaded, buffered, and then rendered by the player client, all of which is limited at a minimum by the segment size.</p>
<blockquote><p>CMAF now comes with a low latency mode where each segment can be split up into smaller units, called “chunks”, greatly reducing latency.</p></blockquote>
<p>CMAF now comes with a low latency mode where each segment can be split up into smaller units, called “chunks” where each chunk can be 500 milliseconds or lower depending on encoder configurations. With low latency CMAF or chunked CMAF, the player can now request incomplete segments and get all available chunks to render instead of waiting for the full segment to become available, thereby cutting latency down significantly.<br />
<figure id="attachment_24699" aria-describedby="caption-attachment-24699" style="width: 800px" class="wp-caption alignnone"><a href="https://bitmovin.com/wp-content/uploads/2018/10/diagram-cmaf-chunks-for-low-latency-1.png"><img loading="lazy" decoding="async" class="size-full wp-image-24699" src="https://bitmovin.com/wp-content/uploads/2018/10/diagram-cmaf-chunks-for-low-latency-1.png" alt="CMAF Chunks for low latency" width="800" height="338" /></a><figcaption id="caption-attachment-24699" class="wp-caption-text">CMAF Chunks for low latency</figcaption></figure><br />
As shown in the diagram above, a “chunk” is the smallest referenceable media unit, by definition, containing a “moof” and “mdat” atom. The mdat holds a single IDR (Instantaneous Decoder Refresh) frame, which is required to begin every “segment”.  A “segment” is a collection of one or more “fragments”, and a “fragment” is a collection of one or more chunks. The “moof” box as shown in the diagram, is required by the player for decoding and rendering individual chunks.<br />
At the transmit end of the chain, encoders can output each chunk for delivery immediately after encoding it, and the player can reference and decode each one separately.</p>
<h2>What are we doing to solve the latency problem?</h2>
<p>The Bitmovin Player has supported CMAF playback for a while now. Recently, we also added support for CMAF low latency playback for HTML5 (web) and native apps (mobile) platforms. The Bitmovin Player can be configured to turn on low latency mode which then enables the player to allow chunk-based decoding and rendering without having to wait for the full segment to be downloaded.<br />
The Bitmovin Player optimizes start-up logic, determines buffer sizes, and adjusts playback rate to achieve near to real live streaming latency. From our testing, this can go as low as 1.8 seconds while maintaining stream stability and good video quality.<br />
CMAF low latency is compatible with the rest of the features that Bitmovin Player already supports today. (Ex: ads, DRM, analytics, closed captioning).<br />
<figure id="attachment_24698" aria-describedby="caption-attachment-24698" style="width: 800px" class="wp-caption alignnone"><a href="https://bitmovin.com/wp-content/uploads/2018/10/diagram-standard-vs-chunked-segmented-streams-1.jpg"><img loading="lazy" decoding="async" class="size-full wp-image-24698" src="https://bitmovin.com/wp-content/uploads/2018/10/diagram-standard-vs-chunked-segmented-streams-1.jpg" alt="Standard vs Chunked Segmented Streams" width="800" height="336" /></a><figcaption id="caption-attachment-24698" class="wp-caption-text">Standard vs Chunked Segmented Streams</figcaption></figure><br />
In the diagram shown above, player buffering and decoding behavior is shown, contrasting the standard segment (standard latency) mode with the chunked segment mode, corresponding to low latency streaming.<br />
The diagram shows that in non-chunked segments, with a segment size of 4xC (where C is the size of the lowest granularity unit, the chunk, measured in milliseconds) and three-segment buffering, a 14xC-second player latency is typically achieved.<br />
In contrast, chunked segments with CMAF are shown to achieve a 2xC second latency as opposed to a 14xC-second latency, thereby achieving a 7 times improvement in latency.</p>
<h2>Are there any trade-offs?</h2>
<p>In short, yes. There are some considerations, and some tradeoffs when trying to achieve low latency while still providing a high-quality viewing experience.<br />
Buffer Size: Ideally, we want to render frames as soon as the player receives them. This means we have to maintain a really small buffer size. But, this also introduces instability in the viewing experience especially when the player encounters any unexpected interruptions (like dropped frames or frame bursts) due to network or encoder issues. Without enough locally stored frames, the player stalls or freezes until the buffer refreshes with new frames. This in turn requires the player to re-synch its presentation timing and leads to perceived distortions in the playback experience. Therefore, it’s recommended to maintain at least a 1-second buffer to allow the player to provide a smoother playback experience for viewers that can withstand some network disruptions.<br />
DRM is another factor that might introduce additional delay in start-up time, the license delivery turnaround time will block content playback even though low latency is turned on. In this case, the player adjusts to the latest live frame upon successful license delivery, and the latency is consistent with the set low latency value.</p>
<h2>How can I monitor these tradeoffs?</h2>
<p>For all of the above reasons, balancing a robust, scalable online streaming platform with minimal re-buffering and stream interruptions against the time-sensitive behavior of low latency CMAF streaming can be challenging. The solution is a holistic view of the streaming experience, provided by <a href="https://bitmovin.com/video-analytics/">Bitmovin Analytics.</a><br />
Bitmovin Analytics provides insights into session quality so customers can monitor the performance of low latency streaming sessions and make real-time decisions to adjust player and encoding configurations to improve the experience. Bitmovin offers all existing video quality metrics (e.g. Startup time, Buffer Rate) and a few additional metrics to specifically monitor low latency streaming at a content level, such as:</p>
<ul>
<li>Target Latency</li>
<li>Observed Latency</li>
<li>Playback Rate</li>
<li>Dropped Frames</li>
<li>Bandwidth Used</li>
</ul>
<h2>Besides the player, what else causes latency?</h2>
<p>Chunked CMAF streams and low latency-enabled players are key elements in reducing latency in online streaming. However, there are other components in the video delivery chain that introduce latency at each step that need to be considered for further optimization:</p>
<ul>
<li>Encoder: The encoder needs to be able to ingest live streams as quickly as possible with the encoding configuration optimized to produce the right size of chunks and segments that can then be uploaded to the Origin Server for delivery.</li>
<li>First Mile Upload: The upload time depends on the connection type at the upload facility (wired, wireless) and affects overall latency.</li>
<li>CDN: The CDN technologies need to allow for chunk-based transfers and to adopt the right caching strategies to propagate chunks across the different delivery nodes in a time-sensitive fashion.</li>
<li>Last Mile: The end user’s network conditions also influence overall latency i.e. if the user is on a wired or WiFi or cellular connection. It also depends on how close the user is to the CDN edge.</li>
<li>Playback: As discussed earlier, the player needs to optimize start behavior and balance buffering and playback rate to enable quick download and rendering to always be as close as possible to live time.</li>
</ul>
<p>These steps are shown below in the end-to-end video flow diagram.<br />
<figure id="attachment_24697" aria-describedby="caption-attachment-24697" style="width: 800px" class="wp-caption alignnone"><a href="https://bitmovin.com/wp-content/uploads/2018/10/diagram-encoding-flow-1.png"><img loading="lazy" decoding="async" class="size-full wp-image-24697" src="https://bitmovin.com/wp-content/uploads/2018/10/diagram-encoding-flow-1.png" alt="Chunked encoding flow" width="800" height="220" srcset="https://b3148424.smushcdn.com/3148424/wp-content/uploads/2018/10/diagram-encoding-flow-1-300x83.png?lossy=2&amp;strip=1&amp;webp=1 300w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2018/10/diagram-encoding-flow-1.png?size=384x106&amp;lossy=2&amp;strip=1&amp;webp=1 384w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2018/10/diagram-encoding-flow-1-768x211.png?lossy=2&amp;strip=1&amp;webp=1 768w, https://b3148424.smushcdn.com/3148424/wp-content/uploads/2018/10/diagram-encoding-flow-1.png?lossy=2&amp;strip=1&amp;webp=1 800w" sizes="(max-width: 800px) 100vw, 800px" /></a><figcaption id="caption-attachment-24697" class="wp-caption-text">Chunked encoding flow</figcaption></figure><br />
With chunked segments, from our testing, we’ve seen end-to-end latency as low as 1.8 seconds. However, the customer needs to consider their entire workflow set up to ensure latency is optimized along the full chain to achieve the lowest latency achievable with their specific workflow and network.</p>
<h2>In conclusion &#8230;</h2>
<p>As viewers migrate from a large screen TV by appointment experience to a time-shifted, place-shifted experience with multi-device online streaming, content producers and rights holders have responded by getting more premium content available online, as well as brand new classes of media experiences online involving interactivity and an emphasis on low latency delivery and playback.<br />
The Bitmovin low latency solution was shown here to consist of the Bitmovin Player and Bitmovin Analytics products working together to balance the needs of low latency live streaming on multi-devices while providing the level of insights needed to proactively determine the viewers’ quality of experience, and to take action in case undesired consequences appear as a result of low latency streaming.<!-- end HubSpot Call-to-Action Code --></p>
<h2><strong>Video technology guides and articles</strong></h2>
<ul>
<li>Back to Basics: Guide to the <a href="https://bitmovin.com/html5-video-tag-guide/">HTML5 Video Tag </a></li>
<li><a href="https://bitmovin.com/vod-platforms/">What is a VoD Platform?</a>A comprehensive guide to Video on Demand (VOD)</li>
<li><a href="https://bitmovin.com/top-5-video-technology-trends/">Video Technology [2022]</a>: Top 5 video technology trends</li>
<li><a href="https://bitmovin.com/vp9-vs-hevc-h265/">HEVC vs VP9</a>: Modern codecs comparison</li>
<li>What is the <a href="https://bitmovin.com/av1/">AV1 Codec</a>?</li>
<li>Video Compression: <a href="https://bitmovin.com/encoding-definition-bitrates/">Encoding Definition and Adaptive Bitrate</a></li>
<li>What is <a href="https://bitmovin.com/adaptive-streaming/">adaptive bitrate streaming</a></li>
<li><a href="https://bitmovin.com/mkv-vs-mp4/">MP4 vs MKV</a>: Battle of the Video Formats</li>
<li><a href="https://bitmovin.com/video-streaming-models-svod-avod-tvod/">AVOD vs SVOD</a>; the “fall” of SVOD and Rise of AVOD &amp; TVOD (Video Tech Trends)</li>
<li><a href="https://bitmovin.com/dynamic-adaptive-streaming-http-mpeg-dash/">MPEG-DASH</a> (Dynamic Adaptive Streaming over HTTP)</li>
<li><a href="https://bitmovin.com/container-formats-fun-1/">Container Formats</a>: The 4 most common container formats and why they matter to you.</li>
<li><a href="https://bitmovin.com/qoe-why-quality-video-matters/">Quality of Experience</a> (QoE) in Video Technology [2022 Guide]</li>
</ul>
<p>The post <a rel="nofollow" href="https://bitmovin.com/cmaf-low-latency-streaming">Low Latency Streaming: What is it and How can it be solved?</a> appeared first on <a rel="nofollow" href="https://bitmovin.com">Bitmovin</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
