About Fastly's On-the-Fly Packaging service
Fastly offers "on-the-fly," dynamic, video-on-demand content packaging service. Rather than requiring you to pre-package all protocols of a viewer-requested video, Fastly allows you to dynamically package video content in different HTTP streaming formats in real time, using source files. That video content then becomes immediately available to viewers.
Supported On-the-Fly Packaging features
Fastly’s OTFP service supports the following specific features:
- HDS, HLS, and MPEG-DASH packaging. Fastly provides support for version 1 of the Adobe HTTPS Dynamic Streaming (HDS) specification and support for the ISO/IEC 23009-1:2014 specification defining Dynamic Adaptive Streaming over HTTP (MPEG-DASH). We support all features included in up to version 3 (draft 6) of the HTTP Live Streaming (HLS) specification, and cherry picked features from later versions to support additional customer use cases, like subtitle support and trick play for HLS.
- Standard codecs. Fastly supports H.264 and MPEG-4 Part 10 Advanced Video Coding (AVC). Fastly also supports Advanced Audio Coding (AAC), including AAC-LC (low complexity) and HE-AAC (high efficiency), MPEG-1 or Audio Layer III (MP3), and the Dolby AC3 codecs.
- Source video container format. Fastly supports the Progressive MP4 specification (specifically the .mp4, unencrypted .mov, and audio-only .m4a extensions) as source container format for packaging into all supported HTTP streaming formats.
- HLS multi-language subtitles and closed captions. Fastly provides support for both in-band (EIA-608 and CEA-708) and out-of-band (Web Video Text Tracks or WebVTT) subtitle and closed caption delivery.
- HLS timed metadata injection. Fastly supports HLS time-based metadata which allows you embed custom metadata or ad markers about a stream into video segments at specified time instances in ID3v2 format.
- HLS trick play. Fastly supports trick play (also called trick mode), a feature that displays video scenes during fast-forwarding and rewinding. The HLS Authoring Specification requires this feature for distributing video on the Apple TV.
- Media encryption. Fastly can encrypt videos packaged into HLS (supports both Envelope/AES-128 and SAMPLE-AES methods) and MPEG-DASH (ISO/IEC 23001-7: Common encryption in ISO base media file format file) streaming formats by generating a unique content encryption key for each video, enabling secure video delivery to viewers.
- Clip creation (also known as "timeline trimming"). Fastly supports clip creation features for all supported packaging formats, allowing you to deliver sections of video without segmenting a longer archived video.
Fastly also provides the following features as part of standard content delivery network services:
- Token-based authentication for increased response time by placing validation at the edge
- Geo-IP location and device detection for content targeting
- Edge dictionaries for real-time business rules and decision making at the edge
- Remote log streaming for data aggregation and viewer diagnostics
- Transport Layer Security (TLS) for secure communications delivery
How Fastly's On-the-Fly Packaging service works
Fastly's OTFP service gets configured between our caching network and your origin storage (e.g., Amazon S3 or Google Cloud Storage, Rackspace Cloudfiles).
When users request manifests or video segments, those requests initially come to Fastly caches instead of going to your origin storage. Fastly's edge caches deliver those objects if they are available and valid. If the objects don't already exist in the edge caches, the requests will be passed on to a designated shield cache to be delivered instead as long as the objects are available and valid. If neither the edge caches nor the shield cache can deliver the objects, the requests for those objects will go directly to and be fulfilled by the OTFP service which acts as an origin for Fastly's cache nodes.
The OTFP service will make the necessary request to your origin storage to fulfill the original request from the user. The OTFP service also maintains a small, local, in-memory cache for video metadata indexes. These indexes are created using mp4 moov atom (or movie atom) that provide information about the video file such as its timescale, duration, audio and video codec information, and video resolution (among other characteristics).
For adaptive bitrate playback, the OTFP service will cache indexes of each quality level requested. If a user requests a manifest, OTFP will look for the corresponding indexes and, if it is available and valid, OTFP will generate the manifest and deliver it to the user. Otherwise, OTFP will fetch the moov atom from origin storage to generate the corresponding index. If a user requests video segments, OTFP will look for the corresponding audio and video sample entries in the cached index, download those samples from origin storage, and package them in the format requested.