1. Introduction
1.1 Summary
This note is to outline steps to set up the Channel Zapper application for the Amino H200 STB
For guidance on how to install the firmware and channel lineup please see the H200 Quick Start Guide
1.2 Background
An Amino Channel Zapper application has either been embedded or available as “postbuild” component in almost all Amino and Entone produced Set Top Boxes.
The capabilities of the Channel Zapper application have evolved with the capabilities of the Set Top Box.
1.3 Assumptions
The System Integrator setting up and configuring the Channel Zapper application and Set Top Boxes must have proficiency to either setup and configure the Amino Engage Service Assurance platform, DHCP and HTTP servers, or configure the required system via editing text-based files for USB provisioning. As described in the H200 Quick Start Guide
1.4 Requirements
- Engage Service Assurance usage:
- Login permissions to an Engage account
- Ability to edit and host a JSON file on a HTTP under their control.
- Server based configuration/Hosting:
- Ability to edit and setup local DHCP server
- Ability to edit and host Firmware, Configuration and JSON files on a HTTP server under their control.
- USB based provisioning:
- Physical access to the STB
- Ability to edit configuration files and copy to a compatible USB stick in the correct format and structure.
2. Channel Zapper Lineup File
The zapper firmware is able to read the channel lineup from a Json file which can be pre-loaded on the STB or hosted on an accessible web server.
2.1 Supported Network / Video-Transport formats
The zapper supports streams provided in the following formats:
- DASH
- RTSP
- UDP
- HLS (streamed or locally loaded on STB)
See table below for examples.
Media Type |
Example Source |
Minimal Config Example |
Native-Dash Media |
Clear Dash Stream http://<host>:<port>/[<file_path|playlist_path>] |
Example: www.domain.com/manifest.mpd { "type": "nativedash", "name": "100", "desc": "Clear Dash Stream", "addr": "www.domain.com/manifest.mpd" } |
Encrypted Dash Stream http://<host>:<port>/[<file_path|playlist_path>] Remark: "encrypting_request_header" is optional even for encrypted source. |
Example: www.domain.com/encrypted/manifest.mpd { "type": "nativedash", "name": "101", "desc": "Encrypted Dash Stream", "addr": "www.domain.com/encrypted/manifest.mpd", "encrypting_server": "www.domain.com/AcquireLicense", "encryption_type": "com.widevine.alpha", "encrypting_request_header": { "X-AxDRM-Message": "..." } } |
|
RTSP Source |
rtsp://<server>/<asset> |
Example: rtsp://www.domain.com:554/stream.ts { "type": "rtsp", "name": "200", "desc": "RTSP stream", "addr": "www.domain.com:554/stream.ts" } |
IGMP Multicast MPEG2 TS |
udp://<address>:<port>/<program number>?disable_lipsync&low_latency
Remark: Supports MPEG2, MPEG4, H.264 and H.265 video codecs muxed into SPTS . MPTS is NOT supported via udp. |
Example: udp://192.168.1.1:8110 { "type": "udp", "name": "300", "desc": "UDP stream", "addr": "192.168.1.1", "port": "8110" } |
IGMP3 Multicast MPEG2 TS |
Remark: Supports MPEG2, MPEG4, H.264 and H.265 video codecs muxed into SPTS . MPTS is NOT supported via UDP |
Example: igmpv3://192.168.1.1:8110?mcast=ssm_include&src_addr=192.168.1.30&src_addr=192.168.1.32 { "type": "igmpv3", "name": "323", "desc": "IGMPv3 stream", "addr": "192.168.1.1", "port": "8110", "igmpv3_mode":"include", "igmpv3_addr_list":["192.168.1.30","192.168.1.32"] } |
HTTP |
http://<host>:<port>/[<file_path|playlist_path>] |
Example: www.domain.com/index.m3u8 { "type": "http", "name": "350", "desc": "HLS stream", "addr": "www.domain.com/index.m3u8" } |
|
Example: www.domain.com/index.m3u8 { "type": "https", "name": "351", "desc": "HLS stream", "addr": "www.domain.com/index.m3u8" } |
|
|
Example: file:///mnt/video/index.m3u8 { "type": "file", "name": "352", "desc": "local HLS stream", "addr": "/mnt/video/index.m3u8" } |
2.2 Example JSON Lineup File
Figure 1 - JSON Example Lineup File
3. Engage Configuration and Setup
For Engage configuration, the INI file is replaced by the user-friendly “Add/Remove Parameters” feature in the Group Details area in Device Management, as well as the the dropdown menus for the “Target Application” (APP) and “Target Bootloader” (BBL) files.
Figure 2 - Engage Configuration Setup Screen
4. Channel Zapper Usage
4.1 Remote Control Feature
If you want to remotely control the channel zapper, then the “keycode injection” client which is resident in the STB can be used securely over SSH.
For example to send a Channel Up button command “CH+” on the remote the command below will send and inject that keycode.
NB: A pre-condition for this requires a SSH key-pair search for “Enable SSH” within the Amino Support Knowledgebase on how to request and install the REMOTE_ACCESS_ID into the INI (which you will need to provision using the previously described methods)
For the STB with IP address: “192.168.1.125” and the SSH private key installed at “~/.ssh/XXXXXXX.private”, and the command to CH+ (Keycode code decimal 2)
Key |
Key Description |
Keycode |
Key |
Key Description |
Keycode |
Menu |
Brings up channel list |
31 |
0 |
Zero |
27 |
CH+ |
Channel Up |
2 |
1 |
One |
53 |
CH- |
Channel Down |
9 |
2 |
Two |
46 |
CC |
Closed Captions |
69 |
3 |
Three |
39 |
Media |
Audio Selection |
8 |
4 |
Four |
19 |
Ok |
Select |
3 |
5 |
Five |
26 |
Up |
Up |
37 |
6 |
Six |
12 |
Down |
Down |
24 |
7 |
Seven |
54 |
Left |
Left |
51 |
8 |
Eight |
47 |
Right |
Right |
10 |
9 |
Nine |
40 |
4.2 Audio Language Selection
Figure 3 - Toggling Through Available Audio Languages in Zapper Application
Pressing the “Media” button on the remote control brings up the list of available Secondary audio languages available in the video stream. Successive pressing will toggle through or you can use “Up”/”Down” and “Ok” to select.
4.3 Closed Captions or Subtitles Selection
Figure 4 - Toggling Through Subtitle/Caption Languages in Zapper Application
Pressing the “Red” button on the remote control, brings up the list of available Closed-Captions/Subtitles available in the current stream. Successive pressing will toggle through or you can use “Up”/”Down” and “Ok” to select.
4.4 Watermark / On Screen Display of Device Info
For some Enterprise customers there may be a need to have some type of watermark able to be displayed which is unique per STB, to this end there are some relevant Amino Engage parameters which allow you to enable a watermark and select the data and colour of the data that will be displayed.
- browser.osd_info.argb requires an RGB colour code and this will determine the colour of the on screen text.
- browser.osd.info.enable is the main setting to turn on the watermark feature and has a drop down of on/off value
browser.osd.info.mask determines which information will be displayed, the 1 or 0 in the 4 digits will determine if that data is displayed. The information for each digit equates to :
- Serial Number
- Mac Address
- ChipID
- IP address. (ChipID not yet supported).
In the example below 1101 will show SN, Mac and IP.
Figure 5 - Watermark Display
4.5 Zapper INI Options
4.5.1. Starting Channel
You can program which channel should be the first channel to load when a device is turned on. This channel is known as the Starting Channel. This can be done by setting a “starting” property to value “true” as shown below:
Example of starting channel
{ "type": "udp", "name": "12", "desc": "UDP stream", "starting": true, "addr": "233.22.133.12", "port": "8110" },
If more than one starting channel is specified, the 1st appearance will be selected.
You can also specify the channel to start at via Engage add adding “?channum=xxx” (xxx being the desired starting channel number) to the zapper lineup files entry for the group.
i.e
webapp.homepage="https://appassets.androidplatform.net/assets/zapper/zapper.html?channum=16"
Would get the STB to bootup with Ch16 as the first channel
4.5.2. Save Last Channel
If you prefer that the zapper starts on the channel which was last selected you can use the INI parameter “webapp.save_last_channel” and enable it by setting the value to “true”
i.e webapp.save_last_channel=true
(if save last channel is set then it will take priority over the starting channel in lineup.json)
4.5.3. Changing channels via ADB Command
You can have a local PC with the ADB key installed or can specify your own adb key for the STB to use for adb connections.
The parameter adb.key_url can be included in the INI (or Engage parameter) to point to your hosted adb key.
Then you can use adb to change the channel which the zapper is currently set to.
adb -s 10.0.35.143:5555 shell am start -d 'file:///android_asset/zapper/zapper.html?channum=18' com.aminocom.browser/.MainActivity
Comments
0 comments
Article is closed for comments.