1. Introduction
1.1 Summary
This note is to outline steps to set up the Video Player 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 Video Player application has either been embedded or available as “postbuild” component in almost all Amino and Entone produced Set Top Boxes.
The capabilities of the Video Player application have evolved with the capabilities of the Set Top Box.
1.3 Assumptions
The System Integrator setting up and configuring the Video Player application and Set Top Boxes must have proficiency to either setup and configure the Amino Orchestrate 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
- Orchestrate Service Assurance usage:
- Login permissions to an Orchestrate 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. Video Player Lineup File
The video player 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 player 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. Orchestrate Configuration and Setup
For Orchestrate configuration, the INI file is replaced by the user-friendly “Add/Remove Parameters” feature in the Group Details area in Manage, as well as the the dropdown menus for the “Target Application” (APP) and “Target Bootloader” (BBL) files.
Figure 2 - Orchestrate Configuration Setup Screen
4. Video Player Usage
4.1 Remote Control Of The Device Over A Network
If you want to remotely control the video player, 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 Video Player 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 Video Player 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 Digital Signage 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 Orchestrate 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 Video Player 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 Orchestrate add adding “?channum=xxx” (xxx being the desired starting channel number) to the Video Player lineup files entry for the group.
i.e
webapp.homepage="https://appassets.androidplatform.net/assets/player/VideoPlayer.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 Video Player 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 Orchestrate parameter) to point to your hosted adb key.
Then you can use adb to change the channel which the Video Player is currently set to.
adb -s 10.0.35.143:5555 shell am start -d 'file:///android_asset/player/player.html?channum=18' com.aminocom.browser/.MainActivity
Comments
0 comments
Article is closed for comments.