HbbTV - Hybrid brodcast-broadband TV
Seccions d'aquesta pàgina 8
01General#
- HbbTV
- HBB
- HbbTV Standard Overview (pdf) (HbbTV white paper) (mediatvcom)
- J. C. Dufourd, S. Thomas and C. Concolato, Recording and Delivery of HbbTV Applications, EuroITV, Lisbonne, Portugal, June 2011.
- HbbTV-infos (de)
- HbbTV reference chart (STB, connected TV, browsers, tools, authoring tools)
- NoTube and HbbTV
- HbbTV (Scoop.it)
- HbbTV and MPEG-DASH
- Enabling a true connected TV world (Thierry Fautier, Harmonic) (pdf)
- España se une al estándar HbbTV para la televisión conectada
- La industria española consensúa el HbbTv como estándar para la tv híbrida
- Android, DVB, HbbTV; a Perfect Match?
- Pere Vila, RTVE: "La TV Conectada, nuevas formas de ver la TV"
- HbbTV: the evolution of broadcast (CSI magazine) (May-June 2012)
- TDT Híbrida
- TV-Ring project (HbbTV testbeds)
- HbbTV Symposium Europe 2014
02Estàndards / Standards#
- Specification
(HbbTV.org)
- Based on:
- OIPF - OpenIPTV Forum
- Volume 2: Media Formats
- Volume
4: Protocols
- Volume
5: Declarative Application Environment (DAE)
- EIT schedule
- Volume
7: Content & Service Protection
- DVB-IPTV (TM-MIS)
- TS 102 809: "Signalling and carriage of interactive applications and services in hybrid broadcast/broadband environments"
- CEA-2014-A "Web-based Protocol and Framework for Remote User Interface on UPnP Networks and the Internet (Web4CE)":
- CE-HTML (wp)
- AV object
- W3C
- XHTML
- DOM2
- CSS2
- ISO/IEC
- TS 102 796: "Hybrid Broadcast Broadband TV"
- HbbTV 2.0: TS 102 796 v1.3.1 (pdf) (October 2015)
- DASH talks 2014 Tullemans EBU (pdf)
- HbbTV roadmap (9th October 2014)
- Technology
- DVB-CI+ 1.4
- companion screens: second screen sync using work done in DVB-CSS
- HTML5 profile replacing CE-HTML
- Annex E
- Refers to DVB-DASH (ETSI TS 103 285)
- HbbTV 1.5: TS 102 796 v1.2.1 (pdf) (November 2012)
- Referenced documents
- 7. Formats and protocols
- 7.2 Broadcast-specific formats and protocols
- 7.3 Broadband-specific formats and protocols
- 7.3.2.4 HTTP User-Agent header
- 8. Browser application environment
- Annex A (normative): OIPF DAE Speccification Profile
- Annex B (normative): Support for protected content delivery via broadband
- Annex C (informative): Support for analogue broadcasting networks
- Annex D (informative): Server root certificate selection policy
- Annex E (normative): Profiles of MPEG DASH
- E.1 Introduction (informative)
- based on "ISO Base media file
format live profile": "[...] supports both live and on-demand steaming
of ISOBMFF content."
- E.2 Requirements relating to the MPD
- E.2.1 Profile definition
urn:hbbtv:dash:profile:isoff-live:2012- E.2.2 Numerical requirements
- periods Nper: 32
- adaptation sets Nadset: 16
- representations Nrep: 16
- E.2.3 Metadata requirements
- E.2.4 Role related requirements
- urn:mpeg:dash:role:2011
- E.2.5 Audio channel configuration requirements
- HE-AAC:
urn:mpeg:dash:23003:3:audio_channel_configuration:2011 - E-AC-3:
urn:dolby:dash:audio_channel_configuration:2011 - E.2.6 Content protection signalling
- E.3 Restrictions on content
- E.3.1 Restrictions on file format
- "The movie fragment box ('moof') shall
contain only one track fragment box ('traf'). "
- E.3.2 Restrictions on adaptation sets
- "Each Representation shall contain only one media component, i.e. a single audio or video track. Other non-media components (e.g. encryption keys) may be present if applicable."
- "All ISO BMFF Representations shall have the same track_ID in the track header box and track fragment header box. "
- "Initialization Segment shall be common for all Representations [...]"
- "Segments shall be at least 1s long, except for the last segment in an MPD which may be shorter."
- "Each video Segment shall have a duration of not more than fifteen seconds."
- "Each audio Segment shall have a duration of not more than fifteen seconds."
- E.4 Requirements on terminals
- E.4.1 DASH profile support
- E.4.2 Transitions between representations
- E.4.3 Buffering
- E.4.4 ISO File Format support
- Annex F (informative): DRM integration
- Old documents
- Version 1.5 (March 2012, August 2012)
- Figure 1: Specification overview
- Nou / New:
- 5.2 User input: remote, game controller...
- 7.2 Broadcast-specific formats and protocols
- 7.2.2 (broadcast) Protocol for application transport -> DSM-CC
- 7.2.5 DSM-CC
- 7.3 Broadband-specific formats and protocols
- 7.3.2.2 (broadband) Protocols for download -> OIPF vol 4 Protocols: 5.2.3
- 9.1.2 Unicast content download -> OIPF vol 5 DAE: 8.1.1.1
- 11 Security
- 11.1 Protected Content via Broadband
- ISO base FF
- Annex C: Common Encryption for ISOBMFF
- Annex A: OIPF DAE Specification Profile
- A.1 Access to EIT Schedule Information (OIPF DAE)
- Annex B: Profiles of MPEG-DASH
- B.2 Requirements relating to the MPD
- B.2.1 Profile definition
- only one profile is available:
urn:hbbtv:dash:profile:isoff-live:2012- B.2.2 Numerical requirements
- periods Nper: 32
- adaptation sets Nadset: 16
- representations Nrep: 16
- B2.3 Metadata requirements
- urn:mpeg:dash:role:2011
- B2.5 Audio channel configuration requirements
- multichannel
- dolby
- B.3 Restrictions on content
- B.3.1 Restrictions on file format
- "The movie fragment box ('moof') shall contain only one track fragment box ('traf')"
- B.3.2 Restrictions on Adaptation Sets
- "Each Representation shall contain only one media component, i.e. a single audio or video track"
- "Each video Segment shall have a duration of not more than fifteen seconds"
- "Initialization Segment shall be common for all Representations [...]"
- "Each Segment shall consists of a whole, self-contained movie fragment."
- "Segments shall be at least 1s long, except for the last segment in an MPD which may be shorter."
- "Each video Segment shall have a duration of not more than fifteen seconds."
- "Each audio Segment shall have a duration of not more than fifteen seconds."
- Annex C: Common Encryption for ISOBMFF
- C.2 Key Management for Live Content
- "Periods are typically used for separate programs in a live broadcast"
- C.3 Encryption mode
- AES 128-bit in CTR mode (AES-CTR)
- Annex D: DRM Integration (informative)
- Errata
- HbbTV Specification Errata 1 (24 Feb 2012) (pdf)
- AIT
- Formats and protocols (TS
102 796: 7.2 Broadcast-specific formats and protocols, 7.3
Broadband-specific formats and protocols):
ISMA Internet Streaming Media Alliance: "Implementation Specification Version 2.0, April 2005".
TS 102 796 formats
protocols signalling synchronisation
content application broadcast broadcast-independent application
streaming download transport Broadcast
7.2
-
-
-
TS 102 809 / cl. 7 -> DSM-CC TS 102 809 / s. 5
optional: TS 102 809 / cl. 5.4 -> XML enc of AIT
TS 102 809 / cl. 8: "do-it-now" (DSM-CC stream events)
Broadband
7.3
- OIPF vol2: Media Formats
- AVC_SD_25 baseline profile @ level 2
- E-AC3 (TS 102 336)
systems
video
audio
TS
AVC_SD_25
AVC_HD_25
HEAAC
E-AC3
MP4
-
-
MPEG1_L3
HEAAC
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- Unicast HTTP TS:
- OIPF vol4: Protocols / V1: cl 5.2.2.2 / V2: cl 5.3.2.2 + Content-range, chunked -> HTTP 1.1
- (?) Unicast RTSP/RTP:
- ISMA 2.0 cl. 6, 7, 8
- HTTP Adaptive Streaming
- Annex E: MPEG-DASH
OIPF vol4: Protocols / V1: cl. 5.2.3 / V2: 5.3.4 -> HTTP
- HTTP
(RFC 2616)
- HTTP/TLS
(RFC 2818, RFC 5246)
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- HbbTV and analogue TV (TS 102 796: Annex C)
- http://[AIT_server]/service?CNI=xxx
- CNI
from TS 101 231 ""Television systems; Register of Country and Network
Identification (CNI), Video Programming System (VPS) codes and
Application codes for Teletext based systems" (pdf at EBU) (codes register
pdf at EBU)
- http://[AIT_server]/service?name=xxx
- AIT in XML format:
- as specified by TS 102 809 clause 5.4 "XML-based syntax"
03Proves /Tests#
04Exemples / Examples#
- HBBig (HbbTV plugin needed)
- RTVE
- Redbutton
- services
- tvehd.html
- tdp.html
- emissions (c=9)
- RTVE
HbbTV (F5 as red button) (*)
- IRT's HbbTV Application Portal
- IRT's
HbbTV test pages
- hbbtvlib.js
- MIT-Experts
- MIT-Experts HbbTV
testsuite
- GitHub
git clone git://github.com/mitxp/HbbTV-Testsuite.gitgit pull
- Client SSL certificate
- ZDF Mediathek
- ...
- HBBTV-Test
portal (inverto.tv)
- Arte (*)
- IB3 a la carta
- LaSexta
- DiscoveryMax
- Radio Marca
- Vaughan
- TV3
- Antena3
- Tele5
- Mundo Interactivo
- TV5 Monde
05Programari / Software#
- Integració / Integration
- Video Switching on hybrid environment (HbbTV) Diploma work
- ffmpeg transcoding
- -vbsf (h264_mp4toannexb)
- -copyts (copy timestamps from input to output)
- Apache2 http streaming server
- H264-streaming-module
- http://.../file.mp4?start=x
- Info
- Playout
- OpenCaster (>=2.5)
- Building
of an HbbTV demonstrator (J. Ohana, A. Revuelta)
- OpenHBB
- Navegadors / Browsers
- The HTML5 test:
television
- Mozilla Firefox
- FireHbbTV
(official
plugin for Firefox 7, 8)
- fbvlc
(VLC web plugin) (based on FireBreath)
- Experimental
version (Firefox 9,
10, 11)
- FireHbbTV addon
- Problemes / Problems
- El desplegable de dalt a la dreta només
funciona a la primera finestra del Firefox
- Wedison (HbbTV version of Orygin Web browser: royalty free web browser for CE devices) (Pleyo)
- Access (Netfront)
- Ant Galio Browser
- Opera
for TV
- Opera Devices CDK (Content Developer Kit)
- Opera TV Emulator
- Webkit
- GPAC HbbTV player
- hbbtvplayer compilation
- Ant
- TARA
- MythTV
- HBBTV - All beginnings are hard ...
- Ligada iSuite for HbbTV (test suite)
06Receptors / Receivers#
- HyperPanel
- Engel
- EN2000 (*)
- Sony Bravia 2011 (*) (a la configuració inicial cal
indicar que sou a França)
- firmware PKG3.505 (15 set 2011)
- HbbTV sur 24ex320
- Samsung D6000, D7000, D8000
- LCD-LED Samsung Series D6000, D7000, D8000 (2011)
- ruSamsungTVCommunicator
- TV3 estrena el TV3alacarta per a HBBTV
- VolksBox
- InOutTV 4Gs HD
- MediaCenter 4Gs HD, el nuevo equipo de InOut TV (Gizmologia)
- Inverto
- Oki
- Vestel
- VideoWeb
- Philips
07Desenvolupament / Development#
- 8. Browser application environment
- 8.1 OIPF
- Annex A: OIPF DAE specification profile
reference in DAE
embedded object / classes
methods
HTML
OIPF vol5: DAE
7.2 Application management APIs
7.2.1 The application/oipfApplicationManager embedded object getApplicationVisualizationMode()
getOwnerApplication()(returns an application)
getChildApplicationsgetChildApplicationsinstallWidgetuninstallWidget
<object type="application/oipfApplicationManager" id="oipfAppMan"></object>7.2.2 The Application class
7.2.5 The Keyset class setValue(value, otherKeys)
7.3 Configuration and settings APIs
7.3 The application/oipfConfiguration embedded object
<object type="application/oipfConfiguration" id="oipfConfig"></object>
7.3.2 The Configuration class
...
7.13 Scheduled content and hybrid tuner APIs
7.13.1 The video/broadcast embedded object getChannelConfig()bindToCurrentChannel()createChannelObject()setChannel()prevChannel()nextChannel()stop()setFullScreen()setVolume()getVolume()release()- added by HbbTV:
addStreamEventListener(...)removeStreamEventListener(...)StreamEvent
<object type="video/broadcast" id="broadcast"></object>7.14 Media playback APIs
7.14.1 The CEA 2014 A/V Control embedded object (CEA-2014-A, sec.5.7.1)
play(speed)stop()setSource()
<object type="video/mpeg" id="video_mpeg"></object>
<object type="video/mp4" id="video_mp4"></object>
<object type="application/dash+xml" id="video_dash"></object>
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- 8.2 Defined Javascript APIs (additional methods for video/broadcast)
- 8.2.1 Acquisition of DSM-CC stream events
- 8.2.2 Carousel objects access with XMLHttpRequest
| MitXperts (mitxp) |
IRT |
sunglim | |||||
|---|---|---|---|---|---|---|---|
| HbbTV-Testsuite |
HbbTV_Application_Template | HbbTV_Demo_App | |||||
| Basic |
Advanced |
Samples / redbutton_app | |||||
| base.js | hbbtvlib.js | - |
hbbtvlib.js | hbbtvlib.js |
base.js | video_base.js | |
var app =
document.getElementById('appmgr').getOwnerApplication(document); |
initApp() | hbbtvlib_show() | (html) |
hbbtvlib_red_initialize() | hbbtvlib_red_initialize() | initApp() (call to setKeyset(0x1...)) |
initApp()
(call to setKeyset(0x1...)) |
app.activate(); |
|||||||
var app =
document.getElementById('appmgr').getOwnerApplication(document); |
setKeyset(mask) | hbbtvlib_setKeysets() | hbbtvlib_red_initialize() | hbbtvlib_red_initialize() | setKeyset(mask) | setKeyset(mask) | |
document.addEventListener("keydown",
function(e) { |
registerKeyEventListener() | registerKeyEventListener() | registerKeyEventListener() | ||||
document.getElementById('video').bindToCurrentChannel(); |
initVideo() | initVideo() | initVideo() | ||||
| ... |
|||||||
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
...
| Ohana-Revuelta | IRT | MIT-Experts |
RTVE |
|||
|---|---|---|---|---|---|---|
| common |
js
files |
hbbtvlib.js |
hbbtvlib.js
|
base.js
|
hbbtvlib.js
(IRT) |
hbbtv.js / hbbtv_prueba.js
|
| keycodes.js |
keycodes.js |
keycodes.js |
constants.js | |||
| application
specific |
js |
base.js | main.js
|
settings.js |
main.js
|
|
| css |
global.css
|
|||||
| index.html |
doctype |
|
<?xml version="1.0"
encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//HbbTV//1.1.1//EN" "http://www.hbbtv.org/dtd/HbbTV-1.1.1.dtd"> |
|||
| html |
<html
xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
|||||
| head |
<meta http-equiv="content-type" content="application/vnd.hbbtv.xhtml+xml;charset=UTF-8"/> | |||||
tests.php
|
base.php
|
index.php
|
index.html
|
|||
|
||||||
| <script
type="text/javascript"> ... </script> |
<script
type="text/javascript"> function init() { try { hbbtv_init(); hbbtv_show(); ... } </script> |
|||||
| <link rel="stylesheet" type="text/css" href="hbbtv.css"/> | ||||||
|
||||||
| body |
tests/index.php
|
base.php index.php
|
index.php
|
|||
|
||||||
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
- Programming for HbbTV [closed]
- TAL (TV
Application Layer) (BBC)
- Exemples / Examples
- Simple HbbTV HTML
- ...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//HbbTV//1.2.1//EN" "http://www.hbbtv.org/dtd/HbbTV-1.2.1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>HbbTV DASH</title>
<meta http-equiv="content-type" content="application/vnd.hbbtv.xhtml+xml;charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="css/hbbtv.css"/>
<script type="text/javascript" src="js/hbbtv.js"></script>
<script type="text/javascript">
function init() {
try {
...
}
}
</script>
</head>
<body onload="init();">
<div style="visibility: hidden; display: none;">
<object type="application/oipfApplicationManager" id="oipfAppMan"></object>
<object type="application/oipfConfiguration" id="oipfConfig"></object>
</div>
<div id="safe_area">
<object id="video_dash" type ="application/dash+xml" style="width:640px; height: 360px;"></object>
<ul>
<li>Primer element</li>
<li>Segon element</li>
</ul>
</div>
</body>
</html>
- Client behaviour:
- href focus highlight:
- Samsung: not shown
- Engel: shown
- host vs hostname in Javascript
- Video
function reprodueix(adreca_absoluta)
{
var videoElem = document.getElementById("video");
videoElem.stop();
videoElem.data = adreca_absoluta;
videoElem.play(1);
}
<object id="broadcast" type="video/broadcast" style="position: absolute; top: 100px; left: 400px; width: 600px; height: 300px;"></object><object id="video" type="video/mp4" style="position: absolute; top: 100px; left: 400px; width: 600px; height: 300px;"></object><object id="video" type="video/mpeg" style="position: absolute; top: 100px; left: 400px; width: 600px; height: 300px;"></object><object id="video" type="application/dash+xml" style="position: absolute; top: 100px; left: 400px; width: 600px; height: 300px;"></object><a href="javascript:reprodueix(location.protocol+'//'+location.host+'/path/to/toto.mp4')">toto sequence</a>- PIP
- Standard TS 102 796 v1.2.1, page 72
- "Terminals shall only support one active instance of
a video/broadcast object at any time."
- Llançadora / Launcher
<head>
<script type='text/javascript' language='javascript'>
function init() {
...
window.setTimeout (function(){
hbbtv_hide();
document.getElementById("splash_image").style.visibility = "hidden";
}, 5000);
...
}
</script>
</head>
<body>
<div id="splash_image">
<img src="imatge.png"/>
</div>
</body>
- Focus
- document.getElementById("primer").focus();
- DVB signalling:
- "Single appliaction location descriptor" (TS 102 809: 5.3.7) cannot be empty: at least "/" (for root documents)
- KeySet
values (OIPF vol5 7.2.5):
constant name
numeric value
use
RED
0x1
- VK_RED
GREEN
0x2 - VK_GREEN
YELLOW
0x4 - VK_YELLOW
BLUE
0x8 - VK_BLUE
NAVIGATION
0x10
- VK_UP
- VK_DOWN
- VK_LEFT
- VK_RIGHT
- VK_ENTER
- VK_BACK
VCR
0x20
- VK_PLAY
- VK_PAUSE
- VK_STOP
- VK_NEXT
- VK_PREV
- VK_FAST_FWD
- VK_REWIND
- VK_PLAY_PAUSE
SCROLL
0x40
- VK_PAGE_UP
- VK_PAGE_DOWN
INFO
0x80
- VK_INFO
NUMERIC
0x100
- 0..9
ALPHA
0x200
- alphabetic
OTHER
0x400
Aquesta taula continua cap a la dreta — desplaça-la o gira el mòbil.
08CE-HTML#
- Simple CE-HTML (wp)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"ce-html-1.0-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>CE-HTML</title>
</head>
<body onload="document.getElementById('myvid').play(1);">
CE-HTML a/v object:<br/>
<object type="video/mp4" id="myvid" data="myvideo.mp4" width="640" height="360"></object>
</body>
</html>
http://www.francescpinyol.cat/hbbtv.html
Primera versió: / First version: 17.III.2012
Darrera modificació: 24 d'octubre de 2014 / Last update: 24th October 2014