FOMS2010-NYV

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