<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ffprobe on Everyone Has a Story</title><link>https://bhaveshsgupta.com/tags/ffprobe/</link><description>Recent content in Ffprobe on Everyone Has a Story</description><generator>Hugo</generator><language>en-us</language><managingEditor>BhaveshSGupta@disroot.org (Bhavesh S. Gupta)</managingEditor><webMaster>BhaveshSGupta@disroot.org (Bhavesh S. Gupta)</webMaster><lastBuildDate>Tue, 06 Oct 2026 18:26:36 +0530</lastBuildDate><atom:link href="https://bhaveshsgupta.com/tags/ffprobe/index.xml" rel="self" type="application/rss+xml"/><item><title>HLS for backend engineers: playlists, segments and keyframes</title><link>https://bhaveshsgupta.com/blog/hls-cdn-1-hls-for-backend-engineers/</link><pubDate>Tue, 06 Oct 2026 09:00:00 +0530</pubDate><author>BhaveshSGupta@disroot.org (Bhavesh S. Gupta)</author><guid>https://bhaveshsgupta.com/blog/hls-cdn-1-hls-for-backend-engineers/</guid><description>&lt;p&gt;If you run the servers behind a live stream, you don&amp;rsquo;t need to know much about codecs. You do need to know what files a player asks for, how often, and what decides their size and timing. That&amp;rsquo;s what this post covers, with commands you can run against any HLS stream.&lt;/p&gt;&#10;&lt;p&gt;The series is about standard HLS, with MPEG-TS or fragmented MP4 (CMAF) segments. The same principles carry over to Low-Latency HLS, though its partial segments and blocking playlist reloads aren&amp;rsquo;t covered here. Real-time streaming, such as WebRTC at under a second of delay, works differently and isn&amp;rsquo;t covered at all: it has no playlists or segments for a CDN to cache.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;In short:&lt;/strong&gt; A live HLS stream is a master playlist of qualities, one media playlist per quality, and short segments. Each segment must start on a keyframe, so a fixed keyframe interval of 1 or 2 seconds keeps segments even. The target duration is the ceiling on segment length; players reload about once per target duration and start three target durations behind live, so it sets your latency. Every quality needs the same boundaries and timestamps for switching to be smooth.&lt;/p&gt;</description></item></channel></rss>