• Google Sponsored Project
• Aims to create: Open, Royalty free media coding
formats for the open web
▫ File Format / Container
▫ Audio CODEC
▫ Video CODEC
Fragmented Web - Description
• Multimedia coding on the web is fragmented
• Many video codecs:
▫ DIVX, XVID, H.264
▫ WMV, VC-1, VP6
• Many containers (File Format)
▫ AVI, MKV
▫ MPEG4 FF, 3GPP
• Many delivery methods
▫ RTSP/RTP Streaming, Progressive download
▫ Live HTTP, Smooth Streaming
Fragmented Web - Challenges
• Proprietary Plug-ins - like Flash
• Vertical market control on media distribution –
• Media Distributers need to support many:
▫ Delivery Formats
• in order to support all device and audiences
• XIPH.org is a non profit organization which
aims to create free multimedia coding standards
• XIPH defined
▫ Vorbis – Audio codec
▫ Ogg – a free file format media container
▫ Speex – voice codec
▫ Theora – Video Codec
• HTML5 Video first based its video codec and
container standard on XIPH Standards
• Drafts by WHAT WG
▫ Web Hypertext Application Technologies
• Merging into W3C specifications
• “One of HTML5’s goals is to move the Web away from
proprietary technologies such as Flash, Silverlight, and
JavaFX, says Ian Hickson, co-editor of the HTML5
—Paul Krill, reporting for InfoWorld, June 16, 2009
• Browser support
• HTML5 video first defined XIPH formats as the
base HTML5 video:
“User agents should support Theora video and
Vorbis audio, as well as the Ogg container
format.” December 10, 2007, the HTML5 specification
• This was later replaced by a statement which
basically stated: we cant make up our mind, use
whatever you like.
H.264 vs Theora
• Theora is a royalty free code but has lower
quality than H.264
• H.264 requires royalties for IP owners but has
• Some browser used H.264 video some stayed
• HTML5 video fragments
Browser Ogg Theora H.264
the web instead of unit it Internet
Safari No 3.1
• WebM fills the gap left by HTML5 standardization.
• Defines: video, audio and container formats
• Solves the royalty free Theora vs the superior
quality H.264 by providing a royalty free video
codec with the same (or better) video quality as
MKV - File Format
• Container file format for videos, audio tracks,
pictures and subtitles all in one file.
• Announced on Dec. 2002 by Steve Lhomme.
• Based on Binary XML format called EBML
(Extensible Binary Meta Language)
• Complete Open-Standard format. (Free for
• Source is licensed under GNU L-GPL.
MKV - Specifications
• Can contain chapter entries of video streams
• Allows fast in-file seeking.
• Metadata tags are fully supported.
• Multiple streams container in a single file.
• Modular – Can be expanded to company special
• Can be streamed over HTTP, FTP, etc.
MKV Support software & hardware
▫ All Player, BS.Player, DivX Player, Gstreamer-Based
players, VLC media, xine, Zoom Player, Mplayer,
Media Player Classic, ShowTime, Media Player Classic
and many more…
• Media Centers:
▫ Boxee, DivX connected, Media Portal, PS3 Media
Server, Moovida, XBMC etc.
• Blu-Ray Players:
▫ Samsung, LG and Oppo.
• Mobile Players:
▫ Archos 5 android device, Cowon A3 and O2.
MKV - EBML in details
• A binary format for representing data in XML-
• Using specific XML tags to define stream
properties and data.
• MKV conforms to the rules of EBML by defining
a set of tags.
▫ Segment , Info, Seek, Block, Slices etc.
• Uses 3 Lacing mechanisms for shortening small
data block (usually frames).
▫ Uses: Xiph, EBML or fixed-sized lacing.
MKV – Simple representation
Header Version info, EBML type ( matroska in our case ).
Meta Seek Optional, Allows fast seeking of other level 1 elements in file.
Segment File information - title, unique file ID, part number, next file
Track Basic information about the track – resolution, sample rate,
Chapters Predefines seek point in media.
Clusters Video and audio frames for each track
Cueing Data Stores cue points for each track. Allows fast in track seeking.
Attachment Any other file relates to this. ( subtitles, Album covers, etc… )
Tagging Tags that relates to the file and for each track (similar to MP3
MKV – Streaming
• Matroska supports two types of streaming.
• File Access
▫ Used for reading file locally or from remote web
▫ Prone to reading and seeking errors.
▫ Causes buffering issues on slow servers.
• Live Streaming
▫ Usually over HTTP or other TCP based protocol.
▫ Special streaming structure – no Meta seek, Cues,
Chapters or attachments are allowed.
• Loop Filter
• Golden Frames
• Multi-Core support
• Decode Efficiency
• Low Latency
Adaptive Loop Filter
• Improved Loop filter provides better quality &
preformance in comparison to H.264
• Golden frames enables better decoding of
background which is used for prediction in later
• CABAC is an H.264 feature which improves
coding efficiency but consumes many CPU cycles
• VP8 has better entropy coding than H.264, this
leads to relatively lower CPU consumption under
the same conditions
• Decoding efficiency is
important for smooth
operation and long battery
life in netbooks and mobile
• For information, lectures and development
project request, contact: