VisualOn HTML5+ Player offers the following benefits when deploying a content delivery solution:
• No plug-in installation
• Convenience and flexibility across platforms and devices
• MSE (Media Source Extensions™) is supported in your browser.
• EME (Encrypted Media Extensions) is supported for DRM type media.
Browser | OS Version | Browser Version |
---|---|---|
Firefox for desktop | Firefox for desktop | Firefox for desktop |
Chrome for desktop | 48+ | |
IE for Windows | 8.1+ | 11+ |
Edge for Windows | 10.0+ | 12+ |
Safari for Mac OS X | 9+ | |
Chrome for Mac OS X | 48+ | |
Firefox for Mac OS X | 47+ | |
Safari for iOS | 8.0+ | |
Chrome for Android | 4.0+ | 34+ |
Firefox for Android | 4.0+ | 41+ |
Edge for Android | 4.0+ | |
Opera for Windows | 7+ | 47+ |
Opera for Mac OS X | 10.0+ | 47+ |
Opera for Android | 4.4+ | 47+ |
Opera for Linux | 47+ |
Note:
1. HTTPS streaming is required from Chrome 58 onwards.
• MSE plus HTTP will always work if EME is not used.
• EME plus HTTP will not work.
• EME plus HTTPS will work which means MSE plus HTTPS is the only option here
when EME is used. The old API requestMediaKeySystemAccess() is deprecated on insecure
origins in the specification. The support will be removed in the future.
The non-HTTPS content will not render and the console will provide error reporting
to that effect.
2. IE10 and IE11 on Windows 7 do not have the MSE/EME API available. Consequently,
it is technically not possible for any HTML5-based video player to playback DRM protected content
on these browsers in Windows 7.
3. DASH support is required Safari 10+ on Mac OS X.
4. Only HLS is supported on Safari for iOS.
5. DRM is not supported on Firefox for Android.
Browser | Widevine | Playready |
---|---|---|
Firefox for desktop | Yes | No |
Chrome for desktop | Yes | No |
IE for Windows | No | Yes |
Edge for Windows | No | Yes |
Safari for Mac | No | No |
Chrome for Android | Yes | No |
Firefox for Android | No | No |
Edge for Android | No | No |
Browser | Widevine | Playready |
Firefox for desktop | Yes | No |
Chrome for desktop | Yes | No |
IE for Windows | No | Yes |
Edge for Windows | No | Yes |
Safari for Mac | No | No |
Chrome for Android | Yes | No |
Firefox for Android | No | No |
Edge for Android | No | No |
ClearKey is also supported for DASH on Chrome 35+, Firefox 47+, Android 4.3+.
Browser | AES128 | Fairplay |
---|---|---|
Firefox for desktop | Yes | No |
Chrome for desktop | Yes | No |
IE for Windows | Yes | No |
Edge for Windows | Yes | No |
Safari for Mac | Yes | Yes |
Safari for iOS | Yes | Yes |
Chrome for Android | Yes | No |
Firefox for Android | Yes | No |
Edge for Android | Yes | No |
Browser | AES128 | Fairplay |
Firefox for desktop | Yes | No |
Chrome for desktop | Yes | No |
IE for Windows | Yes | No |
Edge for Windows | Yes | No |
Safari for Mac | Yes | Yes |
Safari for iOS | Yes | Yes |
Chrome for Android | Yes | No |
Widevine DRM HLS version 2 specifies the new extensions which are meant to be used for HLS in CMAF and be compatible and consistent with Widevine DRM signaling for MPEG-DASH in CMAF. And this is now fully supported by HTML5+ player.
Only H264/AAC is supported.
Browser | WebVTT | TTML | CEA-608 | CEA-708 | SMPTE |
---|---|---|---|---|---|
Firefox | Yes | Yes | Yes | Yes | Yes |
Chrome | Yes | Yes | Yes | Yes | Yes |
IE | Yes | Yes | Yes | Yes | Yes |
Edge | Yes | Yes | Yes | Yes | Yes |
Safari | Yes | Yes | Yes | Yes | Yes |
Note:
1. TTML is not supported in HTML5 for HLS.
2. The attribute of CLOSED-CAPTION need define in HLS media playlist, otherwise, CEA-608/CEA-708
are not supported on safari for HLS.
Two APIs are supported in VisualOn HTML5+ player for FCC compliance. Refer to the sample code in API Reference Manual.zip file under the Doc directory in the installation package.
• setSubtitleStyles(subStyles)
• getDefaultSubtitleStyles()
The objects below are supported for the APIs.
enable: Enable all subtitles properties or not.
previewSubtitleText: Set the preview text string.
fontBackgroundColor: Set font background color.
fontBackgroundOpacity: Set font background opacity.
FontColor: Set font color.
FontOpacity: Set font opacity.
FontFamily: Set font name.
FontEdgeType: Set font edge type.
FontEdgeColor: Set font edge color.
FontEdgeOpacity: Set font edge opacity.
FontSize: Set font size.
FontBold: Set font bold or not.
FontUnderline: Set font underline or not.
FontItalic: Set font italic or not.
WindowColor: Set window background color.
WindowOpacity: Set window background opacity.
BoundingBox: Set bounding box position.
FontHorzPosition: Set font horizontal position.
Note: FCC is not supported in VisualOn HTML5+ player for HLS on Safari.
DASH and HLS are supported.
To enable Analytics Server Agent on VisualOn HTML5+ Player, please configure the assets.js as the introduction Sample player configurations. See the following sample code to configure the Analytics Server Agent status and CUID.
analytics: [
{
type: 'server',
options: {
cuid: 'visualon'// customer specified user ID for Analytics Agent
}
}
]
The following events and attributes are supported:
Section | Attribute | Tag |
---|---|---|
Packet Header | Customer ID | cid |
UUID | tid | |
CUID | cuid | |
Device Info (di) | Device Model | dm |
Player Version | pv | |
OS | os | |
OS Version | osv | |
Player Event List (pe) | {"ts": ts, "le":last_event, "e": [...]} | pe |
Playing | pla | |
Buffering | buf | |
Pause | pau | |
Seeking | sek | |
Stopped (idl) | idl | |
DrmErr | dre | |
HttpErr | hte | |
OtherErr | ote | |
Video Info (vi) | URI | uri |
Video Length | len | |
Player IP | ip | |
Video Statistics (st) | Bitrate Adaptation Up | bau |
Bitrate Adaptation Down | bad | |
Average Playing FPS | afps | |
Streaming FPS | sfps | |
Streaming Bitrate | sb | |
Playing Bitrate | pb | |
Frame Drop Count | fdc | |
Total Frame Count | tfc | |
Total Play Time | tpt | |
Total Buffer Time | tbt | |
Watch Time | wt | |
DRM Type | drm | |
Network Statistics (st) | Bytes Downloaded | bdn |
Total Download Time | tdt | |
Connection Type | ct | |
Errors (er) | Http Error Count | hec |
DRM Error Count | dec | |
Codec Error Count | cec | |
Other Error Count | oec | |
Session Statistics | Video Startup Time | vst |
Note 1:
Analytics Server is limitedly supported in HTML5 on Safari for HLS.
For Analytics Overlay, please refer to VisualOn_Analytics_Overlay.pdf
Note 2:
VisualOn Analytics and other VisualOn partners' analytics are enabled by default.
It occupies a certain amount of bandwidth. Consequently, please turn it off in assets.js
for any special user cases like Low latency for example.
Enabling the Chromecast to display the content to external device screen, tap the cast icon in the initial view, and select the Chromecast device from the list. If you want to change the source then click the “cast to” icon and select the source from the list. There are options for “cast tab” or “cast desktop” when “share your screen”.
While in casting, tab the casting icon, the VisualOn default customer media receiver is shown, which includes the basic playback control. Tab “STOP” to stop the casting.
Note: VisualOn HTML5+ player provides custom receiver SDK.
If you want to set up your own server to host the receiver by using VisualOn receiver SDK
please refer https://developers.google.com/cast/docs/registration to register your cast
application and get the application ID.
The analytics data of Chromecast will be sent to your own server,
otherwise, to VisualOn default analytics server by using VisualOn default customer receiver
which is hosted by VisualOn and the application ID is B5BCD208.
The application ID is used with API calls from the sender application.
The sample code below shows the steps to configure the application ID while initialization.
To enable Chromecast the init(config) must be called successfully. See the following sample code to configure the receiver media player.
var playerConfig = {
autoPlay: true,
cast: {
receiverAppId : 'B5BCD208' //VisualOn default customer receiver
}
};
player.init(playerConfig);
Note: For Chrome 72 Chromecast, the HTML5+ player only works on the https links.
Enabling AirPlay to wirelessly stream video to external HDTV from Safari via AppleTV, tap Airplay after loading the stream in the player, and then select the AppleTV device from the list, the content will be streaming to the HDTV. While in Airplay streaming, the playback control bar is still displaying and working on VisualOn HTML5+ player, tab Airplay again or STOP playback to stop the Airplay streaming.
Note: Airplay only support for HLS on VisualOn HTML5+ player.
The volume control is disabled from player control bar while in Airplay streaming mode.
Thumbnail preview as external VTT files is supported to show an overlay preview images when set a new position on time slider. The overlay thumbnail is loaded to VisualOn player as external VTT files. The W3C VTT format is a basic, text format that combines timing and thumbnails. These thumbnails are stored in a basic image format, like JPG.
Thumbnail preview also support multiple JPEG case. Multiple thumbs can be combined into a single sprite W3C Media Fragments are then used to map the individual thumbs to the correct times.
The following API must be called to enable thumbnail preview for HTML5+ player:
• findNearestThumbnail(pos)
returns a thumbnailInfo object. Returns null if there is no thumbnail.
See the following sample code to set the URI of WebVTT file in the sourceConfig object. Refer to the details in API Reference Manual.zip file under the Doc directory in the installation package.
tracks: [{
uri: 'http://path/to/thumbnail/vtt/url.vtt',
type: 'thumbnails'
}]
Low latency allows users to easily build a high quality and low latency HD video transmission system for live streams playback.
The following platforms are supported with Low latency for DASH Live streams:
Supported Platform | Browser Version |
---|---|
macOS Safari | Safari 11.1+ |
Windows Chrome and Edge | Chrome 63+, Edge 17+ |
Android Chrome. | Chrome Android 67+ |
The following APIs are added:
lowLatencyMode
startWithLowestLatency
For details usage, please refer to the API manual.
Enabled Custom Dimensions and Custom Metrics settings in Analytics server for VisualOn HTML5+ Player. The value needs to be set before playback with asset.js.
You can add customized poster picture. The picture appears right after you click on the play button before the 1st frame shows up. Usage example:
source: {
poster: "https://sh.visualon.com/sites/default/files/tears_of_steel.png
https://sh.visualon.com/sites/default/files/tears_of_steel.png
",
links: [{
uri: "https://storage.googleapis.com/wvmedia/clear/h264/tears/tears_sd.mpd"
}]
}
Rsize and reposition of the image inside of poster tag by using key/value dict object
. Please see the following Sample code:
source: {
poster: {
url: "poster_image_url",
width: "300px",
height: "10%",
top: "100px",
left: "20%"
},
links: [{
uri: "http://rdmedia.bbc.co.uk/dash/ondemand/testcard/1/client_manifest-audio.mpd"
}]
}
Under posterConfig
there are “ width
, height
, top
, left
and sourceConfig
parameters”. Please see the following descriptions for each parameter:
width
: The width of the poster display area. This can be set to any CSS unit, (px, em, %, etc...) If this tag is empty, the poster width will default to the poster image's width.height
: The height of the poster display area. This can be set to any CSS unit, (px, em, %, etc...) If this tag is empty, the poster width will default to the poster image's height.top
: The position relative to the top border of the video div. This can be set to any CSS unit, (px, em, %, etc...) If this tag is empty, the top of the poster will default to the center of the video div.left
: The position relative to the left border of the video div. This can be set to any CSS unit, (px, em, %, etc...) If this tag is empty, the left side of the poster will default to the center of the video div.sourceConfig
: The poster info for this content. see: module:Player~posterConfig. The SDK will show the poster before the video content, or for the entire duration if the content is purely audio. Each source can have its own poster. Each individual poster can be declared in the same manor for different content links."VisualOn HTML5+ player has natively integrated with Google IMA to support the playback of client-side stitched ad playback flow. The player inherits the Google IMA feature which is support VAST, VMAP and VPAID. It supports to show companion Ads as well. The Google IMA SDK is referred as follow:
<!-- google ads sdk -->
<script src="//imasdk.googleapis.com/js/sdkloader/ima3.js"></script>
Based on Google IMA tracking mechanism, VisualOn HTML5+ player provides the tracking Events as following:
Event | Description |
---|---|
VO_OSMP_AD_PLAY | Triggered when the ad playing is played. |
VO_OSMP_AD_PAUSED | Triggered when the ad playing is paused. |
VO_OSMP_AD_STARTED | Triggered when the ad starts playing. |
VO_OSMP_AD_COMPLETE | Triggered when an ad has completed playback. |
Product life cycle defines the time duration in which a given production released version of licensed technology is supported for maintenance. The VisualOn product life cycle starts at the first production release date, and general availability of the base release version ends 18 months afterwards. Maintenance support is not available for backport to released versions that have reached end of life cycle. Update or migration to a newer version of licensed technology is recommended prior to the end of life cycle.
Confirm with your system administrator about the location in your web server where the HTML5+ Player kit should be installed.
Note: For evaluation of VisualOn HTML5+ player on IE-11, Chrome and Firefox browsers it may be necessary to enable accessibility across domains (CROS) by installing add-ons, extensions or changing the browser security settings. Installing add-ons, extensions or changing the browser security settings is usually avoided by adjusting the server(s) settings.
asset.js
under *<SDK_INSTALL_DIR>\SamplePlayer\sampleplayer\app.*
This file allows you to configure the playback, analytics, logs, stream URI, DRMs and etc.
In the configuration file, create voAvailableStreams
for different types of the stream groups which allows you quick accessing the URI from the sample player webpage. Please refer to the sample code in Player API Reference Manual.zip file under the Doc directory in the installation package.VisualOn HTML5+ player log is generated via event mechanism.
The application can get the log messages by listening to the VO_OSMP_CB_LOG_ADDED
event. For example, the sample code of VisualOn sample player is: player.addEventListener(
voPlayer.events.VO_OSMP_CB_LOG_ADDED, onLogAdded, $scope)
,If logsConfig is set to true, the VisualOn log will be showed in the browser's console.
Click the Show Log Window button.
Click the Turn On Log button at the bottom of the log window. Log messages are shown in the log window.
You can save the log file on a local device or upload the log file to a server that is hosting upload.php. See the SDK Tools/setuplogserver/ folder for more details about uploading a log file.
Note: The log file name and saving mechanism may differ across web browsers
The evaluation license is valid for 182 days from the date the build is created.
The production license has a domain check mechanism. Please contact your VisualOn contact and provide the list of your domains for the domain check white list of your production license.
We have Web App license mechanism to check Web App ID for Tizen and webOS. Please provide your App ID to VisualOn support team for applying the production license.
main.js and asset.js are Sample Application files, voplayer.min.js is the player library file.
The HTML5 API is listed in module-Player.html, events are listed in modules.list.html (unzip the "Player API Reference Manual.zip" to see these files)
global.html contains our API change history for each version including API and Event usage changes, name changes, addition and removal, parameter changes
Please review the global.html file for each release.
If global.html indicates API and Event changes, it is possible that the application code needs to be updated.
If there are no changes in global.html, no further changes in the application is required, but it is a good practice to check changes in the VisualOn Sample Application files.
Please refer to the API Reference Manual in the /HTML5/Doc/Player API Reference Manual.zip for all the Events and API related topics.