[object Object] Icon

Encoding
Learn how to create, start, manage and modify Encodings

[object Object] Icon

Player
Learn how to create, start, manage and modify Players

[object Object] Icon

Analytics
Learn how to create, start, manage and modify Analyticss

Docs Home
User shortcuts for search
Focus by pressing f
Hide results by pressing Esc
Navigate via   keys

Player Web Releases

Latest Releases

Date

Version

Stable

2/8/2019

8.2.1

Fixed

  • timeShift with a positive timestamp parameter
  • Filtering of unsupported ad media types

Stable

2/4/2019

8.2.0

Adds support for Samsung Tizen 2016 SmartTVs and VPAID support to the Bitmovin Advertising Module.

Added

  • Support for linear VPAID ads when using the BitmovinModule for advertising
  • Tizen Module which implements workarounds for Samsung Tizen TV specific shortcomings and issues
  • Support for HLS Live streams with #EXT-X-DISCONTINUITY tags but without #EXT-X-DISCONTINUITY-SEQUENCE
  • VideoQualityAdded, VideoQualityRemoved, AudioQualityAdded and AudioQualityRemoved events
  • Dynamic removal of non-playable qualities due to unusable keys from Widevine DRM licenses
  • Support default sample duration specified in tfhd box of fMP4
  • Time synchronization config as part of the LiveConfig
  • VAST MediaFiles and NonLinearAds are now being chosen in a better fitting quality

Changed

  • Default overlay ad positioning
  • Updated bundled Bitmovin Analytics to v2

Fixed

  • Handling of SegmentTemplate on Representation level
  • PlayerEvent.StallStarted occurred between Play and Playing
  • Setting the playback speed in pause state in IE11
  • HLS subtitle playlists could lead to an incorrect stream duration
  • Wrong source being played back after manual setting of video.src
  • Metadata events originating from segments not being fired after seeking back
  • PlayerApi.getManifest throwing an error when used in Safari
  • PlayerApi.getSource not returning the SourceConfig of the main content during an ad
  • Player seeking to wrong position in multi-period SegmentTemplate VOD stream
  • Player could enter an endless loop when pre-roll ads were available and autoplay was blocked
  • Ads just showing a black screen on iOS when using the IMA Advertising Module
  • Endless loop when some ads were clicked

Stable

1/24/2019

8.1.1

Fixed

  • Companion ads not being displayed correctly using the Google IMA SDK
  • Ignored config.location.google_ima
  • Skipped pre-roll ad break in IMA ads module if playback was blocked
  • Attempted to play flash media from VAST tags with video element in Bitmovin Ads Module
  • isPlaying returning true after a blocked playback attempt with Bitmovin Ads Module
  • AdBreak.scheduleTime sometimes being null inside the AdBreakStarted event when using the Bitmovin Advertising Module
  • Incorrect handling of ad pods containing ads with errors

Stable

12/21/2018

8.1.0

The Bitmovin Advertising Module was added, which removes the requirement of using the Google IMA SDK for ad parsing and playback, along with support for VAST 4.1 features such as Ad Verification.

Added

  • Bitmovin advertising module
  • VAST 4.1 AdVerifications support. The parsed AdVerifications tags of a given VAST manifest are now available on the new verifications property of the corresponding Ad
  • Support for seamless AdaptationSet switching for AdaptationSets with identical group and codecs
  • BufferConfig, PlayerBufferAPI.setTargetLevel and PlayerBufferAPI.getLevel API that can be used to limit and view the forward buffers for video and audio separately
  • Fairplay key rotation support
  • Support multiple init segments within one HLS media playlist
  • Ad tag placeholders (macros)
  • AdManifestLoadedEvent will now also be fired for AdTagConfigs like VMAP
  • AdManifestLoadedEvent.adConfig, which includes the ad tag that was downloaded. Useful for ad tags that do not result in an AdBreak like VMAP tags. In that case AdManifestLoadedEvent.adBreak is set to null.
  • AdManifestLoadedEvent.downloadTiming, which specifies how long it took for the ad tag to be downloaded. PlayerDelegate.metadataLoaded received a new parameter downloadTiming in order to pass the information along to the event.
  • The AdError now includes the AdConfig that caused the error. PlayerDelegate.onError received a new adConfig parameter to pass the AdConfig along to the event
  • PlayerAdvertisingAPI.getModuleInfo, which returns the name and version of the currently used advertising module
  • Support for seamless AdaptationSet switching for AdaptationSets with identical group and codecs
  • PlayerAdvertisingAPI.getActiveAd which returns the currently active ad
  • Parsing HEVC codec parameters from ISO BMFF segments
  • getSupportedTech API method extended with SupportedTechnologyMode parameter to query supported technologies of the loaded player modules

Changed

  • PlayerAdvertisingAPI.skip now removes the currently active overlay ad.

Fixed

  • player.getCurrentTime not returning the current time of the currently active linear ad
  • AdError.data.code sometimes being undefined
  • A few seconds of content being skipped after playback of SSAI ad
  • Unsmooth audio track switching
  • Wrong player technology (native.hls instead of html5.hls) being chosen per default on Tizen TVs
  • HLS stream with incorrect segment durations not being played back until the end
  • Playback of PlayReady protected HLS streams only specifying the WRMHEADER instead of a full pssh box
  • Closed captions being out of sync in live-streams with multiple discontinuities
  • Timeout defined in AdvertisingConfig.videoLoadTimeout not always being respected

Known Issues

  • No VPAID support yet with the Bitmovin Analytics module (the Google IMA module can be used to resolve this for now)

Deprecated

  • TweaksConfig.max_buffer_level: please use BufferConfig instead
  • getVideoBufferLength: please use PlayerBufferAPI.getLevel instead
  • getAudioBufferLength: please use PlayerBufferAPI.getLevel instead

Stable

1/23/2019

8.0.5

Fixed

  • Companion ads not being displayed when using the Google IMA SDK
  • Ignored config.location.google_ima

Stable

1/10/2019

8.0.4

Fixed

  • Closed captions being out of sync in HLS live streams with multiple discontinuities
  • Live Smooth Streaming playback
  • View mode switching
  • Ad playback being blocked on iOS when using the Google IMA SDK
  • DASH SegmentTimeline live stream playback
  • VTT subtitle rendering issue due to unexpected order of attributes of X-TIMESTAMP-MAP header
  • stallstarted not being fired on HLS live streams
  • The start time of a HLS discontinuity was added to the video's currentTime if a subtitle playlist was present
  • Unexpected PlayerEvent.StallStarted in live stream startup
  • Switching audio language of live streams after manifest update

Stable

12/12/2018

8.0.3

Fixed

  • Handling of SegmentTemplate on Representation level
  • Last segment check for long SegmentTimeline MPD assets
  • Playback of Fairplay source after progressive source on Safari
  • Uncaught TypeError Cannot read property 'find' of null on period switch for live streams

Stable

11/29/2018

8.0.2

Fixed

  • options.startTime not being respected
  • Snapshot acquisition when native playback technology is used
  • Some overlay ads not getting displayed correctly
  • A MODULE_MISSING warning being triggered for the AdvertisingModule although no ads were specified in the player configuration
  • Gracefully handle missing timing properties in conf.network.sendHttpRequest response
  • Stalling state and events on transition from/to paused state
  • Apply PlaybackConfig.volume and muted at setup and retain state during player lifecycle (no reset on load calls)
  • When doing an in-buffer seek near the end of the stream with unequal audio and video buffer length, no PlayerEvent.PlaybackFinished was fired
  • Uncaught exception if HLS master playlist request is cancelled
  • PlayerEvent.AirplayChanged was not renamed to v8 pattern
  • Subtitles being disabled in Safari directly after they have been enabled when playing back a HLS stream with metadata tracks
  • Trigger PlayerEvent.Playing after play when autoplay rejected beforehand on iOS
  • Reject load in NativePlayer on source error (like HTTP status 404)
  • Missing PlayerEvent.TimeChanged when loading a live asset after a finished VOD asset
  • Exception when post-roll ad is configured but ad blocking is active

Stable

10/18/2018

8.0.1

Fixed

  • getAvailableAudio and getAudio returning more data than specified in the API
  • Backup stream switching for live stream playlist updates
  • Seeking near the end of a Period caused the player to stall indefinitely in Edge
  • Ad playback for Flash
  • Flash renderer overlaying UI
  • Widevine license requests having no headers
  • Remove poster when source is unloaded
  • PlayerSubtitlesAPI.list sometimes returning null instead of empty array
  • Single file subtitles with multi-period manifest
  • Detection of PlayPromise in Safari
  • Transition from non DRM to DRM period
  • Problems with start time calculation on live streams
  • Improved initial time calculation for multi-period SegmentTemplate live streams
  • Playback issues when loading another DRM source
  • Init segment not downloaded when timeshifting during request
  • fMP4 media playlists playback
  • Resetting playback speed when switching video quality of multi-quality progressive sources
  • Player getting stuck after switching the audio track with multiple periods / discontinuities
  • Endless buffering on SegmentTimeline live manifests with very short periods

Stable

9/11/2018

8.0.0

This release shifts the architecture to a modular approach, which enables one to build a player dynamically with a specific required feature set. It also adds Bitmovin Analytics as a player module for easier setup.

Added

  • Modules & Modules API
  • Analytics module included per default in full player build
  • PlayerEvent.ModuleReady when a public API of a module becomes available
  • Config.ui to disable UI or pass UIConfig to player-managed UI via the UI module
  • ViewMode API: getViewMode, isViewModeAvailable, setViewMode & PlayerEvent.ViewModeChanged
  • SourceConfig.subtitleTracks[] to specify external subtitle tracks
  • player.getContainer retrieves the HTMLElement the player is embedded in
  • PlayerEvent.DownloadFinished.timeToFirstByte event property
  • PlayerAPI.getSource(): SourceConfig | null
  • PlayerSubtitlesAPI in player.subtitles namespace
  • PlayerErrorCode, PlayerError, ModuleName and PlayerModuleMissingError exports
  • TypeScript type definition files
  • PlayerEvent.DownloadFinished is now also fired for ad manifests

Changed

  • The new and more performant ABR logic v3 is now activated by default
  • No Player API call returns the player object anymore
  • player.play() now returns a promise which resolves when playback actually starts
  • PlayerAPI.unload(): Promise<void> return value
  • HTTP header array structure to simple headers object
  • No PlayerEvent.Paused before PlayerEvent.PlaybackFinished
  • native-flash configuration moved from config.drm.access to config.nativeflash
  • player.setVolume() now no longer changes the muted state
  • Remove player.setLastSegment()
  • Remove preferred_audio_codec_order and preferred_video_codec_order tweaks (use PlaybackConfig.audioCodecPriority/videoCodecPriority)
  • PlayerAPI.getThumb() was renamed to PlayerAPI.getThumbnail(), Thumbnail property w was renamed to width and h to height, property i was dropped.
  • player.isPlaying() only returns true once playback has actually started on the media element
  • Converted Player to class (instantiate with new), setup method removed and logic moved into constructor
  • Moved Event and LogLevel exports out of Player object to root namespace
  • Stall events not triggered anymore on initial play and seek/timeShift
  • Change SourceConfig.tracks[] to SourceConfig.thumbnailTrack
  • PlayerEvent.PlayerResize renamed to PlayerEvent.PlayerResized
  • Take SEEK_TO_END_OFFSET into account when applying startOffset
  • Renamed PlayerAPINotAvailableException to PlayerAPINotAvailableError
  • VR starting position (0°) to be in the center of the video frame instead of the left edge
  • Every advertising-related error now has only the AdError event associated with it and not a mix of Warning and AdError
  • Completely reworked the AdvertisingConfig and advertising-related player functions. The new Advertising API is available in the ads namespace on a player instance after a source has been loaded.
  • Smooth Streaming manifest errors are now fired as SOURCE_MANIFEST_INVALID
  • Unknown mime types in the manifest will only cause a warning log message instead of an error.
  • WarningMessages became WarningCode enum
  • ErrorMessages became ErrorCode enum
  • Rename getDroppedFrames to getDroppedVideoFrames
  • ImaAdBreak.vastResponse now holds a Promise that resolves with the loaded ad manifest
  • Rename bitmovin-player.zip to bitmovinplayer.zip on the CDN

Removed

  • addEventHandler and removeEventHandler methods (use on and off instead)
  • PlayerAPI.fireEvent
  • config.style.ux flag to toggle UI (use config.ui instead, which can also be used to pass a configuration to the default UI)
  • Fullscreen & Picture-in-Picture API (please use ViewMode API instead)
  • Save & restore user settings
  • The player will not create a figure element around the video anymore, removed player.getFigure API call (use player.getContainer instead)
  • config.source (the source has been separated from the player config)
  • search_real_end configuration tweak
  • getAvailableLicenseServers and getAvailableImpressionServers

Fixed

  • PlayReady header parsing
  • Player not being able to play back content in WebKit browsers without play-promise such as Samsung Tizen SmartTVs
  • Missing PlayerEvent.Metadata from raw AAC audio segments
  • DRM playback using WebKit-prefixed Encrypted Media Extensions (EME)
  • PlayerEvent.PlaybackFinished being fired before post-roll ads finished
  • VR events not being fired
  • Playback not starting after initial play call on Safari
  • Loading a new source after playing back a DRM protected source
  • Handling of unexpected behavior of the HTMLVideoElement's play promise introduced in Edge 17
  • VMAP manifest parsing in Edge
  • Calling play and pause in load().then in Edge left the video playing

Known Issues

  • Ad playback is only supported via Google IMA SDK at the moment
  • HTTP Headers are not sent for Widevine DRM license requests (PlayReady is not affected)

Latest Releases

Give us feedback