2. Plain file delivery
+ Simple & fast (nginx)
+ Easy to collect logs
+ Excelent buffer support (possible to buffer whole file)
- No multibitrate
- No live streaming
- Awfull seeking (almost impossible with mp4)
- Traffic overusage with seeks and transparent caching proxies
3. RTMP (pros)
+ Live event streaming
+ Proper seek support
± Bitrate switch (only manual)
4. RTMP (cons)
- No buffering (primitive content protection)
- Firewall blocking
- Hard clustering (almost impossible to proxy file rtmp access)
- Impossible to do automatic multibitrate
- Non cacheable by intermediate proxies
5. Design problems of RTMP
Persistent TCP connection
Non-HTTP port and protocol
Two players that require logic sync: on client and on server
6. HTTP Streaming
Don’t miss with pseudostreaming
Adobe HDS, Apple HLS, Microsoft Smooth MPEG-DASH
Content is delivered in chunks according to manifest
Live streaming is done by reloading changing manifest
7. Multibitrate implementation
Client downloads several chunks via HTTP
It knows their duration from manifest
If download takes more than duration, lower bitrate is chosen
If download is faster than next bitrate, upper bitrate is chosen
8. Adobe HDS
Fully implemented in flash player libraries, can be rewritten to any
needs
NetStream.appendBytes
mp4/flv chunks are delivered
timeshift
multibitrate
chunk skipping (on slow channels)
buffering of whole file possible
9. Apple HLS
Implemented inside iOS, Android or firmware
Almost no control of video from client-side
Multibitrate
No full-file buffering
Very high container overhead (15-30%)