{{ page.title }}

{{ page.summary }}

Identified known issues include:

Studio

Using Chrome's Translation feature breaks some Studio functionality
Using Chrome's translation feature to translate Studio modules will cause some functionality to break.

Media Module

Image Capture with IE 11
Image capture using IE 11 will not work when the video aspect ratio is 1:1 or 4:3.
Source file name containing double byte characters
Source file name containing double byte characters gets garbled after retranscoding in the media module.
Media Sharing

When sharing large numbers of videos, Brightcove recommends sharing at most two pages of videos at a time. Sharing a large number of videos at once may cause a timeout error.

Adding captions to a video that was shared which already contains captions is not supported.

Media sharing will fail for videos created by clipping live streams.

Scheduled Videos
Because the Playback API and Catalog cache videos for up to 10-15 minutes, a player requesting a video scheduled to become available during the next few minutes (up to 20) may not be able to get a playable video until the cache refreshes.

Players Module

Preload setting
Due to a bug in Internet Explorer, the preload setting may be ignored when using IE.
Access Data Sources Across Domains setting
If this Internet Explorer policy setting is enabled for a domain-restricted Brightcove player, the player will not load in Internet Explorer 11. This appears to be a bug in IE, and there is no known workaround. Turn this setting off if you want domain-restricted players to work in IE 11.

Live Video

Recurring events still published when inactive show the last 3 segments of playback
If an SEP recurring event is still published on a page and the client is not currently streaming and the result is that the last 3 segments (about 18 seconds) are cached and will play back.

Workaround

One way of preventing this is to implement a Live custom error message in the player by adding plugin including code some like the following:

// Listen for a change on the durationmyPlayer.on("durationchange", ()=>{
// Save the duration to a local variable
var duration = myPlayer.duration();

// Check if the duration is a finite number (VOD)
// or if it's infinite (Live).
// If it's a VOD it would mean that the recurrent stream is over
// and the custom image would be displayed.
var isLive = !Number.isFinite(myPlayer.duration())

if(!isLive && duration !== 0){myPlayer.pause();myModal.open();
Brightcove Player counting video views for finished live events
The Brightcove player accounts for video_view every time a remote asset is loaded, even if it's a finished live event with an empty or no longer retrievable HLS playlist. Workaround: deactivate, unschedule, or delete the video.

Audience Insights

Server-Side Ad Insertion (SSAI) - preroll ads

Issue

When seeking playback to the beginning of a video with a pre-roll ad, the ads-ad-ended and ads-pod-ended events will fire.

Work-around

A possible work-around would be to use

player.currentTime(0.1)

instead of this

player.currentTime(0)
 

Analytics

The Total Bandwidth report available only for legacy ingest videos
The Total Bandwidth data field is not currently available for Dynamic Delivery, so this option for custom reports will not be available.
Analytics data may not be accurate due to ad blockers
Analytics data (obtained both through the UI and API) may be inaccurate because of ad blockers such as UBlock blocking the submission of analytics data on client machines.
Custom Reports Displaying 0 bytes_delivered for some Videos
Videos that were ingested using a Dynamic Delivery ingest profile will display 0 bytes_delivered on custom reports.
Custom Reports using Multiple Filters
When using multiple filters, an AND operation will be used. For example, if you add two filters, video tag and player, only videos with the specified tags and viewed in the specified player will be returned.
Custom Reports using the Filter by Video Tag functionality
When creating a custom report, there is a limitation when using the Filter by Video Tag functionality. It only takes into consideration up to 2,000 videos in your library with that specific tag. If the amount of videos with a specific tag is greater than that, we recommend to get an unfiltered report which includes the tags and perform the filtering locally with your spreadsheet software.
"Other/Third Party" Appears in Performance Report
When a video that is not your Video Cloud library is played in a Video Cloud player (e.g a remote asset), Other/Third Party will be displayed with no associated video ID.
Updated Video Names not Reflected in Analytics
The only time Analytics learns about the title of a video is when the player sends it to Analytics as part of the playback beacon. If a video title is changed, analytics will not have the new video title until there has been a video playback. This can result in a scenario where a video name is updated and if there are no playbacks recorded, the old video name will be reflected in the Analytics reports. Data for time periods before March 2013 suffer from this issue often, and will show metadata that is only a number. For example, a video title might display as 1230123012. This is because data from this period was captured in the old analytics system.
Video Names and Player Names Displaying ??????? in Analytics UI
For the month of October 2013, the metadata (video names and player names) may look like a bunch of ?????s. This issue impacts publishers whose metadata has double byte characters and had video views in October 2013. This issue was related to the way that we were capturing the metadata for display in the Analytics UI. Starting in November 2013, the Analytics system has additional safeguards in place to prevent metadata sent with the event metrics from being corrupted.
Reporting Time Zone
The reporting time zone is used to calculate day boundaries for reporting data. Changing the reporting time zone setting only affects data going forward, and changes are not applied retroactively. If you change this setting, you may see a flat spot or a spike in your data when looking at day boundaries where the change was applied. Updates to this setting may not take effect immediately, and analytics data may continue to refer to the old setting until the system processes the changes.
Engagement data are stored in daily granularity
Engagement data are stored in daily granularity using UTC time and might sometimes include 2 full days of data in the "Audience at x%" table in the Engagement Report.
Internet Explorer Support
The Analytics module requires Internet Explorer 11 or later.
High number of "other" results for Device Manufacturer
In some cases, you may see a high number of "other" results for the Device Manufacturer This occurs when the Data Collector does not recognize the user_agent delivered to it with analytics data. The most common cause that we have identified for this is a custom user_agent string created by Instagram, but there are probably others.
iframe tag only reports "Direct" on Traffic reports.
Traffic source is determined from the HTTP Referrer header. When using the iframe tag, HTTP referrer value is "players.brightcove.net/...", which is classified as 'Direct' on the Analytics module Traffic source data. Please use the in-page video tag to get the correct traffic source type.

Audience

Audience activity shows Percent Watched:0 and Time Watched:0
Sometimes interactivity events get triggered without a video playing or before a video has sent its first beacon. This can result in view events being recorded that have interactivity but no video activity (0% watched, 0 seconds watched).
Internet Explorer Support
Audience lead forms require Internet Explorer 11 or newer.

Social

Ghostery browser plugin may interfere with the Social module

The Ghostery browser plugin may interfere with the Social module preventing it from loading properly.

Workaround: Add Studio to the whitelist for Ghostery.

Upload module / Dynamic ingestion

Uploads via the upload module fail if the clock on the device doesn't match the actual time
Uploads are authorized for a certain amount of time. If your clock time varies from the actual time by more than 15 minutes, you will receive errors when uploading.
Retranscoding via Dynamic Ingestion updates the video activation date
When you retranscode a video using Dynamic Ingestion, the activation date for the video is updated to the current date. If you use Smart Playlists ordered by activation date, this will affect the order of the videos in the playlist.
File names
Video file names (including the extension) must not exceed 120 single-byte (60 double-byte) characters. If it does, the video will be ingested successfully, but you will not be able to retranscode it later.

Brightcove Player

Check the Brightcove Player Release Notes to see if a past known issue has been corrected by a recent release.

DRM protected videos cannot be played in the Facebook app's web viewer
If a Facebook user posts a message with a link to a page that contains a Brightcove player and the video(s) are DRM protected, other users clicking on the link within the Facebook app will see the page within the Facebook web viewer, which does not support DRM, and the video(s) therefore will not be played.
The playback speed button was added to Safari 15
Brightcove does not override user preferences, and beyond that Apple states This property can not be set for HTML5 audio/video elements on iOS.
Using element ids that start with a number causes problems with CSS and JavaScript (document.querySelector)
CSS rules based on an element ID or JavaScript trying to get a reference to an element using the document querySelector() or querySelectorAll() methods will fail if the element ID starts with a number. There is a painful workaround but the better solution is to avoid doing this.
Controlbar of Player does not disappear on Windows 10 touch-enabled PC in fullscreen mode
No known workarounds.
Elements with id Set to default
Brightcove Player is known to behave poorly if there is an element with id="default" on the page. The blog post DOM: element IDs are global variables explains why this is an issue. One common symptom of this problem is the MEDIA_ERR_UNKNOWN error.
Ads blocked on Safari and/or iOS
Changes made by Apple to cross-origin policies for Safari and iOS may result in ads not playing.

Workaround

We have resolved this issue for SSAI by adding additional CORs headers. If you are using client-side ads, this will not address the issue, as the CORs headers have to be sent from your server or hosting service. The headers we added are:

access-control-allow-headers: Server,Range,Content-Length,Content-Range
          access-control-allow-headers: X-Requested-With,Origin,Range,Accept-Encoding,Referer
          access-control-allow-methods: GET,HEAD,OPTIONS
          access-control-allow-origin: *
Console warnings

Brightcove Player may generate warnings that appear in browser's console. The warnings, as opposed to error messages, are harmless and do not effect play back. An example of a warning is displayed here:

console warning
Videos without poster or thumbnail images
Videos without thumbnail / poster images may cause an error to appear in the player when it loads. This affects mobile SDK players in a way that may crash the player.
Internet Explorer always resets its playback rate to 1.0 whenever playback is paused.
This will no longer be an issue in Safari 14 (Big Sur version).
IE11 images for audio only content not displaying
When playing only audio content in IE11, the video still image will not be displayed, only a black screen is seen. The image can be retained with the following code:
  .vjs-has-started .vjs-poster {
  display: block;
  }
  
Auto-Advance Playlist on Safari
For Safari, if the playlist is visible, and the player has the pre-load setting set to none, automatic playback of the next video will fail silently.
Apple user settings prevent the Brightcove player from auto-display the captions
Auto captions for iOS can be made by making changes in System Preferences > accessibility > captions > then select the Prefer closed captions and SDH checkbox.
Context Menu
When right-clicking a video close to the right or bottom edges of a player, the player context menu displays off-screen.
Using different sized multiple players with the same player_id on a page

If multiple players have the same id on one page and specify different size inside <video> tag using width and height attributes, the player CSS from the last player is applied to all players.

Workarounds

  • Use players with a different player ids if you want them to have different sizes or styling/li>
  • Define a classes for the players that provide the player sizing using CSS, and add the classes to the video tags for the different players
FastClick.js results in incorrect event handling
Using the FastClick.js results in incorrect event handling within our custom control bar. This may result in not being able to use our control bar on mobile devices.
Videos display greyish on Chrome and Firefox

When using Chrome and Firefox, videos in the Brightcove Player may display with a greyish color. This can be due to hardware acceleration and/or NVIDIA driver settings.

Workaround: Open the NVIDIA Control Panel. Under Video select Adjust video color settings. Under How do you make color adjustments select With the NVIDIA settings. Under Advanced make sure Dynamic Range is Full (0-255) not Limited (16-235). Dynamic contrast enhancement should be unchecked. This issue has been reported on the Google Chrome Help Forum.

Using emulators

Whether you are using Chrome Device Mode or other emulators to test video playback, be aware that emulators do not accurately represent how an actual device will perform. While you can use emulators for initial testing during development, it is best practice to use real devices for accurate results.

When testing playback with Chrome Device Mode, you may see this message: "The use of Chrome in device mode simply renders the viewport and user agent string of that device in Chrome, which is not an accurate representation of how the actual device will perform."

Using data-setup
You should NOT use data-setup with Brightcove Player. You may see use of data-setup in the API documentation, but this is because that documentation is generated directly from the Video.js player source code, and you MAY use that attribute with the video tag with pure Video.js. The attribute sends configuration information to the player, but Brightcove Player uses a different method to perform this task, which makes data-setup unreliable.
Protocol-aware source selection and DASH
Protocol-aware source selection is not available when using DASH content. It is only available for HLS and MP4 content
Console error thrown when using iframe player implementation in Safari
When using the iframe implementation of Brightcove Player in Safari you will see the following error message in the console: Blocked a frame with origin "https://players.brightcove.net" from accessing a frame with origin "#DOMAIN NAME#". Protocols, domains, and ports must match. The reported error does not affect playback.
"Unknown" is displayed in the captions menu in Safari.
This is a Safari/Apple limitation. Newer versions of the Brightcove Player use native captioning capabilities built into Safari and this is the standard behavior. This is documented by Apple: https://developer.apple.com/library/ios/qa/qa1801/_index.html
Fullscreen in non-Flash environments

In environments where Flash is disabled or Flash-based HLS is disabled for the player, and the player is explicitly sized using a style attribute on the video tag, fullscreen viewing may not function in some browsers.

Workaround: remove the style attribute from the video tag, and instead create a rule in page stylesheet like this:

  .video-js{
  width:640px;
  height:360px;
  }
  
  
Social Sharing
On desktops, the social sharing button will not be visible during ads.
HTTPS

On most desktop browsers, the Brightcove Player will only play HLS on HTTPS web sites when both the manifest and the video segments are served over HTTPS connections. This is due to recent changes to several browsers that more severely restrict non-SSL content. This affects users of Chrome, Firefox and Internet Explorer on desktop computers. It does not affect Safari users or mobile browsers, and it does not affect playback of MP4 renditions.

We are in the process of addressing this limitation for Video Cloud-managed assets; if you manage your own CDN and transcoding (remote assets), you must configure your CDN to support HTTPS delivery of both manifest and video content.

Full screen display

In newer browsers that support the fullscreen API, it's necessary to apply in-page CSS rules to ensure the player is scaled to 100% when switching to fullscreen. Otherwise, the player will appear at the original size within the fullscreen display. For details, see the Fullscreen display topic in the Size the Player document.

For IE10 and earlier, with no fullscreen API support, a new window will open, but the player will not be sized to fill the window. This is because no styles have been applied to resize the player. Since the window cannot be scrolled, you may only see a section of the website, with no player at all.

Multiple videos are published on a single page with HapYak chapters

When multiple videos are published on a single page with HapYak chapters, an incorrect chapter could be displayed.

Workaround

Use this script: https://github.com/brightcove/gallery-in-page-snippets/blob/master/snippets/hapyakFix.js. However, Flash playback (IE11/Win7) cannot avoid this issue, so the HTML5 fallback needs to be implemented in case of IE11/Win7.

Error: d.off is not a function

This error, caused by a known bug, can occur when switching between different formats, for instance MP4 and HLS, in a player. Until the bug is fixed, you can simply retry the code that is causing the issue. The following code is an example that corrected the error in an app:

  try {
  myPlayer.catalog.load(video);
  } catch (e) {
  myPlayer.catalog.load(video);
  }
  myPlayer.play();
  
  
HLS Video Durations
It is possible that the duration shown in the controlbar may change from initial display. Once all HLS segments are loaded the duration may update.
RequireJS
If you are using RequireJS you MAY have to use the bc() method to instantiate the player. The need to use the method will be determined by how/when the player assets are loaded. See the RequireJS and Brightcove Player document for more information.
referrer_url vs. description_url
The referrer_url value may have different values between iOS and Android devices. Because of this, it is recommended to use the description_url value instead. This value is consistent across all platforms and devices.
loop attribute on Safari
The loop attribute does not work correctly on Safari. You can use the solution detailed in the Brightcove Player Sample: Creating a Video Loop document.
Captions on Safari
Because Safari uses the native capabilities for styling captions, the Captions Settings menu option is not available in the the CC menu on Safari browsers (both iOS and macOS).
Using an HTML element id named global
You should not nest your advanced (in-page embed) player implementation code in a parent <div> tag with an id assigned the value global . This causes issues with Brightcove Player.
Player version 5 icon issue
Brightcove Player version 5 uses the same icon for both chapters and subtitles. Since version 5 is in maintenance mode, and this being a cosmetic issue, it is doubtful the issue will be addressed.

Brightcove Player Plugins

You will be linked to the particular plugin document so see the known issues for a plugin. Since version 5 is in maintenance mode, and this is a cosmetic issue, it will not be fixed.

Android

Learn how to create Android apps that utilize the Brightcove Player SDK for Android.

iOS

iPhone

Learn how to create iOS apps that utilize the Brightcove Player SDK for iOS.

Windows 8

Chrome

Firefox

Internet Explorer

Safari

IMA3

Brightcove Live