Jump to Content
Playback
HomeDocumentationRecipesAPI Reference
StreamsPlaybackEncodingBitmovin DashboardPlayback
Documentation
StreamsPlaybackEncodingBitmovin Dashboard
HomeDocumentationRecipesAPI Reference

Player SDKs

  • Introduction
  • The Bitmovin Dashboard
    • Managing Player Licenses
      • Third Party Licensing
    • Testing your streams
    • Managing your organization & team access
    • Managing multiple organizations
    • Managing API Keys
    • Changing your login credentials
    • Managing your subscription
    • Managing your payment & billing details
    • Enabling usage reports
    • Enabling 2-Step Verification
    • Setting up SSO with Okta via SAML
  • Supported Platforms & Devices
    • Supported Streaming Formats
  • Lifecycle Policy
  • DRM Support
  • Advertising Support
  • Casting Support
    • CAF Support
  • Low Latency Support
    • Fundamentals of LL-DASH and LL-HLS
  • Subtitles & Captions Support
  • Thumbnail Preview Support
  • Multiview Support
  • Bitmovin Player UI
    • UI Configuration
      • Timeline Markers
      • Localisation
      • Custom error messages
      • Build a custom UI structure
    • Customising the UI
      • Apply your branding
      • Add a custom Button component
      • Player UI CSS Class Reference
      • Using a customized UI
    • UI Framework
      • UI Architecture
      • Lifecycle of a UI instance
      • Player communication
      • Mobile SDKs support
    • FAQs
      • Which player UI configuration should I use?
      • How to enable recommendation UI
      • Why is the full screen player UI different with iOS and other devices?
      • How can I change the labels for video/audio qualities or subtitles in the settings menu?
      • Can I hide the "playback speed" menu of the player UI?
      • How do I disable auto-hiding the control bar?
      • Why does `enterfullscreen` require a user gesture?
      • Why is there sometimes no settings button in the control bar?
      • How to add Timeline Markers on Mobile
  • Bitmovin Player Integrations
  • Bitmovin Player Accessibility
  • Guides
    • Migrating from another Player to the Bitmovin Player
    • Network API
      • Network API - HTTP Request/Response manipulation
      • How to send cookies along with requests in the Player SDKs
    • Casting
      • How to debug streams on Chromecast devices
      • How to enable Chromecast support
    • Analytics
      • How to activate the Player and Analytics bundle in the Bitmovin Dashboard
      • Using Bitmovin Player events for custom metrics reporting
    • Smart TVs
      • Smart TVs configuration and best practices
    • Playback
      • How to Setup VR and 360° Video Playback
      • WebVTT based thumbnails
      • Automatic CDN switching
      • How can I utilize the CDN fallback feature of the player?
    • Improving Video SEO With Bitmovin player
  • FAQs
    • DRM
      • How does offline DRM work on Bitmovin?
      • Why can't I play DRM protected streams in Chrome?
      • Why is my DRM stream only working on real, physical devices?
      • Does one DRM standard work across all devices?
      • Does DRM work on iOS in Chrome/Firefox browsers?
      • Why does the playback of 360°/VR content with DRM not work?
    • Advertising
      • Is Bitmovin Advertising Module (BAM) certified with IAB?
      • Are there known limitations with the IMA SDK Integration?
    • Licenses/Billing
      • What counts as an impression in the player?
      • How can I allowlist a domain, IP, app ID, package name, or bundle identifier?
      • Why does the player show the error message “Your player is not allowed to play on the domain ...”?
    • Playback, Subtitles
      • Does Bitmovin Player support Low Latency streaming?
      • What ABRs do the Bitmovin Player SDKs support?
      • Why are my WebVTT subtitle tracks not in sync with the video?
      • Why are subtitles not shown when casting from Android/iOS to a custom receiver app?
      • Why can't the quality be manually changed in Safari?
      • Why does my VR / 360° not work on iOS devices?
      • Why do I see an additional "CC1" entry in the subtitle menu in Safari/iOS?
      • How can I enable autoplay for a video?
      • Why doesn’t autoplay work consistently on browsers?
      • How can I remove or change the watermark of the Bitmovin Player UI?
      • How can I remove the watermark from the Chromecast receiver?
      • Does Bitmovin Player support Geoblocking?
    • Browsers, Network API
      • Why does the Network API not work in Safari?
      • My Wowza stream does not play in Internet Explorer and Edge anymore using the HTML5 player
      • How do I enable CORS on my web server / cloud storage?
  • Bitmovin GitHub Repositories
  • Bitmovin Community
  • Bitmovin Blog
  • Video Glossary

Analytics

  • How to Set Up
    • Analytics Web Collector
    • Analytics Android Collector
    • Analytics iOS/tvOS/visionOS Collector
    • Analytics Roku Collector
    • Bitmovin Grafana Plugin
    • New Relic Analytics Integration
  • Configuration Guide
    • How to set up SSAI tracking
    • Cookies in Bitmovin Analytics
    • How to set up Bitmovin Analytics with Google Tag Manager
  • Metrics and Dashboard
    • Getting started with the Analytics API
    • Getting started with the Api Explorer
    • How to recreate dashboard queries via the API
    • How to create an Alert in the Bitmovin Analytics dashboard
    • Using Top-Errors for debugging
  • Exporting your Data
    • S3 Role-Based Output for Analytics exports
    • GCS Service-Account Output for Analytics exports
    • Microsoft Azure Storage Output for Analytics exports
    • Analytics Live Exporting via Google Pub/Sub
  • Supported Platforms and Devices
  • Native Collector API v3
    • iOS Collector Migration Guide from API v2 to v3
    • Android Collector Migration Guide from API v2 to v3
  • Articles
    • Analytics API Fields
    • Analytics dashboard metrics reference
    • Data Aging in Bitmovin Analytics
    • Segmenting your audience
  • FAQs
    • What counts as an Analytics impression?
    • How can values of customData fields be changed?
    • Which metrics related to the startup time are collected by Bitmovin Analytics?
    • Total Hours Watched Metric
    • Average View Time Metric
    • Can I change the timezone used for Bitmovin Analytics data?
    • How we measure concurrent viewers
    • How can I select which license shows up first when entering the Bitmovin Analytics dashboard?
    • What is the length limit for fields?
    • How often do you update your Kotlin Version?
    • Overriding bundled Bitmovin Player v8 Analytics collector
    • Can Bitmovin Analytics URLs be shared?
    • Are there any limitations on full data exports?
    • How does Analytics distinguish between VOD and live content?
    • What additional error data can be retrieved in Bitmovin Analytics
    • Do-Not-Track Handling in Analytics
    • What is an ANALYTICS_VIDEOSTART_TIMEOUT_REACHED error?
    • What is an ANALYTICS_BUFFERING_TIMEOUT_REACHED error?
    • How can I export my full data set from Bitmovin Analytics?
    • Custom Data setup on Bitmovin Player v3 for Android and iOS
    • What permissions do I need to set on my S3 buckets for Analytics Exports?
    • How can the userId be randomized for each session of the same user?
    • How to setup Bitmovin Analytics on SmartTVs
    • What is an ANALYTICS_QUALITY_CHANGE_THRESHOLD_EXCEEDED error?
    • Is there a sandbox environment to test Bitmovin Analytics?
    • Why do I see a maximum of 50 quality switches within an hour in a session?
    • What are Industry Insights?
    • Licenses in Bitmovin Analytics
    • How we measure buffering in Bitmovin Analytics
    • Is offline tracking of Analytics Events supported?
    • How many custom data fields are included?
    • Analytics Collectors Status and Update
  • Release Notes
    • Analytics Collector - Web
    • Analytics Collector - Android
    • Analytics Collector - iOS
    • Analytics Collector - Roku

Player Web SDK - Browsers, Smart TVs, Set-Top Boxes & Game Consoles

  • Getting Started with the Web SDK
    • Getting started with the Web Player on PlayStation 5
    • Getting started with the Web Player on PlayStation 4
    • Getting started with the Web Player on LG webOS
    • Getting started with the Web Player on Samsung Tizen
    • Getting started with the Modular Web Player
  • Utilities for Web Player integration
    • Player Configuration
  • DRM
    • Streaming DRM protected content with Bitmovin Player Web SDK
    • How does FairPlay work?
    • Setup using multiple DRM solutions
    • How to play MPEG-CENC ClearKey content
    • Playing protected content with DRM.cloud
    • Playing protected content with Irdeto
    • Playing protected content using BuyDRM
    • Playing DRMToday / Castlabs protected content with the Web Player SDK
    • Playing protected content with EZDRM
    • Playing protected content with Conax DRM
    • Playing protected content with Nagra DRM - Web
    • Playing protected content with Kaltura
    • Playing protected content with Sigma DRM
  • Advertising
    • Setting up Ads with the Web Player
    • Using Google DFP Video Ads
    • Changing the locale language for ads
    • How can I show a UI when ads are paused by the IMA SDK?
    • How can I access the IMA-SDK of HTML5 player
    • Integrate the Open Measurement SDK
    • Updating Ad render settings with the Web Player
  • Low-Latency
    • Stream Requirements for Low-Latency Streaming
    • Configure the Player for Low-Latency Streaming
  • Integrations
    • Integrating Bitmovin Player with Teleport
    • Integrating Bitmovin Player with Streamroot
  • Examples
  • FAQs
    • How to change request timeout in the Bitmovin Web Player
    • How to add external subtitles to the Bitmovin Player
    • How to import player modules?
  • Release Notes (Web)

Player Android SDK

  • Getting Started
  • Migrating from ExoPlayer to the Bitmovin Player
  • DRM
    • Streaming DRM protected content with Bitmovin Player Android SDK
    • Playing protected content with Nagra CONNECT - Android
    • Nagra Connect License Pre-delivery
  • Setting up Ads with the Android Player
    • Setup advertising with Google IMA
    • Setting up Companion Ads
    • VMAP and ad playlists
  • Network API
    • Customizing HTTP Request Retries
  • Offline Playback
  • Setting up basic Google Cast Support
  • Setting up Picture-in-Picture with the Player Android SDK
  • Media Session Integration
  • Logging in the Android Player SDK
  • Examples
  • FAQs
    • How often do you update your Kotlin Version?
    • Can I use Media3/ExoPlayer and the Bitmovin Player Android SDK in the same project?
    • How can I use custom labels for audio or subtitle tracks?
    • How can I specify a custom Bitmovin Analytics Collector version?
    • What IMA SDK versions are compatible with the Bitmovin Player Android SDK?
    • How can I prevent screen turning off or entering ambient mode during video playback?
    • How do I enable debug logs in the Bitmovin Android Player SDK?
  • Release Notes (Android)

Player iOS, tvOS, VisionOS SDK

  • Getting Started
  • Listening to Events
  • Offline Playback
  • Troubleshooting
    • Player Related iOS, tvOS and visionOS System Errors
    • Logging in the iOS & tvOS Player SDK
  • Network API
    • Manipulating HTTP Requests
    • Manipulating HTTP Responses
    • Customizing HTTP Request Retries
    • (iOS) Networking FAQ
  • DRM
    • Working with DRM providers
    • Playing protected content with Nagra DRM - iOS
  • Migrating from AVPlayer to the Bitmovin Player
  • Picture-in-Picture without using the Bitmovin Web UI
  • Watch content together with SharePlay
  • Setting up Ads with the iOS Player
    • Setup advertising with Google IMA
    • VMAP and ad playlists
  • Configuring Now Playing Information
  • Examples
  • FAQs
    • How to play DRM-protected sources when casting
    • How to let audio play when the iOS device is in Silent mode?
    • What IMA SDK versions are compatible with the Bitmovin Player iOS & tvOS SDK?
    • Dealing with expiring streams while the app is in the background
    • How do I enable debug logs in the Bitmovin iOS & tvOS Player SDK?
    • Why are forced subtitles not displayed on iOS?
  • Release Notes (iOS)

Player Roku SDK

  • Getting Started
  • Migrating from Native Video Node to the Bitmovin Player
  • Guides
    • Troubleshooting and Error Handling
    • Playing DRMToday / Castlabs protected content with the Roku Player SDK
  • Examples
  • Release Notes (Roku)

Stream Lab

  • Introduction
  • Supported Platforms & Devices
  • Test cases
  • Regular Tests
  • Manual Tests
  • Guides
    • Adding a stream
  • FAQs
    • What is a test environment in Stream Lab
    • How long are test results retained?
    • Can I test geo-restricted streams?
    • Can I provide custom DRM headers?

Player React Native SDK

  • Overview
  • Getting Started with the React Native SDK
    • Setting up your Environment
    • Setting up Dependencies
    • Implementing a basic Player screen
    • Configuring your License
  • Feature guides
    • Advanced playback configuration
    • Accessing the native Player instance
    • Listening to events
    • DRM-protected playback
    • Adding external subtitle tracks
    • Adding external thumbnail tracks
    • Enabling Picture in Picture mode
    • Enabling fullscreen playback
    • Setting up Ads in React Native
    • Enabling Bitmovin Analytics
    • Customizing the HTML Player UI
    • Offline Playback
    • Enabling Google Cast support
  • Contributing to the SDK
  • Logging in the React Native Player SDK
  • FAQs
    • Can the React Native SDK be used to target web browsers?
    • What is the underlying Bitmovin Player Android/iOS SDK version?
    • Which platforms are supported by our React Native SDK?
    • What’s the minimum Android/iOS Version of our React Native SDK?
    • What’s the current underlying ExoPlayer Version on Android?
    • How to let audio play when the iOS device is in Silent mode?
  • Release Notes

Player Flutter SDK

  • Overview
  • Getting Started with the Flutter SDK
    • Setting up your Environment
    • Setting up Dependencies
    • Configuring your License
    • Implementing a Basic Player Page
  • Feature guides
    • Enabling Google Cast support
    • Enabling Picture in Picture mode
  • Contributing to the SDK
  • Release Notes

Player Web X

  • About Player Web X
  • Support Matrix
  • Getting started
    • Packages & Bundles
    • Compatibility with Player Web Version 8.x
  • Features
    • Handling sources through API
      • Simple playback
      • Adding multiple sources
      • Source/Playback API
      • Load control
    • Analytics Package
    • Subtitles
      • Subtitles API
      • Subtitle Events
    • EventBus
  • Create integrations with Packages
  • Release Notes (PWX)

Testing your streams

Suggest Edits

You can see the Bitmovin Player in action in your Bitmovin Dashboard and test your streams including DRM and Ads. Additionally, you can try your stream in our Stream Lab and get detailed test reports on how your stream performs on a variety of physical devices.

💡

Tip

Also, browse our other demos to test your Low Latency streams, Player User Interface Customisation Options, Server Side Ad Insertion and more.

Updated 8 months ago