Notes: Zachary Ozer Pablo Jeroen David George Zaheer Ralph Ben Schwartz Edward Thomas Monty JB Chris
Constraints:
* Delay * Ease of deployment * Multiple resolutions * Multiple audio streams * Switch codecs * TCP / HTTP characteristics / metrics * Mirrors / server switching * Manifest and JS access * Changing set of streams via changing manifest * Maybe m3u, simple text
Ben: How does adaptive HTTP streaming work?
David: Big one is Apple HTTP streaming 3 MPEGTS -> HTTP streams. Divided up into individual files at keyframes and play it. Each is same dimensions, same framerate, different sizes. Audio stream has to be constant. Same audio packet between streams. Indexes (m3u) with duration. Appended. Header in each one - start anywhere.
Thomas: Less than 64kb.
Monty: How much is specifically technical?
* akamai edge servers
* CDNs?
Jeroen:
* no special streaming server * Only download one chunk (bandwidth conservation) * client controls switching * Natural boundary for QOS controls Thomas: * good for statistics (log line)
Monty:
* Gets around range requests issues
Dave:
* Continuously append from server (ogg)
Chris
* Gambling / live sports (latency 0-2 ok, 30 not ok)
Thomas:
* trade off between requests and
Chris:
* Manifest vs stream * Different for different formats
Monty:
* MPEG2? can be strung together
* Header overhead
WebM and Theora?
David:
* Live stream switching - how often do you switch bitrate? * How often does IP address change?
Ben:
* How decide when to change?
Chris:
* Akamai boosts you up and then drops you down
Zach:
* Are all codecs streamable in this way?
JB:
* there's a problem with MKV
Thomas:
- Target average bitrate. Apple validates.
Monty:
* Tons of files, with empty tracks * Container specific solutions
Ben:
* Does it matter if keyframes overlap?
Chris:
* Need overlap to do codec switching * Latency / idle / packet loss * You can do a lot of network statistics * larger files are better, but harder to switch / higher latency
Zohar:
* Can't assume all coming from the same server
Thomas:
* Last mile proble * Microsoft / Adobe have multicast solutions
Monty:
* Using CDN as primitive multicasting
Chris:
* Mirror list + track list * switch bandwidth * Control stream order * Provide
Thomas:
* Why implement it in JS?
Chris:
* cross browser compatible * open to test against, well defined
Thomas:
* chunks, lengths only
Chris:
* Stream piece and application piece * Compartmentalize and inextensible
JB:
* DRM extension
Chris:
* Interoperability
Thomas:
* Ignore extensions, base implementation
Ben:
* Too complicated to change stream set
Jeroen:
- What metrics?
Chirs:
- Dropped frames
- Estimated bandwidth
- control next frame, next chunk
Ben:
- Audio API
Thomas:
- Prototype
Chris:
- Easy to switch between video streams, hard to switch from video to ad