Contact emails
Specifications
[1] http://www.w3.org/TR/2013/REC-ttml1-20130924/ (W3C REC - 2nd Edition)[2] http://www.w3.org/TR/2010/REC-ttaf1-dfxp-20101118/ (W3C REC - 1st Edition)
[3] https://dvcs.w3.org/hg/ttml/raw-file/default/ttml1-api/Overview.html
[4] https://dvcs.w3.org/hg/ttml/raw-file/default/ttml2-api/Overview.html
Summary
Add support for <track> element to load and render caption/subtitle data using TTML [1][2][3][4].
Motivation
(1) In response to the "Twenty-First Century Communications and Video Accessibility Act of 2010", published as US 111th Congress House Resolution 301 [3], the FCC published [4] a Final Rule in the Federal Register, Volume 77, Number 62, Page 19508, March 30, 2012, regarding 47 CFR Parts 15 and 79 as follows:
"V. Technical Standards for IP–Delivered Video Programming 124. For the reasons set forth below, we adopt the Society of Motion Picture and Television Engineers (‘‘SMPTE’’) Timed Text format (SMPTE ST 2052–1:2010: ‘‘Timed Text Format (SMPTE–TT)’’ 2010) (‘‘SMPTE–TT’’) as a safe harbor interchange and delivery format."
[5] http://www.gpo.gov/fdsys/pkg/BILLS-111hr3101pcs/pdf/BILLS-111hr3101pcs.pdf
[6] http://www.gpo.gov/fdsys/pkg/FR-2012-03-30/pdf/2012-7247.pdf
[7] https://www.smpte.org/sites/default/files/st2052-1-2010.pdf (SMPTE ST2052-1:2010)
(2) The European Broadcasting Union (EBU) has adopted [8] TTML, in the form of EBU-TT [9], as the follow-on format to the popular STL format [10]. In turn, the HbbTV Association [11] has adopted EBU-TT in its new HbbTV 2.0 specification (under development).
[9] http://tech.ebu.ch/docs/tech/tech3350.pdf?vers=1.0
[10] http://tech.ebu.ch/docs/tech/tech3264.pdf
[12] http://en.wikipedia.org/wiki/Hybrid_Broadcast_Broadband_TV
(3) According to an active member in the DASH Industry Forum [13]:
"TTML is specified everywhere in DASH, has a complete encoding, delivery, and decoding (HRM) spec and conformance tests in DECE (UltraViolet), qualifies as the “safe harbor” format in FCC regs, and the storage format for DASH delivery is now specified as MPEG-4 Part 30 (ISO/IEC 14496-30) [14], and Subtitles added as a new track type in the ISO Base Media File Format (MPEG-4 Part 12) [15] to make TTML tracks an equal citizen to audio and video."
[13] http://dashif.org
[15] http://standards.iso.org/ittf/PubliclyAvailableStandards/c061988_ISO_IEC_14496-12_2012.zip
(4) I have contacted a number of broadcasters and commercial television providers who deliver A/V content over the Web, including BBC, Comcast, Cox, Netflix, and Time Warner, and was told that TTML support is a strong requirement for browsers, in order to satisfy accessibility regulations and requirements and interoperate with their caption/subtitle content catalogs.
(5) Open Issues in Blink/Chrome include:
https://code.google.com/p/chromium/issues/detail?id=255572
https://code.google.com/p/chromium/issues/detail?id=270413
A comment on the latter [16] from Google TV folks states:
"This is also requested by one of our premium Android TV/Google TV device maker partners, could you consider raising the priority of this?"
[16] https://code.google.com/p/chromium/issues/detail?id=270413#c1
Compatibility Risk
As this is a new feature for Blink, there is no compatibility risk with existing Blink functionality. At present, one other browser, IE10-11, supports TTML [6][7]. It is anticipated that other browsers will add support for TTML as well, at least in large part based on customer and regulatory requirements.
Ongoing technical constraints
None
Will this feature be supported on all five Blink platforms (Windows, Mac, Linux, Chrome OS and Android)?
Yes
OWP launch tracking bug?
To be created.
Link to entry on the feature dashboard
To be created.
Requesting approval to ship?
No. This functionality will first employ a compile time flag until adequate experience and testing permits introduction of a runtime flag. After an acceptable period of use and verification, a subsequent Intent to Ship will be proposed.
Requesting approval to ship?
No. This functionality will first employ a compile time flag until adequate experience and testing permits introduction of a runtime flag. After an acceptable period of use and verification, a subsequent Intent to Ship will be proposed.
This feature appears to have a dependency on XML. Generally speaking, we're not eager to take more dependencies on XML and are looking to remove our existing XML dependencies. Obviously, removing XML support from Blink is a long term project and one we might never finish completely, but a feature that adds more XML dependencies is going to meet with some resistance.
On Sat, Nov 23, 2013 at 10:09 AM, Adam Barth <aba...@chromium.org> wrote:
This feature appears to have a dependency on XML. Generally speaking, we're not eager to take more dependencies on XML and are looking to remove our existing XML dependencies. Obviously, removing XML support from Blink is a long term project and one we might never finish completely, but a feature that adds more XML dependencies is going to meet with some resistance.I expect to make use of the same mechanisms as the current SVG implementation.
My personal opnion is that that Priority of Constituencies [1] applies, which you appear to support [2]. In the case of TTML, failure to support reduces accessibility for the end user, and increases costs for the content author (translation with potential loss of information, less interoperability, etc).
On Fri, Nov 22, 2013 at 6:17 PM, Glenn Adams <gl...@chromium.org> wrote:
On Sat, Nov 23, 2013 at 10:09 AM, Adam Barth <aba...@chromium.org> wrote:
This feature appears to have a dependency on XML. Generally speaking, we're not eager to take more dependencies on XML and are looking to remove our existing XML dependencies. Obviously, removing XML support from Blink is a long term project and one we might never finish completely, but a feature that adds more XML dependencies is going to meet with some resistance.I expect to make use of the same mechanisms as the current SVG implementation.SVG is an example of where we've been experimenting with removing the XML dependency:
It's true that we currently use XML for a number of features, but I'm not sure we want to add more features that depend on XML.
On Sat, Nov 23, 2013 at 1:27 PM, Eric Seidel <ese...@chromium.org> wrote:
I guess I agree with Adam. XML is bad news bears. It complicates our
engine dramatically, the integration into our engine is riddled with
bugs, and has extremely low usage (as a rendered format -- I expect
the XHR usage is non-zero). XSL is even worse. Both technologies
have lost on the web (at least as client-side display formats) and we
shouldn't be adding new usage of such.
I'm afraid this is an incorrect interpretation of the spec. There is no concrete dependency on XML, XSLT, or XSL-FO as far as either parsing or formatting is concerned, e.g., see [1][2]:
"A TTML Content Processor conforms to this specification if the following generic processor criteria are satisfied:
The processor provides at least one mechanism for notionally instantiating a Reduced XML Infoset representation of a conformant Document Instance."
"In this section, the use of XSL FO is intended to be conceptual only, employed solely for the purpose of defining the normative presentation semantics of TTML. An actual implementation of this algorithm is not required to create or process XSL-FO representations. In particular, it is possible to implement these semantics using alternative presentation models, such as Cascading Style Sheets (CSS)."The syntax and validity of TTML is defined in terms of a Reduced Infoset [3], which can be constructed from either an XML based parser or a parser like the current Blink HTML parser. In TTML1, the formatting semantics are described using XML-FO terminology but will in fact be expressed using HTML/CSS in this work. In TTML2 (work in progress), a formal definition of the HTML/CSS mapping will be specified. An early draft of one possible mapping can be found here [4].The bottom line is that there is no impediment to using the HTML parser and no impediment to using the current HTML/CSS renderers. My implementation plan was to use the XML parser code used by SVG as a first step, but as I pointed out, this can be readily converted to using the HTML parser as an optimization.So there is no "new usage of such" [XML or XSL or XSL-FO] implied (if one allows use of the existing XML parser as an interim step in implementation, with a follow-on to convert to the HTML Parser if the experiment with SVG proves successful).
Reply to all this time.If my response below is true, and I assure you it is because I wrote the spec, then wouldn't it be reasonable to have the implementation go forward and then evaluate the results when I get to the point of proposing an Intent to Ship?
If my implementation introduces the dependencies you worry about, then it would be fair to point that out as a reason for not shipping ... but it doesn't seem particularly reasonable to not implement when you are speculating about eventual dependencies, especially dependencies that are not logically implied by the specification.
There are other reasons to allow an implementation to go forward:(1) it establishes prior art in an open source forum, from which Google and others can draw upon even if it doesn't eventually pass muster for shipping enabled;(2) it removes speculation about what is or isn't required to support TTML, about what complexity it introduces (or not), etc.;(3) it could be moved from core into a chrome module;(4) it encourages ongoing experimentation, although in this case TTML is an established REC, and not a draft that entails experimenting with an unstable specification;
On Sat, Nov 23, 2013 at 3:13 PM, Glenn Adams <gl...@chromium.org> wrote:
On Sat, Nov 23, 2013 at 1:27 PM, Eric Seidel <ese...@chromium.org> wrote:
I guess I agree with Adam. XML is bad news bears. It complicates our
engine dramatically, the integration into our engine is riddled with
bugs, and has extremely low usage (as a rendered format -- I expect
the XHR usage is non-zero). XSL is even worse. Both technologies
have lost on the web (at least as client-side display formats) and we
shouldn't be adding new usage of such.I'm afraid this is an incorrect interpretation of the spec. There is no concrete dependency on XML, XSLT, or XSL-FO as far as either parsing or formatting is concerned, e.g., see [1][2]:
"A TTML Content Processor conforms to this specification if the following generic processor criteria are satisfied:
The processor provides at least one mechanism for notionally instantiating a Reduced XML Infoset representation of a conformant Document Instance."
"In this section, the use of XSL FO is intended to be conceptual only, employed solely for the purpose of defining the normative presentation semantics of TTML. An actual implementation of this algorithm is not required to create or process XSL-FO representations. In particular, it is possible to implement these semantics using alternative presentation models, such as Cascading Style Sheets (CSS)."The syntax and validity of TTML is defined in terms of a Reduced Infoset [3], which can be constructed from either an XML based parser or a parser like the current Blink HTML parser. In TTML1, the formatting semantics are described using XML-FO terminology but will in fact be expressed using HTML/CSS in this work. In TTML2 (work in progress), a formal definition of the HTML/CSS mapping will be specified. An early draft of one possible mapping can be found here [4].The bottom line is that there is no impediment to using the HTML parser and no impediment to using the current HTML/CSS renderers. My implementation plan was to use the XML parser code used by SVG as a first step, but as I pointed out, this can be readily converted to using the HTML parser as an optimization.
So there is no "new usage of such" [XML or XSL or XSL-FO] implied (if one allows use of the existing XML parser as an interim step in implementation, with a follow-on to convert to the HTML Parser if the experiment with SVG proves successful).
So there is no "new usage of such" [XML or XSL or XSL-FO] implied (if one allows use of the existing XML parser as an interim step in implementation, with a follow-on to convert to the HTML Parser if the experiment with SVG proves successful).You're welcome to take that approach in your branch, but we are not going to accept an implementation of TTML into trunk at this time.
XML namespaces are just attributes, and can be processed at the point of application usage. I have to wonder how your SVG experiment will handle them.
So there is no "new usage of such" [XML or XSL or XSL-FO] implied (if one allows use of the existing XML parser as an interim step in implementation, with a follow-on to convert to the HTML Parser if the experiment with SVG proves successful).You're welcome to take that approach in your branch, but we are not going to accept an implementation of TTML into trunk at this time.I am left with the impression that there is no distinction between Intent to Implement and Intent to Ship. You appear to be pre-judging the proposed work using criteria that applies to the latter.
I guess the priority of constituencies also has little relevance in Blink after all, since it appears my citations of user and content author needs are being dismissed as irrelevant.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
I'm sorry for belaboring this, but I'm trying to determine what your response is based upon. You say that the Intent to Implement criteria is based on impact to codebase. So I'm attempting to understand what that impact is. However, you appear to be saying "no for an answer" based upon other criteria that you aren't explaining. Are you suggesting it isn't reasonable for me to ask about that?
Brett
On Sat, Nov 23, 2013 at 6:11 PM, Glenn Adams <gl...@skynav.com> wrote:
I'm sorry for belaboring this, but I'm trying to determine what your response is based upon. You say that the Intent to Implement criteria is based on impact to codebase. So I'm attempting to understand what that impact is. However, you appear to be saying "no for an answer" based upon other criteria that you aren't explaining. Are you suggesting it isn't reasonable for me to ask about that?TTML has a number of serious problems:
1) TTML is based on XML, specifically upon XML namespaces. Developers consistently have trouble authoring content that uses XML namespaces correctly. Obviously not everyone agrees that XML namespaces make poor APIs, but developer have clearly voted with their feet. The only browser feature I'm aware of that uses XML namespaces that has significant usage is SVG, and even in that case 88.5% of SVG content that Chrome renders uses SVG-in-HTML, which avoids making authors deal with namespaces.
As I've written upthread, we'd like to reduce our dependencies on XML. For example, rather than parse 11.5% of SVG content with the XML parser and 88.5% with the HTML parser, I would like to see us parse 100% of SVG content with the HTML parser. Similarly, I'd like to see us move XSLT support into an optional component that can be installed at runtime and that runs on top of the platform rather than requiring the deep integration it requires today. These are both long term projects, but introducing a new XML dependency is the wrong direction for the codebase.
2) TTML overlaps with WebVTT, which is already widely implemented [1].
I'm sure that TTML supports more use cases and/or does a better job at supporting some use cases than WebVTT, but I would much rather see us evolve our WebVTT support towards supporting those use cases than see us add a largely redundant feature.
Unlike TTML, WebVTT takes a more modern approach to designing a web platform API and better integrates with HTML. I understand there are some standards politics involved, but frankly I don't care about that stuff. I care about ending up with the best technology in the long run, regardless of whether the spec authors aren't popular personalities in the W3C.
3) Although not a problem unto itself, it's red flag that WebVTT has reached REC without any significant browser implementations.
Maybe there are implementations I'm not aware of?
I looked at caniuse.com [2] and Wikipedia [3], neither of which mentioned any implementations. Compare those references with [4] and [5], which both list a number of significant implementations.
In summary, we're not interested in implementing TTML.
To the extent that WebVTT is insufficient for important use cases, I would much prefer to see us evolve WebVTT in concert with other browser vendors.
If you're still excited about TTML, you're welcome to implement the feature in your own private branch or you're welcome to convince other browser vendors to implement and ship TTML.
I realize that you're likely to be unhappy with this decision and that we might well lose you as a contributor to this project as a result. I genuinely hope that doesn't happen and that you'll continue to contribute to Blink despite our lack of enthusiasm for TTML.
I guess my only option, if the team's decision remains negative, is to proceed with implementing and post a CL containing that implementation that demonstrates there is no negative impact on the codebase.
Using "we" in discussions like this is very ambiguous. It would be a lot clearer if we would only do that when clarifying the context under which such a consensus was created: meeting notes, discussion among API owners, and so on. Reading this discussion it very much feels like two individuals disagreeing, especially now that Glenn proposed to implement TTML based on the HTML parser.It has to be noted that the Internet Explorer implementation of TTML[1] is very incomplete at best, and should thus not be considered following Blink's compatibility guidelines unless you plan to implement the exact same subset of TTML. Furthermore, Mozilla's sta