forked from w3c/web-roadmaps
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrendering.html
85 lines (81 loc) · 9.97 KB
/
rendering.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Media Rendering</title>
</head>
<body>
<header>
<h1>Media Rendering</h1>
<p>Web browsers are available on billion of devices of different shapes and functions, providing as many targets for delivering media to users.</p>
</header>
<main>
<section class="featureset well-deployed">
<h2>Well-deployed technologies</h2>
<p>Few media-based services can usefully function without rendering audio or video content; the HTML5 specification provides widely deployed support for this essential feature. Video content can be rendered in any Web page via the <a data-feature="Video rendering" data-featureid="video"><code><video></code> element</a>.</p>
<div data-feature="Audio rendering">
<p>Likewise, audio content can be rendered in any Web page via the <a data-featureid="audio"><code><audio></code> element</a>.</p>
<p>Beyond the declarative approach enabled by the <code><audio></code> element, the <a data-featureid="webaudio">Web Audio API</a> provides a full-fledged audio processing API, which includes support for low-latency playback of audio content.</p>
</div>
<p data-feature="Rendering of captions"><a data-featureid="webvtt">WebVTT</a> is a file format for captions and subtitles. The specification is still a Working Draft, but the format is already supported at various levels among browsers, allowing to render text tracks through a <code><video></code> element. The <a data-featureid="ttml1">Timed Text Markup Language</a> (TTML) specification provides a richer language for describing timed text. It is used both as an interchange format among authoring systems and for delivery of subtitles and captions worldwide, in particular through profiles such as the <a data-featureid="ttml-imsc1">IMSC1 (Internet Media Subtitles and Captions) profile</a>. Some browsers may not support IMSC1 natively, but note Web applications can still take advantage of IMSC1 through libraries such as the <a href="https://github.com/sandflow/imscJS">imscJS polyfill library</a>, which is a complete implementation of the IMSC1 profile in JavaScript and renders IMSC1 documents to HTML5.</p>
<p data-feature="Rendering of protected media">For the distribution of media whose content needs specific protection from copy, <a data-featureid="eme">Encrypted Media Extensions</a> (EME) enables Web applications to render encrypted media streams based on Content Decryption Modules (CDM).</p>
<p data-feature="Rendering of media fragments">Users often want to share a pointer to a specific position within the timeline of a video (or an audio) feed with friends on social networks, and expect media players to jump to the requested position right away. The <a data-featureid="media-frags">Media Fragments URI</a> specification defines a syntax for constructing media fragment URIs and explains how Web browsers can use this information to render the media fragment.</p>
</section>
<section class="featureset in-progress">
<h2>Specifications in progress</h2>
<div data-feature="Rendering of captions">
<p>The <a data-featureid="ttml">Timed Text Markup Language 2</a> (TTML2) specification extends TTML1 with advanced features for animations, styling, embedded content and metadata. The <a data-featureid="ttml-imsc11">IMSC1.1 profile</a>, backwards compatible with the IMSC1 profile, is based on TTML2.</p>
</div>
<div data-feature="Distributed rendering">
<p>As users increasingly own more and more connected devices, the need to get these devices to work together increases as well:</p>
<ul>
<li>The <a data-featureid="secondscreen">Presentation API</a> offers the possibility for a Web page to open and control a page located on another screen, opening the road for multi-screen Web applications.</li>
<li>The <a data-featureid="remote-playback">Remote Playback API</a> focuses more specifically on controling the rendering of media on a separate device.</li>
<li>The <a data-featureid="audio-output">Audio Output Devices API</a> offers similar functionality for audio streams, enabling a Web application to pick on which audio output devices a given sound should be played on.</li>
</ul>
</div>
<div data-feature="Rendering in different color spaces">
<p>Wide-gamut displays are becoming more and more common; The <a data-featureid="color-gamut">CSS Media Queries level 4</a> specification includes means to detect detect wide-gamut displays and adapt the rendering of the application to these improved color spaces.</p>
</div>
<div data-feature="Rendering in VR/AR headsets">
<p>The <a data-featureid="webxr">WebXR Device API</a> specification is a low-level API that allows applications to access and control head-mounted displays (HMD) using JavaScript and create compelling Virtual Reality (VR) / Augmented Reality (AR) experiences. It is a critical enabler to render 360° video content in Virtual Reality headsets.</p>
</div>
</section>
<section class="featureset exploratory-work">
<h2>Exploratory work</h2>
<div data-feature="Rendering of captions">
<p>Providing an alternative transcript to media content is a well-known best practice; a <a data-featureid="transcript">transcript extension</a> to HTML has been proposed to make an explicit link between media content and their transcript and thus facilitate discovery and consumption.</p>
</div>
<div data-feature="Distributed rendering">
<p>The Multi-Device Timing Community Group is exploring another aspect of multi-device media rendering: its <a data-featureid="timing">Timing Object</a> specification enables to keep video, audio and other data streams in close synchrony, across devices and independently of the network topology. This effort needs support from interested parties to progress.</p>
<p>The <a data-featureid="picture-in-picture">Picture-in-Picture</a> proposal would allow applications to initiate and control the rendering of a video in a separate miniature window that is viewable above all other activities.</p>
<p>To improve the interoperability of implementations of the Presentation API and Remote Playback API, in particular between the first and second screen, the Second Screen Community Group is discussing requirements for an <a data-featureid="secondscreen-openscreen">Open Screen Protocol</a>.</p>
</div>
<div data-feature="Rendering in different color spaces">
<p>To adapt to wide-gamut displays, all the graphical systems of the Web will need to adapt to these broader color spaces. <a data-featureid="css-color-space/icc-colors">CSS Colors Level 4</a> is proposing to define CSS colors in color spaces beyond the classical sRGB. Similarly, work on <a data-featureid="color-canvas">making canvas color-managed</a> should enhance the support for colors in HTML Canvas.</p>
</div>
</section>
<section>
<h2>Features not covered by ongoing work</h2>
<dl>
<dt>Color Management</dt>
<dd>To ensure the proper rendering of videos with high-dynamic range (HDR) and wide-gamut colors, content providers would need to determine whether the underlying device and browser have proper support for this. Similarly, content providers need a mechanism to match colors to mix HDR content and Standard Dynamic Range (SDR) content. The <a href="https://www.w3.org/community/colorweb/">Color on the Web Community Group</a> allows color experts from various fields to share ideas and discuss technical solutions to improve the state of Color on the Web.</dd>
<dt>Native support for 360° video rendering</dt>
<dd>While it is already possible to render 360° videos within a <code><video></code> element, integrated support for the rendering of 360° videos would allow to hide the complexity of the underlying adaptive streaming logic to applications, letting Web browsers optimize streaming and rendering on their own.</dd>
<dt>Extensions to Encrypted Media Extensions (EME)</dt>
<dd>Various extensions the <a data-featureid="eme">Encrypted Media Extensions</a> specification have been proposed, including defining a virtual environment in which CDMs can run to improve CDM portability across operating systems, support for continuous key rotation, mappings between EME and underlying DRM-specific security levels, and protection of media content when played in a VR headset. The <a href="http://www.w3.org/html/wg/">HTML Media Extensions</a> will maintain the specification not develop new features, which should be incubated in the <a href="https://www.w3.org/community/wicg/">Web Platform Incubator CG</a> (WICG).</dd>
</dl>
</section>
<section>
<h2>Discontinued features</h2>
<dl>
<dt>Network service discovery</dt>
<dd>The <a data-featureid="discovery">Network Service Discovery API</a> was to offer a lower-level approach to the establishment of multi-device operations, by providing integration with local network-based media renderers, such as those enabled by DLNA, UPnP, etc. This effort was discontinued out of privacy concerns and lack of interest from implementers. The current approach is to let the user agent handle network discovery under the hoods, as done in the <a data-featureid="secondscreen">Presentation API</a> and <a data-featureid="remote-playback">Remote Playback API</a>.</dd>
<dt>WebVR</dt>
<dd>Development of the <a data-featureid="webvr">WebVR</a> specification that allowed access and control of Virtual Reality (VR) devices, and which is supported in some browsers, has halted in favor of the <a data-featureid="webxr">WebXR Device API</a>, which extends the scope of the work to Augmented Reality (AR) devices.</dd>
</dl>
</section>
</main>
<script src="../js/generate.js"></script>
</body>
</html>