PRESTOplay for Android
Need to deliver rich streaming video apps for Android™ or Android TV™ platforms that’ll blow your audience away?
We offer a powerful software development kit (SDK) for creating high-end player experiences that consumers expect.
Our PRESTOplay SDK lets you rapidly construct sleek players. Built for devs, by devs, we give you the building blocks to massively reduce development costs and speed up your time to market.
Reach a multitude of phones, tablets, STBs, and smart TVs by quickly creating apps across Android, Android TV, and Amazon Fire TV.
Hybrid Android TV playback
Deploying PayTV broadcast or multicast service? Our player tech enables hybrid OTT and DVB/IPTV streaming through a single STB app saving you on development and maintenance.
Serious security: DRM & CAS
Premium content needs studio-recognized protection. Luckily, security is one of our specialties!
Built-in Widevine, PlayReady, and WisePlay DRM support for secure online and offline playback.
Works with Widevine CAS for SoC vendors and STB OEMs to easily integrate at low cost.
Hardware-security support to give your audience HD, UHD, and HDR quality excitement.
Cure your player pain points with superior support
You get more than just software – our player experts are here to help achieve your vision!
- Deep technical assistance when you need it
- Solve tricky content, device, and playback challenges with our low-level know-how
- Custom development to enrich your app
- Flexible roadmap
Over and above open source
Ordinary open-source players are great for basic playback but things can get tricky when extra features, consumer-reach, or support are desired.
We’ve built on ExoPlayer as a solid starting point with deep modifications.
An abundance of added features and performance enhancements for leading playback experiences.
Greatly improved device and stream compatibility to maximize audience reach.
Fast support to investigate workflow issues or squish a sneaky bug with priority.
Full of fantastic features
Our friendly API opens up the latest streaming technology with everything you need to build beautifully bespoke video players.
Our SDK supports Android 4.1+ (API level 16+)
|Development & configuration
|PRESTOplay for Android
Common player API framework
Our range of PRESTOplay SDKs feature a common API for consistent playback behavior and simplified maintenance across different player platforms and devices. Common settings include: player configuration, UI, ABR algorithm, latency, and subtitles.
Allows content representation exclusion. Our SDK checks a user device’s resolution capability and ignores ABR renditions that aren’t supported. For example, if you offer UHD quality but a user’s smartphone only supports HD, then the player will automatically exclude the UHD rendition (as long as there’s also an HD rendition available). The user receives the best quality available on their device, and you save on bandwidth for unsupported stream qualities.
Define sequences of VOD and live content to play. We enable instant content transitions with pre-caching of the next streams, multiple background players, and DRM license pre-fetching. IMA ads are also supported.
|Partial: Pre-caching only
Network retry & CDN rotation
Network retry: Automated recovery from connectivity loss with separate configuration for manifests, chunks, and other parameters.
CDN rotation: Allow multiple CDN sources to be defined for a single playback session. If the player gets a connectivity error from a CDN, it will quickly switch to the next source in the background to avoid buffering or disruption. These fallbacks can be defined either in the manifest or at the application level.
|Partial: No CDN rotation
|External display restriction
Optionally prevent playback on secondary displays
Corrupt content fixes
Accounts for non-standard manifest or MP4 files to ensure playback. Our low-level API allows us to add fixes to the player in case you have content not conforming to specifications. This is useful in case you’re dealing with non-spec conforming content libraries that you can’t update easily.
We provide simplified user interface tools including easily configurable buttons, subtitles, and thumbnail views.
Simplified UI tools
Device-specific codec fixes
Allows a stream to work where it otherwise would not due to a device-specific issue. For example: A fix may be needed to account for a specific device you’re targeting which didn’t implement a decoder in a standard way. Our player support team can help you with this even down to per-device models.
Extra device support available
ExoPlayer core simplification
Our API simplifies ExoPlayer functions for extra coding efficiency. We also continually maintain our API to ensure compatibility with ExoPlayer updates.
Unified track model
A common player API that ensures audio/subtitle tracks and video quality representations are exposed in the same way, independent of the content format (MPEG-DASH, Smooth Streaming, HLS). This saves time by allowing you to build a user interface once, independent of the actual streaming format.
|Streaming formats & protocols
We enable protected HLS content using Google’s Widevine DRM system (where HLS content uses the fMP4 container format).
Allows a single content file-set to be used for playback as either MPEG-DASH or HLS formats as needed. DRM can also be used with the single file-set on devices/platforms supporting the AES-CBC encryption mode.
DVB broadcast (DVB-C, DVB-S, DVB-T)
Including a highly configurable DVB-stack
Our DVB stack can adapt to operator-specific networks via simple configuration rather than complicated code customization, reducing the need for firmware updates. Our XML-based structure also allows table configurations to be easily remotely updated.
OTT & IPTV & DVB
|Video on demand (VOD)
Managed latency & sub-second achievable
Our player is capable of <1 second latency behind the live edge.
We also enable managed latency by defining a live edge latency goal to synchronize all players instances for similar playback timing. For example: a football game where all users see a goal at the same time by accounting for playback drift.
With VOD downloader & persistent DRM sessions
Enable stream downloading for secure local offline playback. Manifests can be accessed to transfer content to a user’s device with the video quality, audio, and subtitle track able to be specified. Content is downloaded with no transmuxing or transcoding to maintain video quality. DRM licenses are also stored securely: both during download and on a user’s device, your content remains protected.
Fast channel changing
Including zapping between OTT, IPTV, & DVB
Lets users switch streams as fast as broadcast TV. Avoid buffer delay by pre-caching neighboring content including pre-fetching licenses for a quick low-latency user experience.
Perform automatic catch up whenever the player position falls behind a certain limit. This is useful to closely follow the live edge or to avoid falling behind the live window. Catching up is accomplished by either speeding-up playback or seeking to the live edge.
Play recorded live streams on-demand, switch from live to VOD, or switch into a live mode where you can catch up from the beginning of the content.
IPTV/DVB to OTT
Switch seamlessly from multicast or broadcast to an OTT stream with frame-accuracy. This is useful for pausing live IPTV or DVB streams and continuing to watch as VOD.
Multi-speed fast forward, rewind, and slow
We support two trickplay modes:
Decoder mode: Speed up playback by downloading and showing all frames. This creates a smooth experience, but isn’t ideal at high speeds due to decoder/bandwidth limitations. You can’t rewind with this mode.
Seek mode: Our player continuously seeks, forward or backwards, based on the playback speed. This mode performs better at high speeds (> 6x) since you only need one frame at given time intervals. I-frame tracks are typically used here to reduce segment sizes and allow faster seeking.
|Partial: No rewind, and decoder mode only
Examples: Background loading, service integration, playing content when device screen is off, or playing content when another app has focus.
HDCP state handling & recovery
Handles HDMI/HDCP status changes to ensure smooth playback.
We’ve improved tunneled playback performance including better seeking stability, better frame display detection, and the ability to decode without audio.
Including media2 library integration
Example: 3D animated transitions
Level 1 hardware-secured where supported
Supports AES-CTR & AES-CBC (Android 7.1+) encryption modes
For Android TV
|PlayReady® DRM (on supported devices)
SL3000 hardware-secured where supported
Supports AES-CTR & AES-CBC (on devices with PlayReady 4+) encryption modes
|WisePlay DRM (on supported devices)
Hardware-secured where supported
Supports AES-CTR & AES-CBC encryption modes
Digital.ai security layer
Software-based Trusted Execution Environment (TEE) for improved security on devices without hardware-protection. Includes detection for debugging, swizzling, and jailbreaking.
Concurrent stream limiting
Prevent user access to streams by denying licensing and license renewal requests. This controls how many streams can be accessed simultaneously by a given user, for example, to enable ‘limited device number’ business models.
Automatic Widevine key renewal
This is useful, for example, in rental use-cases where a license will expire and requires renewal while a user is watching content. Our player renews and installs licenses automatically ahead of time so users experience uninterrupted streams.
If multiple DRM system options are available, our player prioritizes them based on security level and selects the best one. In case a DRM-related issue occurs, the player can fall back to other options as a backup for secure playback to continue. For example: If a device reports that Widevine is supported but an issue occurs when trying to open a session, our player can fall back to the next available DRM option.
Convert PSSH between PlayReady & Widevine
Extend the reach of your existing encrypted library if it’s been packaged for a single DRM system only. Content previously packaged as Smooth Streaming with PlayReady-only signaling can also be used on Widevine DRM platforms. Likewise, content packaged as MPEG-DASH with Widevine-only signaling can also be used on PlayReady DRM platforms.
We allow on-the-fly content playback with no server-side changes needed as everything is handled client-side including: PSSH box conversion, video decoder initialization, and dynamic fragment conversion.
Widevine/PlayReady to WisePlay conversion
Content libraries previously packaged for use with Widevine or PlayReady can also be used with WisePlay giving your media extra reach. Our player can dynamically generate a WisePlay PSSH box on the client side based on existing content data, so Widevine or PlayReady encrypted media can be automatically used on-the-fly.
|Offline DRM & license storage
For different content representations. Includes license pre-fetching.
|Built-in DRMtoday compatibility
|Audio, video, & subtitles
|WebVTT, TTML (SMPTE-TT, DFXP, IMSC), SRT, DVB subtitles
With images for IMSC & SMPTE-TT
No IMSC image support
FCC compliance interface & preview UI
The USA FCC requires that players must include the ability for users to set subtitle parameters such as font, font size, color, etc. We provide an API to easily configure these settings as well as a user preview.
Subtitle track sideloading
Sideloading allows you to add additional URLs as subtitle tracks. This means you can add subtitles without embedding the track into your manifest. For example, if you receive subtitles for content and they aren’t part of the manifest, you can sideload them for use without having to re-create your manifest.
We support multithreaded rendering where operations are offloaded to different threads for added efficiency. We also provide decoder buffer management enhancements. This improves performance by reducing stuttering and dropped frames, particularly with high framerate content or on low-end devices.
With multithreading & improved render balancing
Allows you to ‘pass-through’ audio track data to external connected devices. For example, if you deploy to an Android TV STB, the box itself may not support a desired audio codec (for example Dolby 5.1), but if the connected TV does support it then our SDK allows you to ‘pass’ the track to the TV to leverage its decoder.
Allows you to control the audio volume independent of the device’s system volume. This feature is mainly used to mute an audio track without interfering with a user’s volume settings (for example during ad playback).
|Video & audio codecs
Example: H.264, H.265, VP9, AAC, AC3/EAC3
|Uses device supported codecs
|Uses device supported codecs
|SD/HD/4K/8K+, HDR10/HDR10+/Dolby Vision
On supported devices
|IAB VAST seamless ad insertion via Google IMA
Manual ad scheduling
If you’d like to avoid VMAP, you can use our API to manually set when ads are played within the playback timeline.
Hide/show player during ads
|IMA Dynamic Ad Insertion (DAI)
|Server-side ad insertion (SSAI) with leading vendors
With impression quartile reporting, trick play, and multi-period support for MPEG-DASH.
|Broadpeak Video Analytics
|Conviva Experience Insights
We constantly update our SDK, so more updates are on the way!