RSSAmplifier

Blog

HTTP Live Streaming

A Practical Guide

hlsbook.netRSS feed ↗10 posts

Latest posts

Secure Video Streaming using CloudFront Signed URLs

A while ago I came across this post from Amazon that describes how to stream video securely using CloudFront signed URLs. However, I couldn t find any infrastructure-as-code to implement the solution outlined in the blog post so I decided to implement it myself. The repository is here. While writing the Terraform code, I discovered there [ ]

Stale playlists and other errors

In this post, we re going to look at stale playlists in the context of live streaming, what they are and what can cause them, as well as other errors that may be reported by tools like HLS Report and mediastreamvalidator. Some of the causes of errors when live streaming are caused by things like intermittent network [ ]

Creating a Master Playlist with ffmpeg – Part 2

In part 1, we saw how to create a variant playlist with ffmpeg. In this post, we are going to look at why you may not want to create your variant playlists this way. Here s a typical example using ffmpeg to create a variant playlist: ffmpeg -i input.mp4 \ -map 0:0 -map 0:1 -map 0:0 [ ]

Streaming HLS with Nginx’s RTMP Module

In this post I m going to show you how to use Nginx s RTMP module to stream a live video (over RTMP) from your desktop and then play it back with HLS. I ll also cover how to encrypt the video. RTMP was initially a proprietary protocol by Adobe for streaming video and audio between a Flash [ ]

Generating HLS Playlists with Bento4

In this post we re going to look at how to use Bento4 to generate HLS playlists from MP4 files. In previous posts I ve used ffmpeg to encode the videos and generate the playlist. However, sometimes it s better to separate the encoding from the packaging. For example, you may want to support both DASH and HLS [ ]

Creating a Master Playlist with Ffmpeg

In this post you ll see how to create an HLS master playlist with ffmpeg for video on-demand. A master playlist contains references to different variant streams (typically encoded at different bit rates) and can also include links to alternative audio tracks and audio-only renditions. It allows a client device to choose the most appropriate stream [ ]

HLS and Fragmented MP4

At WWDC 2016, Apple announced support for fragmented MP4 (fMP4) as an alternative to MPEG-TS, which prior to their announcement was the only supported format. So why use fragmented MP4 files? Well, according to Apple s video encoding requirements in their HLS Authoring Specification, if you want to use HEVC/H.265, you have to use it (1.5). [ ]

Playing HLS Video in the Browser – Part 2

I often get email from people asking if there any examples in the book about how to play HLS video in the browser and my answer is always the same: no. In this short post, I ll try to explain why not with an example of how to play encrypted HLS video in the browser, which [ ]

How to Serve HLS Video from an S3 Bucket

This post will describe how to configure an S3 bucket to serve video using HLS. I ve also written some example code that creates a bucket and configures it as outlined in this post. Amazon S3 is a storage solution that allows you to store large amounts of data for relatively little cost, perfect for something [ ]

How to Encrypt Video for HLS

In this post, we ll look at what encryption HLS supports and how to encrypt your videos with ffmpeg. Encryption is the process of encoding information in such a way that only authorised parties can read it. The encryption process requires some kind of secret (key) together with an encryption algorithm. There are many different types of [ ]