A browser extension following such Hybrid interactive TV technologies:
Be aware if this browser extension version is still less than 1.0, do consider it as a prototype!
The purpose of this project is to avoid the default browser action which is to download various iTV (interactive television) application pages (based on the HTML standard with some proprietary methods). Here this browser extension is detecting those pages and injecting during page loading, an emulation layer (plus a bottom UI toolbar). In addition, unrecognized video formats are also handled by external HTML5 video plugins.
This browser extension is available for free on those distribution platforms:
Browser: | Mozilla Firefox (not ESR) | Google Chrome / Microsoft Edge | Apple Safari |
---|---|---|---|
Minimum version: |
V67+ (for ES6 dynamic import) | V63+ (for ES6 dynamic import) | V14+ (2020) |
Extension availability: |
☑️ unpublished (will try M$ Store) ➳ instead see the wiki dev install |
? |
Please note that not all video codecs are recognized by default in current (i.e. 2020) browsers:
Browser: | Mozilla Firefox | Google Chrome | Apple Safari | Android Chrome |
---|---|---|---|---|
codec H.264: | ✅ plugin by Cisco | ✅ present | ✅ present | ✅ present |
codec H.265: | ❌ no free license | ✅ here (win10) | ✅ in macOS 10.13+ | ☑️ device-dependent |
If you need to create your own video stream (within TS or DASH structure), I suggest you the well-known FFMPEG or MP4BOX tools. And in real life (i.e. without this extension), OpenCaster will help you to create your own TS file that can be broadcasted with a Dektec or Hides USB modulator and you will then be able to test your app on a true oipf/hbbtv device (like a Smart TV)
➳ see Tools
Feature | Description | |
---|---|---|
:white_check_mark: | auto-detection | an analysis of HTTP server headers and embedded HTML header & meta tags, is performed |
:white_check_mark: | forced detection | user on-clicked power button will force or disable iTV emulation (auto-saved in local storage) |
:white_check_mark: | bottom bar | located underneath the screen rendering, some buttons (colored keys, resolutions for zoomed rendering, ...) are provided in order to interact with the emulator. |
:soon: | iDTV customization | through above extension's popup (with various tabs), it enables the customization of various parameters (user-agent, OIPF capabilities, country, CAS id, DVB channels,...) |
:construction: | external inputs | it handles some external inputs such as CI+ APDU reply message, Stream-Event content customization & triggering, DVB channels with customized LCN,... |
:construction: | video support | enabled by the rendering of browser's unrecognized broadcast video streams: Mpeg-TS and Mpeg-DASH (with the help of external libraries) using HTML5 MSE interface. |
:white_check_mark: | dev support | it includes emulated APIs and debugging information inside Firefox's performance inspector or Chrome's perf timeline using console.timeStamp() calls. |
You can use the arrow keys ←,→,↑,↓, enter and backspace to navigate inside the emulated iTV application.
Colored keys are also mapped to R, G, B and Y keyboard keys.
For more info, have a look at the Wiki page.
The purpose of this extension is mainly to validate the MIT-xperts test suite under CHROME and FIREFOX.
Here are some URL examples that have been extracted from various sources:
Name | Source | URL |
---|---|---|
ARTE HbbTV | French & German DTT TS | http://www.arte.tv/hbbtvv2/index.html |
MIT-xperts test suite | DTT & DVB-S TS stream | http://itv.mit-xperts.com/hbbtvtest/ |
Coyote browser urls | DVB-S Astra™ TS stream | https://www.coyotebrowser.com/hbbtv/applistastra/ |
... | Catalog (with dead ones) | http://urju.de/hbbtv/ http://www.hbbig.com/ |
If you want to create your own HbbTV application, you can start with such code:
```html
Please note that there are more information on the Wiki page.
You can also check your page validity content using this HbbTV validator.
I also recommend you the BBC Tal framework which handles HbbTV devices through configuration files.
This project is not modifying those libraries and only doing dynamic calls at runtime on their CDN releases.
Please don't forget to add a ⭐️ to this repository if this project helped you!