Add F4V fragment downloader (also known as F4F)

The F4V format and manifest specifications are documented by adobe:

They contain just enough information to work out how to do a fragment
downloader, so this is the first pass at such a beast.  It's only really been
tested with and  It takes the manifest file and
does the download.  Since the manifest is the only way to get the stream
resolutions, the F4VDownloader also works out the best resolution to choose.

The problems are

1. No current way to resume downloads.  In theory, since the video could be
   restarted with each fragment, this should be easily possible.  However, the
   problem is that the fragments are exact time intervals apart (usually
   around 10s) but they are variable sizes, so given a current file size, it's
   very difficult to say how many fragments it contains.
2. No support for DRM streams
3. No internal restarts ... if a fragment download fails for some reason, the
   whole thing just stops

Signed-off-by: James Bottomley <>
2 files changed