Towards adaptive streaming for Ogg
Video streaming must be reliable and glitch-free. It must be possible for video hosting sites to allow clients to adapt to the available bandwidth, and for clients to be able to take advantage of this.
Adaptive streaming refers to a system which allows a video streaming client to request different versions of a stream according to the bandwidth it has available, and to change this selection on the fly, during the course of streaming. Such a system of course requires the streaming server to have various versions of a stream available, each in different bitrates. In order to allow the client to switch streams on the fly the content must be produced in such a way that corresponding video frames in the different representations can be easily accessed and decoded.
The first stage in building an adaptive streaming system is making it work for static content, ie. files on disk. The second stage is making it work for live content, ie. streams coming from a video production system consisting of cameras, mixing desks and random people in black tshirts. The first is mainly a technical problem; the second requires developing both technology and production processes.
Microsoft have a proprietary technology for adaptive bitrate streaming called Smooth Streaming, and an extension for Live Smooth Streaming. Apple are following a more open path, pursuing standardization of their specifications through the IETF, in the current form of the HTTP Live Streaming Internet-Draft. This extends the m3u playlist format with durations, sequence numbering, caching and stream information hints.
Ogg does not yet have an adaptive streaming specification; this should be developed in a way that is compatible with open specifications, and also taking into account the various quirks of Ogg. For example, the client must have access to codec setup headers for each bitrate representation, and the system must accomodate chained Ogg resources (as commonly used for streaming Ogg). In the W3C Media Fragments working group we are developing specifications for addressing fragments of media resources. The ongoing development of Ogg Skeleton allows Ogg to take advantage of these, allowing faster seeking through OggIndex and gapless playback through hints on presentation time.
Encouraging use of these features requires tool support and demonstrations of novel applications for video mash-ups. Video on the web should be a means of creative expression, allowing new applications that mash up parts of many videos and present the result seamlessly to the user. This goal makes Ogg fun, and brings us beyond thinking about video on the Web as just a different way of watching pre-packaged TV-style content.