[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

11/30/2018

8.1.0-rc1

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
  • 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

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

Known Issues

  • No VPAID support yet with the Bitmovin Analytics module (the Google IMA module can be used to resolve this for now)
  • Bitmovin Advertising module has issues on Internet Explorer 11

Deprecated

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

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

9/11/2018

8.0.0

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)

12/12/2018

7.8.12

Added

  • Support for HLS live streams with #EXT-X-DISCONTINUITY tags but without #EXT-X-DISCONTINUITY-SEQUENCE

Fixed

  • When being too close to the live edge, period switching could result in null.find()
  • Restoring of user settings with native adaptive playback (Safari HLS)
  • Closed captions being out of sync in live streams with multiple discontinuities
  • Last segment check for long SegmentTimeline MPD assets

11/30/2018

7.8.11

Added

  • Dynamic removal of non-playable representations due to DRM license errors

Fixed

  • Handling of SegmentTemplate on Representation level
  • Missing ON_TIME_CHANGED event when loading a live asset after a finished VOD asset

11/21/2018

7.8.10

Added

  • Support for seamless AdaptationSet switching for AdaptationSets with identical group and codecs

Fixed

  • Google IMA ad automatically paused on iOS
  • Trigger onPlaying after play when autoplay rejected beforehand on iOS

11/9/2018

7.8.9

Fixed

  • Video element moving within container and overlaying the poster and UI

11/8/2018

7.8.8

Fixed

  • Handle missing timing properties in conf.network.sendHttpRequest response gracefully
  • Missing onPlaybackFinished event if an in-buffer seek near the end of the stream with unequal audio and video buffer length happened
  • Rapid seeking could lead to an exception when accessing undefined.duration
  • Consider excluded technologies when creating a player without source
  • Apply PlaybackConfig.volume and PlaybackConfig.muted at setup and retain state during player lifecycle (no reset on load calls)

Give us feedback