Introduction
An .f4m file is the manifest of Adobe HTTP Dynamic Streaming (HDS), the
adaptive streaming system Adobe introduced in 2010 for Flash Player. Like an HLS
playlist, it tells the player which versions of a video exist and how to find their
fragments, which are usually served as F4F files.
HDS fell out of use with Flash Player, which Adobe retired at the end of 2020. F4M files still turn up on older video sites and in archived streams.
Structure
The manifest is XML with the root element manifest in the namespace
http://ns.adobe.com/f4m/1.0 (or 2.0 for the later version).
Simple elements give the id, the streamType
(recorded or live) and the duration.
bootstrapInfo elements hold, in Base64, the table that maps times to
segments and fragments. Each media element describes one encoding, with its
address, bit rate and size, and a Base64 metadata block in the form of
the FLV onMetaData object.
<manifest xmlns="http://ns.adobe.com/f4m/1.0">
<id>film</id>
<streamType>recorded</streamType>
<bootstrapInfo profile="named" id="bootstrap1">…</bootstrapInfo>
<media url="film_1000" bitrate="1000" width="640" height="360" bootstrapInfoId="bootstrap1">
<metadata>…</metadata>
</media>
</manifest>