Chapter 9. Sophisticated Media Streaming

9.0 Introduction

This chapter covers streaming media with NGINX in MPEG-4 (MP4) or Flash Video (FLV) formats. NGINX is widely used to distribute and stream content to the masses. NGINX supports industry-standard formats and streaming technologies, which will be covered in this chapter. NGINX Plus enables the ability to fragment content on the fly with the HTTP Live Stream (HLS) module, as well as the ability to deliver HTTP Dynamic Streaming (HDS) of already fragmented media. NGINX natively allows for bandwidth limits, and NGINX Plus’s advanced features offer bitrate limiting, enabling your content to be delivered in the most efficient manner while reserving the servers’ resources to reach the most users.

9.1 Serving MP4 and FLV

Problem

You need to stream digital media, originating in MP4 or FLV.

Solution

Designate an HTTP location block to serve .mp4 or .flv videos. NGINX will stream the media using progressive downloads or HTTP pseudostreaming and support seeking:

http {
    server {
        # ...
        
        location /videos/ {
            mp4;
        }
        location ~ \.flv$ {
            flv;
        }
    }
} 

The example location block tells NGINX that files in the videos directory are in MP4 format type and can be streamed with progressive download support. The second location block instructs NGINX that any files ending in .flv are in FLV format and can be streamed with HTTP pseudostreaming support.

Discussion

Streaming video or audio files in NGINX is as simple ...

Get NGINX Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.