simongregory / glued

HTTP Dynamic Streaming Glue

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Glued

Build Status Code Climate Coverage Status Dependency Status Gem Version

A Ruby client to download HDS recorded fragments and glue them together. Live content isn't supported.

The primary aim is to download video on demand content. Encrypted DRM content will download, however it will not playback unless your player accomodates it and a license is available for the media.

HDS is designed for live media that dynamically adapts to network conditions and avoids buffering. It uses the HTTP protocol to benefit from existing network infastructre (ie CDNs). It is similar to MPEG-DASH and HLS.

References

Specification Documents

Code

Etc

Questions / Answers / Guesses

A box is a convention within a stream of bytes. Each box starts with a header, which describes length and type, followed by the data in the box.

Abbreviations

HDS - HTTP Dynamic Streaming
F4M - Flash Media Manfiest
F4F - Flash Media File fragment
F4X - Flash Media Index file
F4V - H.264/AAC based content
FLV - Other flash supported codecs

How it works

Load the f4m manifest
- Bad url? go 💥
- Detect any alternate bitrate manifests? go 💥
- Detect a live stream? go 💥
- Automatically picks the higest bitrate stream
Builds a list of fragment urls
Download each fragment
- Fragment fails? go 💥
Glue it to the previous fragment
Repeat till done

License

MIT, see accomanying LICENSE document

About

HTTP Dynamic Streaming Glue

License:MIT License


Languages

Language:Ruby 100.0%