Thursday, September 20, 2012

Fragmented MP4 Format - fMP4 - F4F - Adobe and Microsoft thoughs adoption

Two companies that contributed to this white paper—Adobe and Microsoft—shared thoughts on
their journey towards fMP4.

For more than a decade, that business centered on the Real-Time Media Protocol (RTMP) that Adobe launched back in 2001 with Flash Player 6. RTMP stood at the heart of Adobe Flash Media Server (FMS) and many de facto workflows sprung up around the protocol, although it was extended over the years to address encryption (RTMP-E) and peer-to-peer delivery (RTMFP).
One such enhancement to FMS was a precursor to Adobe’s foray into HTTP delivery. Back in December 2009, with the release of FMS 3.5.3, Adobe essentially decoupled the buffer from the connection, allowing semi-stateless connection between player and server and empowering Flash Player to continue play back even if the connection dropped. Developers can use ActionScript to
reconnect to Flash Player to FMS and, if reconnection occurs before the buffer empties, there is no perceived disruption in client playback, critical for mobile video delivery on intermittent networks.
Adobe saw opportunity to provide similar workflows for devices that did not use its Flash Player plug-in. In 2010, Adobe announced Adobe HTTP Dynamic Streaming (HDS), an HTTP-based adaptive streaming approach that built on fMP4 as its base protocol.
“This is a very different approach than our RTMP delivery with Adobe FMS, which uses normal FLV or MP4 (F4V) file formats,” said Kevin Towes, Adobe’s senior product manager for delivery. “The MP4-Fragment format [Adobe calls it F4F] adheres to the industry standard which is important for re-usability. The format also enabled a major requirement for media streaming – protection—
allowing you to deliver your live or pre-recorded content, leverage the caching devices, and still maintain control over your video assets.”
As part of the new Flash Media Server, announced in September 2011, Adobe enhanced support for both manifest (F4M) and fragment (F4F) file formats. Adobe uses an XML-based solution it calls F4M version 2, similar in concept to a variant playlist in what Adobe calls “set level manifests”.
“Workflows in RTMP have more than a decade of robustness behind them,” said Towes, “but the same workflows haven't been as easy in HTTP. Our investment into the HTTP workflows—bringing them on par with RTMP workflows—allows established FMS customers to maintain their sizable desktop/laptop viewer base while also pursuing new iPad and other iOS device revenue streams.”
Modifications to F4F allow real-time packaging, protection and features such as variant playlists to act on par with RTMP-based workflows. For encryption, FMS encrypts F4F fragments within FMS, using either a built-in Flash Access encryption module or a stand-alone Flash Access server.


Adobe emphasizes the point that fMP4 natively allows for network optimization and content encryption, but it also notes that different devices require different optimizing tweaks for delivery. Leveraging FMS for both desktop and mobile devices, including creation of HLS-based transport streams, Adobe feels it can supply content to every device at optimal resolutions and bandwidths. Seeking is one such area: given the ability to identify and deliver a byterange via fMP4,  Adobe can bring its “seek” enhancement from RTMP directly into an HTTP delivery scenario. When enabled, seeking occurs first within the buffer,  significantly reducing the load on the server compared to traditional back-and-forth seeks between client and server. The duration of the buffer can be dynamically changed, something not currently possibly in MPEG-2 TS solutions, to allow for pseudo-DVR functions such as instant replay or simple time-shifting options within the player. This also allows playback at different speeds and frame-accurate stepping from scene to scene. “We try to help broadcasters realize new revenue streams,” said Adobe’s Kevin Towes, “regardless of platform being delivering to. Where Flash Player is available, we'll use RTMP or HTTP Dynamic Streaming to deliver world-class quality of experience, encryption and rights management. With other platforms, such as iOS-based devices, we'll do an equally good job. Adobe also sees the benefit of standards-based approaches like the Common File Format, HTML5 and  MPEG-DASH.”


Microsoft. Microsoft had a significant installed Windows Media® user base for well over ten years. Yet the company announced in late 2008 it was moving toward fragmented MP4 with the launch of Smooth Streaming, a first-to-market adoption of fMP4. Smooth Streaming combines Windows Server® and Silverlight® (or other Smooth Streaming clients) with XML and SMIL manifests.
Manifests have an *.ismv extension. Manifests indicate to an adaptive streaming client what bitrates are available in a file set, where fragments reside, and header parameters from each video file. Microsoft stores like-bitrate "chunks" of video as movie fragments in a single file, using timecode information stored in each movie fragment (moof) as an index for particular segments to download
and play back. Smooth Streaming devices download movie fragments containing either a video closed Group of Pictures (GOP) or an integral number of audio sync frames, via a single HTTP request. The player than select segments (typically 2-4 seconds long) from multiple streams encoded with different bitrates, resolutions, languages, etc.
What were Microsoft’s reasons for choosing fMP4 over ASF? The company notes five:
• MP4 is a lightweight container format with less overhead than ASF
• MP4 is easier to parse in managed code (.NET) than ASF
• MP4 is itself a widely used standard, making 3rd party adoption / support more straightforward
• MP4 was architected with H.264 video codec support in mind
• MP4 was designed to natively support payload fragmentation within the file

“The MPEG-4 fragmented format was able to do everything we needed,” wrote Ben Waggoner, principle program manager at Microsoft, “so it was simplest to just use that rather than make up something new. We're not trying to make up a new file format here; just take advantage of existing technologies in a novel way.”
“ASF was a great format for bit-pumping,” wrote Waggoner in 2009, “with a MIPS-per-Mbps ratio better than other formats of its era. However, it simply wasn't well set up to allow a byterange to encapsulate a fragment that could potentially be a single closed GOP. Since server hardware is so much more powerful these days and proxy caching so dramatically reduces the load on the origin server, going for a somewhat more complex server-side parsing methodology made good sense.”
Microsoft chose to go “all in” around the standard, including use of *.ismv and *.mp4 extensions. What have they done with Smooth Streaming since its announcement in 2008? Quite a lot, actually. Smooth Streaming has seen significant traction with Silverlight, but doesn’t require Silverlight to deliver adaptive bitrate HTTP streaming, as evidenced by Smooth Streaming clients such as the Comcast® XFINITY® TV App for iOS devices and Linux-based  Netgem set-top boxes. Such non-Silverlight clients can be created using a Smooth Streaming client source-porting kit from Microsoft that enables playback on any device.
In addition, publication of a Smooth Streaming specification, called PIFF (protected interoperable
file format) has been adopted—along with Microsoft PlayReady® DRM technology—for use in new Netflix ready devices and applications, including the Apple iPad. Microsoft has also enabled several compelling scenarios—including advertising and alternate language tracks—on top of fMP4. In addition, the Microsoft ecosystem surrounding the Smooth Streaming format includes two key tools: Expression® Encoder for live- and on-demand Smooth Streaming encoding and IIS Media Services. The latter rides on top of the Microsoft Internet Information Services (IIS) web server that ships in every version of Windows Server 2008.
Another very interesting part of the workflow, that I’ve covered for several trade publications as well as the Workflowed blog, is IIS Transform Manager, a server-side transcoding and transforming tool. Transform Manager can convert a variety of formats, including segmented .mp4 files, to Smooth Streaming presentations. It can also convert Smooth Streaming content for use on Apple iOS devices, converting from fMP4 to HLS (MPEG-2 TS) as part of its standard workflow. Transform Manager scales out on multi-core HPC clusters, plus allows audits of all file copies/movement to improve monitoring/management control.
Microsoft is committed to supporting the standards-based approach, including the Common File Format (CFF), Common Encryption (CENC) and the MPEG-DASH adaptive delivery over HTTP.

Wednesday, September 19, 2012

Difference between HTTP Dynamic Streaming and RTMP Dynamic Streaming

HTTP Dynamic Streaming can provide additional benefits and enables significant improvements over
progressive delivery. Some advantages of HTTP Dynamic Streaming over HTTP progressive download include:
•     Delivery cost reduction by utilizing Internet caching infrastructure
•     Easier firewall traversal
•     Higher burstable capacity by utilizing standard CDN load-balanced networks and HTTP infrastructure caching
•     Live streaming with adaptive bitrate, DVR support, and integrated content protection powered by Flash Access
•     Continuous protection of content throughout the distribution chain, closing some potential vulnerabilities
•     OSMF for rapid custom video player development, offering easy integration with advertising and analytics
•     Bitrate throttling to help ensure only what is watched is delivered
•     Media navigation supporting enhanced seeking and start anywhere
The following table shows some differences between HTTP Dynamic Streaming and RTMP Dynamic Streaming.


F4F File Format Specification

The F4F file format describes how to divide media content into segments and fragments.
Each fragment has its own bootstrap information that provides cache management and fast seeking. For more
information


see F4F File Format Specification
at Adobe site.

F4M File Format Specification Examples (HTTP Dynamic Streamin)

Example Manifest Files


A single piece of media

With a duration of 253 seconds.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns="http://ns.adobe.com/f4m/1.0">
 <id>myvideo</id>
 <duration>253</duration>
 <media url="rtmp://example.com/myvideo"/>
</manifest>



Multiple bitrate streams and (externally specified) DRM and HTTP bootstrapping information that applies to all streams

Note that the media files and bootstrap info are specified relatively to the baseURL tag, whereas the DRM AdditionalHeader file is specified absolutely.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns="http://ns.adobe.com/f4m/1.0">
 <id>myvideo</id>
 <duration>253</duration>
 <mimeType>video/x-flv</mimeType>
 <streamType>recorded</streamType>
 <baseURL>http://example.com"</baseURL>
 <drmAdditionalHeader url="http://mydrmserver.com/mydrmadditionalheader"/>
 <bootstrapInfo profile="named" url="/mybootstrapinfo"/>
 <media url="/myvideo/low" bitrate="408" width="640" height="480"/>
 <media url="/myvideo/medium" bitrate="908" width="800" height="600"/>
 <media url="/myvideo/high" bitrate="1708" width="1920" height="1080"/>
</manifest>

Multiple bitrate streams, each with both DRM and HTTP bootstrapping information

This example also includes an explicit moov atom for each stream. Note that the DRM and HTTP blocks are shared for some streams, but not all.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns="http://ns.adobe.com/f4m/1.0">
 <id>ABC</id>
 <startTime>2009-11-29T21:53:12-08:00</startTime>
 <duration>253</duration>
 <mimeType>video/mp4</mimeType>
 <streamType>recorded</streamType>
 <deliveryType>streaming</deliveryType>
 <drmAdditionalHeader id="ah1">
  BASE64 encoding of DRM AdditionalHeader
 </drmAdditionalHeader>
 <drmAdditionalHeader id="ah2">
  BASE64 encoding of DRM AdditionalHeader
 </drmAdditionalHeader>
 <bootstrapInfo id="boot1" profile="named">
  BASE64 encoding of bootstrap information
 </bootstrapInfo>
 <bootstrapInfo id="boot2" profile="named">
  BASE64 encoding of bootstrap information
 </bootstrapInfo>
 <media url="http://example.com/myvideo/low" bitrate="408"
                            bootstrapInfoId="boot1" drmAdditionalHeaderId="ah1">
  <moov>
   BASE 64 encoding of moov
  </moov>
 </media>
 <media url="http://example.com/myvideo/med" bitrate="1108" 
                 bootstrapInfoId="boot1" drmAdditionalHeaderId="ah2">
  <moov>
   BASE 64 encoding of moov
  </moov>
 </media>
 <media url="http://example.com/myvideo/high" bitrate="1708"
                        bootstrapInfoId="boot2" drmAdditionalHeaderId="ah2">
  <moov>
   BASE 64 encoding of moov
  </moov>
 </media>
</manifest>



RTMFP multicast media

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns="http://ns.adobe.com/f4m/1.0">
 <id>myvideo</id>
 <streamType>live</streamType>
 <media url="rtmfp://example.com/myapp" groupspec="G:XYZXYZXYZ" 
                              multicastStreamName="mystream"/>
</manifest>



DVR media

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns="http://ns.adobe.com/f4m/2.0">
 <id>myvideo</id>
 <streamType>live</streamType>
 <dvrInfo windowDuration="1800" offline="false" />
 <media url="rtmpe://example.com/myapp" />
</manifest>



HDS stream with alternative audio tracks

Also known as "late-binding audio".
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns="http://ns.adobe.com/f4m/1.0">
 <id>myvideo</id>
 <streamType>recorded</streamType>
 <duration>100</duration>
 <label>English</label>
 <lang>en</lang>
 <mimeType>video/mp4</mimeType>
 <baseURL>http://example.com/</baseURL>
 <bootstrapInfo profile="named" id="boot1">
  BASE64 encoding of bootstrap information
 </bootstrapInfo>
 <bootstrapInfo profile="named" id="boot2">
  BASE64 encoding of bootstrap information
 </bootstrapInfo>
 <bootstrapInfo profile="named" id="boot3">
  BASE64 encoding of bootstrap information
 </bootstrapInfo>
 <media url="myvideo" bitrate="1300" bootstrapInfoId="boot1" />
 <media url="myvideo_audio1" bitrate="192" bootstrapInfoId="boot2" 
                    type="audio" label="Espanol" lang="es" alternate="true" />
 <media url="myvideo_audio2" bitrate="192" bootstrapInfoId="boot3" 
                    type="audio" label="Chinese" lang="zh" alternate="true" />
</manifest>



Multiple bitrate streams, each with HTTP Streaming bootstrap information

Also having alternate audio tracks.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns="http://ns.adobe.com/f4m/1.0">
 <id>myvideo</id>
 <label>English</label>
 <lang>en</lang>
 <streamType>recorded</streamType>
 <duration>100</duration>
 <mimeType>video/mp4</mimeType>
 <baseURL>http://example.com/</baseURL>
 <bootstrapInfo profile="named" id="boot1">
  BASE64 encoding of bootstrap information
 </bootstrapInfo>
 <bootstrapInfo profile="named" id="boot2">
  BASE64 encoding of bootstrap information
 </bootstrapInfo>
 <bootstrapInfo profile="named" id="boot3">
  BASE64 encoding of bootstrap information
 </bootstrapInfo>
 <bootstrapInfo profile="named" id="boot4">
  BASE64 encoding of bootstrap information
 </bootstrapInfo>
 <bootstrapInfo profile="named" id="boot5">
  BASE64 encoding of bootstrap information
 </bootstrapInfo>
 <media url="myvideo_250" bitrate="250" bootstrapInfoId="boot1" />
 <media url="myvideo_500" bitrate="500" bootstrapInfoId="boot1" />
 <media url="myvideo_900" bitrate="900" bootstrapInfoId="boot1" />
 <media url="myvideo_1300" bitrate="1300" bootstrapInfoId="boot2" />
 <media url="myvideo_2100" bitrate="2100" bootstrapInfoId="boot3" />
 <media url="myvideo_audio1" bitrate="192" bootstrapInfoId="boot4" 
                  type="audio" label="Espanol" lang="es" alternate="true" />
 <media url="myvideo_audio2" bitrate="192" bootstrapInfoId="boot5"
                  type="audio" label="Chinese" lang="zh" alternate="true" />
</manifest>



A multi-level manifest

Note:
  • <dvrInfo> is set in the set-level manifest.
  • <bootstrapInfo> is set in the stream-level manifests.
  • Even though the two streams use the same bootstrapInfo id to refer to different bootstrap files, there’s no conflict, as the scope of <bootstrapInfo> is limited to the file that it’s in.
  • Similarly, the scope of <baseURL> is the manifest it is in.
Set-Level Manifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns="http://ns.adobe.com/f4m/2.0">
 <id>myVideo</id>
 <baseURL>http://www.example.com/myvideo/</baseURL>
        <dvrInfo offline="false" windowDuration="600" />
 <streamType>live</streamType>
 <media href="stream250.f4m" bitrate="250" />
 <media href="stream500.f4m" bitrate="500" />
</manifest>
Stream-Level Manifest 1
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns="http://ns.adobe.com/f4m/1.0">
 <id>myStream1</id>
 <baseURL>http://www.example.com/data/</baseURL>
        <bootstrapInfo profile="named" id="boot1" url="myvideo_250.bootstrap" />
 <media url="myvideo_250" bitrate="250" bootstrapInfoId="boot1" />
</manifest>
Stream-Level Manifest 2
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns="http://ns.adobe.com/f4m/1.0">
 <id>myStream2</id>
        <bootstrapInfo profile="named" id="boot1" 
                 url=”http://www.example.com/data/myvideo_500.bootstrap” />
        <media url="http://www.example.com/data/myvideo_500" 
                        bitrate=”500” bootstrapInfoId=”boot1” />
</manifest>

F4M File Format Specification ( HTTP Dynamic Streaming)


Flash Media Manifest (F4M) File Format

Overview

The Flash Media Manifest is a file format that contains information about a Flash media asset. This information includes the location of the media, DRM authentication information, media bootstrap information, multi-bitrate information (MBR), etc. The intended workflow is that a media player loads and "plays" a manifest file as if it were an atomic media file. The load process might involve DRM authentication, HTTP bootstrapping, and selection of the appropriate MBR rendition.
The manifest file itself is an XML document that represents a single piece of media, for example, a music video. That music video might have multiple variations (e.g. related instances of the video with different bit rates, localized content, etc.), but a single manifest file would never encapsulate more than that one music video. To represent more than one distinct piece of media (for example, an entire album of music videos) requires multiple manifests or the use of other encapsulation formats (such as SMIL or RSS/Atom).
A manifest file can include metadata, DRM settings, and/or bootstrap information, and each can be assigned to the piece of media as a whole (that is, to all instances of the media), or to a specific instance. In the former case, the information is placed under the root of the manifest, while in the latter case the information is placed directly under the representation to which it applies.
This document describes the structure of the F4M file format, which is currently at version 2.0. It is published as an open specification.

Terminology

Manifest File
An instance of a file of this format.
F4M
The file extension for a file of this format.
DRM
Digital Rights Management, as implemented in Flash Player v10.1.
MLM
Multi-level manifest, a concept introduced in F4M 2.0 to provide support for manifest file hierarchies.
Set-Level Manifest
A manifest file that groups individual stream-level manifest files.
Stream-Level Manifest
A manifest file describing a single <media> instance.


Highlights

Some important aspects of the file format:
  • A manifest file can contain multiple representations of the same piece of media. These representations could vary by bit rate, dimensions, or MIME type. For example, a manifest file could contain pointers to five different bit rate FLV files and three different bit rate MP4 files.
  • No assumptions are made about the media type(s) that a manifest file contains. The primary use case is video, but there's no reason to assume that a manifest would never contain something else.
  • A manifest file can contain one shared DRM additional header block which applies to all media files, or per-file DRM additional header blocks.
  • A manifest file can contain one shared bootstrap information block which applies to all media files, or per-file bootstrap information. For example, there could be one bootstrap information block which applies to all FLV versions of the media, and a second bootstrap information block which applies to all MP4 versions of the media (assuming there are FLV- and/or MP4-specific bootstrapping algorithms).
  • The bootstrap information block contains the raw data included in the bootstrapinfo box. As such, consumers of a manifest file need to parse this binary data to find the info that's relevant to the bootstrapping algorithm.
  • Both the DRM additional header and bootstrap info can be specified as external files (via URLs).
  • The DVR info can be specified as an external file, so that the client application can periodically re-retrieve it.
  • Each URL in the document can be absolute, relative to a manifest-wide base URL, or (if no manifest-wide base URL is specified) relative to the manifest file itself.
  • A manifest file can contain the moov atom, the metadata block, and the XMP metadata block for each file.
    • Note: Starting with F4M 2.0, the moov atom and the XMP metadata block are deprecated.
  • The manifest file is an XML structure in a specific namespace. This enables the inline integration of manifest XML documents in other XML documents (e.g. RSS or SMIL).
  • As with most XML languages, developers can extend the manifest file format by placing their own elements in a custom namespace. 


Document Structure

The following sections describe the semantics of each element.


<manifest>

The root element in the document is <manifest>.


<id>

The <id> element represents a unique identifier for the media. It is optional.


<label>

The <label> element is a string representing the default user-friendly description of the media. It is assumed that all representations of the media have the same description, except the alternatives tracks, hence its placement under the document root. It is optional.


<lang>

The <lang> element is a string representing the base language of the piece of media. It is assumed that all representations of the media have the same description, except the alternatives tracks, hence its placement under the document root. It is optional.


<duration>

The <duration> element represents the duration of the media, in seconds. It is assumed that all representations of the media have the same duration, hence its placement under the document root. It is optional.
For live or DVR content, the duration represents the total expected time of the media, not the current duration of the media. Usually for live content, it is 0.


<startTime>

The <startTime> element represents the date/time at which the media was first (or will first be) made available. It is assumed that all representations of the media have the same start time, hence its placement under the document root. The start time must conform to the "date-time" production in RFC3339. It is optional.


<mimeType>

The <mimeType> element represents the MIME type of the media file. It is assumed that all representations of the media have the same MIME type, hence its placement under the document root. It is optional.


<streamType>

The <streamType> element is a string representing the way in which the media is streamed. Valid values include "live", "recorded", and "liveOrRecorded". It is assumed that all representations of the media have the same stream type, hence its placement under the document root. It is optional.


<deliveryType>

The <deliveryType> element indicates the means by which content is delivered to the player. Valid values include "streaming" and "progressive". It is optional. If unspecified, then the delivery type is inferred from the media protocol. For media with an RTMP protocol, the default deliveryType is "streaming". For media with an HTTP protocol, the default deliveryType is also "streaming". In the latter case, the <bootstrapInfo> field must be present.


<baseURL>

The <baseURL> element contains the base URL for all relative (HTTP-based) URLs in the manifest. It is optional. When specified, its value is prepended to all relative URLs (i.e. those URLs that don't begin with "http://" or "https://" within the manifest file. (Such URLs may include <media> URLs, <dvrInfo> URLs, <bootstrapInfo> URLs, <drmAdditionalHeader> URLs, and <alternativeAudioTracks> URLs.)
The <baseURL> element's scope is the file it resides in. For multi-level manifest use, relative URLs in a file (set-level or stream-level) manifest are relative to the <baseURL> from that specific file (or to the location of that file, if <baseURL> is missing).


<drmAdditionalHeader>

The <drmAdditionalHeader> element represents the DRM AdditionalHeader needed for DRM authentication. It contains either a BASE64 encoded representation of, or a URL to, the DRM AdditionalHeader (including the serialized "|AdditionalHeader" string). It is optional.
Attributes:
  • id: The ID of this <drmAdditionalHeader> element. It is optional. If it is not specified, then this header will apply to all <media> elements that don't have a drmAdditionalHeaderId property. If it is specified, then this header will apply only to those <media> elements that use the same ID in their drmAdditionalHeaderId property.
  • url: A URL to a file containing the raw DRM AdditionalHeader. Either the url attribute or the inline BASE64 header (but not both) must be specified. If a specified URL is non-absolute, then it must be relative to the manifest file itself.
Notes: For multi-level manifest use:
  • This element should only be present in the stream-level manifest.
  • This element's scope is the file it resides in. A stream-level manifest's media cannot reference a <drmAdditionalHeader> from a different stream-level manifest.
    • Because of this, there are no conflicts when two <drmAdditionalHeader> elements from different files have the same id.


<bootstrapInfo>

The <bootstrapInfo> element represents all information needed to bootstrap playback of HTTP streamed media. It contains either a BASE64 encoded representation of, or a URL to, the bootstrap information in the format that corresponds to the bootstrap profile. It is optional.
Attributes:
  • id: The ID of this <bootstrapInfo> element. It is optional. If it is not specified, then this bootstrapping block will apply to all <media> elements that don't have a bootstrapInfoId property. If it is specified, then this bootstrapping block will apply only to those <media> elements that use the same ID in their bootstrapInfoId property.
  • profile: The profile, or type of bootstrapping represented by this element. For the Named Access profile, use "named". For other bootstrapping profiles, use some other string (i.e. the field is extensible). It is required.
  • url: A URL to a file containing the raw bootstrap info. Either the url attribute or the inline BASE64 bootstrap info (but not both) must be specified. If a specified URL is non-absolute, then it must be relative to the manifest file itself (or to the baseURL, if specified).
Notes: For multi-level manifest use:
  • This element should only be present in the stream-level manifest.
  • This element's scope is the file it resides in. A stream-level manifest's media cannot reference a <bootstrapInfo> from a different stream-level manifest.
    • Because of this, there are no conflicts when two <bootstrapInfo> elements from different files have the same id.


<dvrInfo>

The <dvrInfo> element represents all information needed to play DVR media. It contains no content, only attributes. It is optional.
Attributes:
  • [deprecated] id: The ID of this <dvrInfo> element. It is optional. If it is not specified, then this DVR info applies to all <media> elements that don't have a dvrInfoId property. If it is specified, then this DVR info applies only to those <media> elements that use the same ID in their dvrInfoId property.
    • Deprecated starting with F4M 2.0
  • url: A URL to a file containing the DVR info. It is optional. If a specified URL is non-absolute, then it must be relative to the manifest file itself (or to the baseURL, if specified). If the url attribute is specified, then the client should periodically re-fetch the DVR info at that URL. The document at that URL must be an XML document whose root element is <dvrInfo>, and whose structure is the same as this element, with the exception that there should be no "url" attribute.
  • [deprecated] beginOffset: The offset, in seconds, from the beginning of the recorded stream. Clients can begin viewing the stream at this location. It is optional, and defaults to zero.
    • Deprecated starting with F4M 2.0
  • [deprecated] endOffset: The amount of data, in seconds, that clients can view behind the current duration. If endOffset is zero, then the clients can view the whole content. It is optional, and defaults to zero.
    • Deprecated starting with F4M 2.0
  • windowDuration: The amount of data, in seconds, that clients can view behind the live point. If windowDuration is -1, then the clients can view the whole content. It is optional, and defaults to -1.
    • Introduced in F4M 2.0
  • offline: Indicates whether the stream is offline, or available for playback. It is optional, and defaults to false.
Notes:
  • For multi-level manifest use with DVR, the <dvrInfo> element should be present in the set-level manifest. The <dvrInfo> elements from the stream-level manifests are ignored.


<media>

The <media> element represents one representation of the piece of media. Each representation of the same piece of media has a corresponding <media> element. There must be at least one <media> element.
Attributes:
  • url: The URL of the media file. It is optional (only one of @url and @href should be present). If a specified URL is non-absolute, then it must be relative to the baseURL (if specified) or the manifest file itself (if no baseURL is present).
  • bitrate: The bitrate of the media file, in kilobits per second. If only one <media> element is in the manifest file, then the bitrate attribute is optional. If more than one <media> element is in the manifest file, then the bitrate attribute is required for each element.
  • streamId: The identifier for media file. It is optional.
  • width: The intrinsic width of the media file, in pixels. It is optional.
  • height: The intrinsic height of the media file, in pixels. It is optional.
  • drmAdditionalHeaderId: The ID of a <drmAdditionalHeader> element which contains the DRM AdditionalHeader for this media file. It is optional.
  • bootstrapInfoId: The ID of a <bootstrapInfo> element which contains the bootstrap info that this media file should use. It is optional. If this attribute is present, then the <url> attribute may represent the base URL of the actual media.
  • [deprecated] dvrInfoId: The ID of a <dvrInfo> element which contains the DVRInfo that this media file should use. It is optional.
    • Deprecated starting with F4M 2.0
  • groupspec: The group specifier for multicast media. It is optional. Multicast is only supported over RTMFP, and only for a single (non-MBR) stream. If specified, then the "url" attribute contains the connection URL, and the "multicastStreamName" attribute must also be specified.
  • multicastStreamName: The stream name for multicast media. It is optional. Multicast is only supported over RTMFP, and only for a single (non-MBR) stream. If specified, then the "url" attribute contains the connection URL, and the "groupspec" attribute must also be specified.
  • type: The type for alternative track. Valid values include "audio+video", "video", "audio", "data" and "text". It is optional and defaults to "audio+video".
  • alternate: Indicate if this representation is an alternate version. Fixed value to true. It is optional.
  • label: The description for alternative track. It is required only if the alternate attribute is present.
  • lang: The language code for alternative track (should be ISO 639-1 or ISO 639-3 codes). It is required only if the alternate attribute is present.
  • href: The URL of an external F4M file. It is optional (only one of @url and @href should be present). If the URL is non-absolute, then it must be relative to the baseURL (if specified) or the manifest file itself (if no baseURL is present in the manifest)
    • Introduced in F4M 2.0
Notes:
  • The stream-level manifest indicated by the @href attribute should only contain one <media> element
  • When working with a multi-level manifest, the following attributes are read only from the set-level manifest and ignored in the stream-level manifest:
    • bitrate, streamId, width, height, type, alternate, label, lang
  • When working with a multi-level manifest, the following attributes are read only from the stream-level manifest:
    • drmAdditionalHeaderId, bootstrapInfoId
  • The stream-level manifest's <media> element should link directly to the media file via the @url attribute. It is not allowed to link to another manifest.
  • The set-level manifest should only contain <media> elements with @href.


<moov> (deprecated with F4M 2.0)

Note that the <moov> element was not implemented for the 1.0 version of the HTTP Streaming File Packager.
The <moov> element represents the Movie Box, or "moov" atom, for one representation of the piece of media. It contains a BASE64 encoded representation of the Movie Box for the given representation. It is an optional child element of <media>.
Deprecated starting with F4M 2.0


<metadata>

The <metadata> element represents the stream metadata (i.e. the metadata that is typically dispatched in the onMetaData event) for one representation of the piece of media. It contains a BASE64 encoded representation of the stream metadata for the given representation. It is an optional child element of <media>.


<xmpMetadata> (deprecated with F4M 2.0)

Note that the <xmpMetadata> element was not implemented for the 1.0 version of the HTTP Streaming File Packager.
The <xmpMetadata> element represents the XMP metadata for one representation of the piece of media. It contains a BASE64 encoded representation of the XMP metadata for the given representation. It is an optional child element of <media>.
Deprecated starting with F4M 2.0




 

Wednesday, June 20, 2012

Microsoft Windows 8 in List Of Removed Features


Windows 8 is the successor to Windows 7 in Microsoft's Windows line of operating systems. Several features which were present in Windows 7 are no longer present in Windows 8.

Windows Explorer                                                                                                                     
The command bar is no longer present, and has been replaced by a new Ribbon UI. 

Media Features                                                                                                                          
Windows Media Center will no longer be included in any version of Windows, but will be available as an add-on.
Windows Media Player will no longer provide DVD playback functionality, although DVDs will still be playable in Windows Media Center if it is purchased separately. 

Shell                                                                                                                                          
The Start button has been removed, although it is still accessible as a hotspot in the lower left corner of the screen, and on the charms menu. 
The Start menu has been removed in favour of a full screen interface called the Start screen. 
The Show Desktop button is no longer visible on the taskbar, but can still be activated by clicking in the lower right corner where it was previously located. 
The Aero user interface which has been featured in Windows Vista and Windows 7 has been removed from Windows 8. 

Other                                                                                                                                         
Previous Versions has been replaced by a somewhat similar feature called File History. 
The Blue Screen of Death no longer shows technical information about the error that caused the computer to stop.

Tuesday, June 19, 2012

Microsoft Windows 8




Windows 8 is the upcoming version of Microsoft Windows that follows Windows 7. It features a new Metro-style interface that is designed for touchscreen, mouse, keyboard, and pen input. It also adds support for the ARM processor architecture in addition to the previously supported x86 microprocessors from Intel and AMD. Its server counterpart is codenamed Windows Server 8. A release date for the finished version of Windows 8 has not yet been announced. The most recent pre-release version is the Consumer Preview, which was released on February 29, 2012.



Development


Early announcements



In January 2011, at the Consumer Electronics Show (CES), Microsoft announced that Windows 8 would be adding support for ARM microprocessors in addition to the x86 microprocessors from Intel, AMD and VIA.

On June 1, 2011, Microsoft officially unveiled Windows 8 and some of its new features at the Taipei Computex 2011 in Taipei (Taiwan) by Mike Angiulo and at the D9 conference in California (United States) by Julie Larson-Green and Microsoft's Windows President Steven Sinofsky. The main feature that was shown was the new user interface.

On August 15, 2011, Microsoft opened a new blog called "Building Windows 8" for users and developers.



Milestone leaks



  1. A 32-bit Milestone 1 build, build 7850, with a build date of September 22, 2010, was leaked to BetaArchive, an online beta community, and to P2P/torrent sharing networks as well on April 12, 2011. Milestone 1 includes a ribbon interface for Windows Explorer, a PDF reader called Modern Reader, an updated task manager called Modern Task Manager, and native ISO image mounting.
  2. A 32-bit Milestone 2 build, build 7927, was leaked to The Pirate Bay on August 29, 2011 right after many pictures leaked on BetaArchive the day before. Features of this build are mostly the same as build 7955.
  3. A 32-bit Milestone 2 build, build 7955, was leaked to BetaArchive on April 25, 2011. Features of this build included a new pattern login and a new file system known as Protogon, which is now known as ReFS and only included in server versions.
  4. A Milestone 3 build, build 7971, was released to close partners of Microsoft on March 29, 2011 but was kept under heavy security. However, a few screenshots were leaked. The "Windows 7 Basic" theme now uses similar metrics to the Aero style, but maintains its non-hardware accelerated design, and also supports taskbar thumbnails. The boxes that encase the "close, maximize, and minimize" buttons have been removed, leaving just the signs.
  5. A 64-bit Milestone 3 build, build 7989, leaked to Win7vista on June 18, 2011 after screenshots were revealed on MDL (My Digital Life) forums. An SMS feature, a new virtual keyboard, a new bootscreen, transparency in the basic theme, geo-location services, Hyper-V 3.0, and PowerShell 3.0 were revealed in this build.

Developer preview and BUILD conference


Microsoft unveiled new Windows 8 features and improvements on September 13, 2011, day one of the BUILD developer conference. Microsoft also released a developer preview (build 8102) of Windows 8 for the developer community to download and start working with. This developer preview includes tools for building "metro style apps", such as Microsoft Windows SDK for Metro style applications, Microsoft Visual Studio 11 Express for Windows 8 Developer Preview and Microsoft Expression Blend 5 developer preview. According to Microsoft, there were more than 500,000 downloads of the developer preview within the first 12 hours of its release. The Developer Preview introduced the Start screen. The Start button opens the Start screen instead of the Start menu in this build.
On 16 February 2012, Microsoft postponed the expiration date of the developer preview. Originally set to expire on 11 March 2012, this release is now set to expire on 15 January 2013.


Consumer Preview

On 29 February 2012, Microsoft released Windows 8 Consumer Preview, the beta version of Windows 8, build 8250. For the first time since Windows 95, the Start button is no longer available on the taskbar, though the Start screen is still triggered by clicking the bottom-left corner of the screen and by clicking Start in the Charm. Windows president Steven Sinofsky said more than 100,000 changes had been made since the developer version went public. In the first day of its release, Windows 8 Consumer Preview was downloaded over one million times.




Windows 8 New features


Metro UI



Windows 8 will employ a new user interface based on Microsoft's Metro design language. The Metro environment will feature a new tile-based Start screen similar to the Windows Phone operating system. Each tile will represent an application, and will be able to display relevant information such as the number of unread messages on the tile for an e-mail app or the current temperature on a weather application. Metro-style applications run in full-screen, and are able to share information between each other using "contracts". They will be available through the new Windows Store. Metro-style apps are developed with the new Windows Runtime platform using various programming languages, including C++, Visual Basic, C#, and HTML/JavaScript.

The traditional desktop environment, for running desktop applications, is treated as a Metro app. The Start button has been removed from the taskbar in favor of a Start button on the new charm bar, as well as a hotspot in the bottom-left corner. Both open the new Start screen, which replaces the Start menu.



Other features



  1. Internet Explorer 10 will be included both as a Metro-style app, which will not support plugins or ActiveX components, and a desktop version which resembles Internet Explorer 9 and will maintain legacy plug-in support.
  2. Ability to sign in using a Windows Live ID. This will allow for the user's profile and setting to be synchronized over the internet and accessible from other computers running Windows 8, as well as integration with SkyDrive.
  3. Two new authentication methods: picture password, which allows users to log in by drawing three gestures in different places on a picture, and PIN log in, which allows users to authenticate using a four digit pin.
  4. Windows Explorer will include a ribbon toolbar, and have its file operation progress dialog updated to provide more detailed statistics, the ability to pause file transfers, and improvements in the ability to manage conflicts when copying files.
  5. Hybrid Boot will use "advanced hibernation functionality" on shutdown to allow faster startup times.
  6. Windows To Go will allow Windows 8 to be run from a bootable USB device (such as a flash drive).
  7. Two new recovery functions are included, Refresh and Reset. Refresh restores all Windows files to their original state while keeping settings, files, and Metro-Style apps, while reset takes the computer back to factory default condition.
  8. Native USB 3.0 support
  9. A new lock screen

Secure boot



Secure boot is a controversial UEFI-based feature to "prevent unauthorized firmware, operating systems, or UEFI drivers from running at boot time".

Microsoft will require new PCs to have the UEFI secure boot feature enabled by default to be given Windows 8 certification. Microsoft requires that manufacturers must offer the ability to turn off the secure boot feature on x86 hardware, but they must not offer such an option on ARM hardware.



Effects on the use of other operating systems

In September 2011, Matthew Garrett, a Red Hat developer, raised the possible risk of Microsoft locking out alternative systems, leading to media coverage. Microsoft addressed the issue in a blog post, stating "the customer is in control of their PC. Microsoft’s philosophy is to provide customers with the best experience first, and allow them to make decisions themselves" which was largely interpreted that they would allow OEM manufacturers to choose whether to allow users to disable the feature or not, however in January 2012, the company reversed their position and revealed ARM manufacturers must not allow Secure Boot to be disabled, causing concerns, particularly in the Linux community.
Canonical and Red Hat, two of the biggest companies involved with Linux, released a whitepaper regarding the issue, recommending that "PCs include a User Interface to easily enable or disable Secure Boot".
In reaction to the situation, Adrian Kingsley-Hughes, writing for ZDNet, suggested Microsoft is locking out other systems for vendor lock-in reasons, among other hypotheses. Glyn Moody Writing for PCWorld, noted "The concern here, of course, is that Microsoft's approach seems to be making it hard if not impossible to install GNU/Linux on hardware systems certified for Windows 8." Thom Holwerda, writing for OSnews, a website dedicated to alternative operating systems, argued "This effectively makes it impossible to boot anything but Windows 8 on these ARM devices" adding that secure boot has the effect of "rendering these devices entirely useless as general computing devices" The FSF also criticized the decision, saying "Microsoft has pushed its power grab even further on ARM computers".



New Feature Of Windows 8

Windows 8 is expected to include several new features, including native USB 3.0 support, Microsoft Account Integration, the Windows Store, the ability to run from USB Flash drives with Windows To Go, and easier system restore options, among others.

Development platform                                                                                                               

Language and standards support

Windows 8 has a new developer platform according to Microsoft Vice President Julie Larson-Green, who called it "our new developer platform, which is...based on HTML5 and JavaScript."  The new applications developed for Windows 8 could be easily ported as aMetro-style application and developers could use any existing Windows Application Development language to port applications as a Metro-style app (by adding minimal amount of code). This is possible because of the architectural changes done to the Windows platform. All applications developed – whether using C#, MFC, or HTML5/JavaScript – will translate into the WinRT APIs, which sits directly above the Windows kernel. The new applications run in full-screen, but two of them can be displayed side-by-side using "Snap". Examples of new applications that were demoed include a Twitter client, a weather application, a stock-tracking application, an RSSnews feeder, and a virtual piano.
The new platform is primarily designed for 16:9 screen resolutions, with 1366×768 and larger screens able to display two Windows 8 "Metro-style" applications side-by-side by "snapping". 1024×768 screens can display one application in full-screen, and 1024×600 screens can only use the traditional desktop applications. 
Windows 8 also introduces APIs to support near field communication (NFC) on Windows 8 devices, allowing functionality like launching URLs/applications and sharing of information between devices via NFC. 

Windows Store
Microsoft has confirmed the introduction of a Windows Store on Windows 8, similar to the Ubuntu Software Center, and Mac App Store, that allows developers to publish their Metro-style applications on Windows 8 devices. The Windows Store will also allow developers to publish their Win32 or "traditional desktop" applications; however, the store will only provide links to such applications on their websites. Ted Dworkin, a Partner Director of Program Management on the Windows Web Services team said that the Windows Store will be the only means of distributing Metro-style apps to users to allow Microsoft to scan apps for security flaws and malware. 

Shell and user interface                                                                                  


Metro-style user interface

Windows 8 features an extensively redesigned "Metro-style" user interface, optimized for touchscreens as well as mice and keyboards. A new "Start screen", similar to the one in Windows Phone 7, includes live application tiles. The start screen replaces the Start menu, being triggered by the Windows key and Start button, and is also the first screen shown on start up. The user can go to the regular desktop, which is treated as a Metro app with its own "Desktop" tile on the Start screen. Starting a traditional desktop-based application also switches to the desktop. The Start screen also displays the user's name and picture.


Metro applications run in full-screen, or two can be displayed on higher resolutions by snapping one to the side of the screen.
Windows 8 features a new login/lock screen that shows the date and time and notifications, along with a customizable background.


File:Windows 8 on two monitors.png

New logon methodsPIN
Instead of typing a password, users can create a four-digit PIN for easy logon to the computer. This feature is optimized for tablet PCs, but it is also available to desktop and laptop users.

Picture Password
Another authentication method, the picture password, allows users to use a set of gestures in the selected picture to login. These gestures will take into account the shape, the start and end points, as well as the directionality. However, the shapes and gestures are limited to tapping and tracing a line or circle. Microsoft found that limiting the gestures improved the speed of sign-ins by three times compared to allowing freeform methods. Wrong gestures will always deny a login, and it will lock out the PC after five unsuccessful attempts, until a text password is provided. 

Taskbar
Windows 8 provides a configurable taskbar in the traditional Windows desktop that spans multiple monitors. This spanning can be turned on and off and is used to display the minimized windows. Similarly, Windows 8 provides the user with the ability to show different wallpapers on different monitors, or the same wallpaper stretched across multiple monitors. The Start button has been removed, but the user can still click in the bottom left corner of the screen to open the Start screen.

Windows Explorer
Similar to Microsoft Office 2010 and Windows Live Essentials, the re-designed Windows Explorer will use the Ribbon interface to enhance discoverability of commands and bring relevant commands to users depending on their file selection. For example, selecting photos in a folder brings up tools to rotate the photos and to start a slide show. The interface was selected to bring forward the most commonly used commands for easy access.
Additionally, Windows Explorer features a redesigned preview pane that takes advantage of widescreen layouts and the "Up" button removed from Windows Explorer in Windows Vista and Windows 7 is now included in the interface.
Windows Explorer will feature a new user interface for copying and moving files, offering both a simplified interface and an advanced interface for users to monitor the speed of the operations. Users now view all simultaneous file operations in one consolidated window, and can pause file operations in progress. A new interface has also been introduced for managing file name collisions in a file operation, allowing users to easily control which conflicting files are copied.
Windows Explorer can now mount ISO, IMG, and VHD files as virtual drives through simple right-clicks or the Explorer toolbar as compared to Windows 7 where VHDs could be mounted in a less-discoverable way, via the Disk Management section in the Computer Management MMC, or by using diskpart from the command line. 

Task Manager
Windows 8 includes an overhauled version of Windows Task Manager where the following changes were made.


  1. The tabs are hidden by default. This view only shows applications
  2. Resource utilization in the Processes tab is shown with various shades of yellow, with darker color representing heavier use.
  3. The Performance tab is split into CPU, memory, disk, Ethernet, and wireless network (if applicable) sections. There are overall graphs for each, and clicking on one reaches details for that particular resource
  4. The CPU tab no longer displays individual graphs for every logical processor on the system by default. It now can show data for each NUMA node
  5. The CPU tab now displays simple percentages on heat-mapping tiles to display utilization for systems with many (64 or more, up to 640) logical processors.
  6. The color used for these heat maps is blue, with darker color again indicating heavier utilization
  7. Hovering the cursor over any logical processor's data now shows the NUMA node of that processor and its ID
  8. A new Startup tab has been added that lists startup applications
  9. The Processes tab now lists application names, application status, and overall usage data for CPU, memory, hard disk, and network resources for each process
  10. The new task manager recognizes when a WinRT application is in "Suspended" status
  11. The normal process information found in the older Task Manager can be found in the new Details tab



New easy restore                                                                                                                                      
The Developer Preview comes with two new recovery functions, namely Refresh and Reset, both of which make a complete restore easier than a re-installation. The former keeps all settings and files of the user intact and only reverses all changes to Windows files to its original state and removes all installed programs and apps. The latter deletes all files and effectively re-installs Windows, but without any additional user input such as agreeing to license agreements or selecting a hard disk required. After a reset completes, the user will be asked for the product key and will then proceed to account creation. 

Family Safety                                                                                                                                            
Family Safety will allow Administrators to monitor and restrict user activity via web filtering, application restriction, and computer usage time limits. 

Microsoft account integration                                                                                                                  
User accounts do not have to be local-only anymore, but can be linked up to one's Microsoft account. This has the advantage that users will not lose their settings and files, as they move from their home computer to their work laptop or to any other computer also using Windows 8, and signing in via their Microsoft account. 

Windows To Go                                                                                                                                         
Windows To Go is an upcoming Windows 8 Enterprise feature that will allow users to create a bootable USB Flash drive (usually called a Live USB) with Windows 8 in it, including the user's programs, settings, and files. It is planned to work on both USB 2.0 and USB 3.0, and both on legacy BIOS and UEFI firmware. In addition to that, the system will pause if the USB drive is removed, and will resume operation if the drive is returned within 60 seconds of removal. 

Storage Spaces                                                                                                                                        
Storage Spaces is a storage virtualization technology which succeeds Logical Disk Manager and allows the organization of physical disks into logical volumes similar to Logical Volume Manager (Linux), RAID1 or RAID5, but on a higher level. 
A storage space will behave like a physical disk to the user, with thin provisioning of available disk space. The spaces are organized within a storage pool, i.e. a collection of physical disks, which can span multiple disks of different sizes and different interfaces (USB, SATA, SAS). The process of adding new disks or replacing failed or older disks is fully automatic, but can be controlled withPowerShell commands. The same storage pool can host multiple storage spaces. Storage Spaces have built-in resiliency from disk failures, which is achieved by either mirroring or striping with parity across the physical disks. Each storage pool on the ReFSfilesystem is limited to 4 PB (4096 TB), but there are no limits on the total number of storage pools or the number of storage spaces within a pool.

Device support                                                                                                                                          

USB 3.0
Windows 8 will have built-in support of USB 3.0 for better power management and longer battery life. 

New architecture support                                                                                                                        
Windows 8 will support System on a Chip (SoC) architectures, including ARM-based systems. On the x86 architecture, Intel Corporation and AMD continue their work on low-power SoC designs that support Windows. 
Other features and changes                                                                                                                     

Activation
Mike Angiulo confirmed at Computex 2011 that Windows 8 will use OEM Activation 3.0 instead of OEM Activation 2.1 (used by Windows 7), which supposedly makes it less prone to cracks.

Virtualization
Windows 8 will also include Microsoft's Hyper-V virtualization software. Previously only offered in Windows Server, Hyper-V will now be available in client versions of Windows for the first time. The system requirements for Hyper-V are a 64-bit processor, a 64-bit version of Windows 8, and a minimum of 4 GB of RAM. Hyper-V also requires a 64-bit system that has Second Level Address Translation (SLAT), a feature that helps with memory management. Many of Intel's and AMD's recent processors support this feature, including many of Intel's i-Series processors (with Extended Page Table) and AMD's 10h family processors.

Shorter boot times
On September 8, 2011, Microsoft announced that Windows 8 has short boot times, because it saves the kernel's memory to the hard disk on shutdown (similar to the existing hibernate option) and reloads it on start up.

Boot security
Windows 8 will support the UEFI secure boot feature. This will enable a new foundation for an architecturally neutral approach to platform and firmware security. It is based on a public key infrastructure (PKI) process to validate firmware images before they are allowed to execute. A secure boot helps reduce the risk of boot loader attacks.

New Virtual Hard Disk format
Windows 8 offers a new VHD format, called .vhdx, which supports up to 16 terabytes of storage. It reportedly has built-in resiliency as well as protection from corruption that can happen during power failures. It also helps prevent performance degradation on some large-sector physical disks.

Windows Display Driver Model                                                                                                                
Windows 8 includes WDDM 1.2 and DirectX Graphics Infrastructure (DXGI) 1.2. New features were first previewed at the Windows BUILD conference and include performance improvements as well as support for stereoscopic 3D rendering and video playback.
Other major features include preemptive multitasking with finer granularity (DMA buffer, primitive, triangle, pixel, or instruction-level), reduced memory footprint, improved resource sharing, and faster timeout detection and recovery. 16-bit color surface formats (565, 5551, 4444) are mandatory in Windows 8, and Direct3D 11 Video supports YUV 4:4:4/4:2:2/4:2:0/4:1:1 video formats with 8, 10, and 16-bit precision, as well as 4 and 8-bit palletized formats.