Known Issues: Studio, Brightcove Player and APIs

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

  • The Brightcove Player progress control and volume slider cannot be adjusted by the native gestures of TalkBack on Android. This is due to platform limitations. Instead, a user must interact with the element directly. On Android, a double tap with two fingers will allow the user to adjust the progress or volume to the position of the two finger double tap.
  • On devices, the progress bar may not be in sync for HLS videos, since HLS does not work very well on Android. The total duration of the video may also incorrectly show up as 0:01.
  • There are multiple accessibility issues with the native browser on both phones and tablets for all versions of Android. Talkback does not provide audio and vibration feedback for any of the player controls. (This issue does not apply to the add-on Chrome browser on Android devices, only to the native browser.
  • On devices, the tap events for error messages do not bubble up to the parent video element. This means that you can not close an error message once it appears.
  • On Android devices, when navigating the player menus in the controlbar, such as captions or quality selection, the menu can get "stuck" in the open state following a long press on an item in the menu. This is because Chrome adds the :hover pseudo-class. Another long press elsewhere on the player will typically close the menu.

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

iOS

  • The Brightcove Player progress control and volume slider cannot be adjusted by the native gestures of VoiceOver on iOS. This is due to platform limitations. Instead, a user must interact with the element directly. On iOS, the user must double tap to select the progress bar or the volume slider and then a double tap and hold will allow the user to adjust the time or volume.
  • Safari on iOS never preloads. For details, see the Safari HTML5 Audio and Video Guide.
  • Player error occurs in iOS when switching to another app. When a video in Brightcove Player is played on an iOS device in Safari/Chrome, the player will error out after switching to another app, then switching back to Safari/Chrome after a minute or more.

iPhone

  • Social sharing will not work on iPhones. Since iOS phones switch to fullscreen native, you can't share a video from an iPhone.
  • On iPhones, the tap events for error messages do not bubble up to the parent video element. This means that you can not close an error message once it appears.

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

Windows 8

  • Companion ads are not supported.
  • On Windows 8 tablets, seeking does not work for standard HTML/MP4 playback. It works correctly for HLS tech.
  • On Windows 8 tablets, ads work but companions causes browser to crash.
  • On Windows 8 tablets, HLS, Flash, Live and embed types all supported.
  • On Windows 8 phone, plays MP4, but no Flash or HLS support.
  • On Windows 8 phone, regardless of whether the embed type is iframe or inline, once you hit play, playback will always occur in fullscreen. This means that the overlays do not show up once playback begins.
  • Captions cannot be enabled.

Chrome

  • Issue with renditions that have a low audio bitrate

    Due to a bug on MSE on Chrome browser implementation documented here:

    https://bugs.chromium.org/p/chromium/issues/detail?id=534301

    Playback on that browser for version 5 and above of BC player will fail (showing MEDIA_ERR_DECODE) if the audio profile of the rendition being attempted is different from AAC-LC.

    To avoid this happening on new ingested content, customers need to make sure they either

    • use an audio bitrate equals or greater than 48kbps
    • include the following setting on their DI profile: "max_aac_profile": "aac-lc"

    To avoid this happening on existing content, options are:

    • retranscoding following the above recommendations
  • A request for an HTMl5 video may stay pending and the video never loads. See Google's document on the issue.

Firefox

  • Firefox Browser for Android: Not officially supported, but will try to address bugs if possible.
  • It has been reported Firefox version 42 may have playback issues with Brightcove Player. The issue seems related to the settings of the Firefox Use Hardware Acceleration settings. When this is checked (enabled), the video player will playback the audio only, and will show a still image only. The solution to this problem is to disable this option as follows: Options -> Advanced -> General -> (UNCHECK) Use Hardware Acceleration When Available
  • The Brightcove Player may timeout on Firefox if the first frame of your video content has a starting presentation timestamp (pts) greater than 0. The current recommended solution is to re-encode your content. Note that re-encode does NOT mean re-transcode. The original master will need to be re-uploaded. If this does not fix the problem, contact customer support for further assistance.

Internet Explorer

  • Captions set to automatically display on the video (checking the "default" setting for a caption in the Media Module) do not work with IE11
  • Videos with audio above 48khz will fail during playback on Edge and IE11 on Windows 8 and Windows 10. This is a Microsoft limitation. See this Microsoft document for more details.
  • IMA3 Flash ads work better on IE. Google IMA3 does not supports Flash and HTML ads on IE, but in our testing, we have found that the Flash SDK is much more robust at this time.

Safari

  • No known issues

IMA3

  • When using Google IMA3 skippable ads the Skip ad buttons do not have tab indices, so keyboard navigation to those buttons is not possible. Hence, viewers who depend on keyboard navigation will not be able to skip the ad.

Brightcove Live

  • When the h264_profile is set to baseline or the h264_profile is not added to the Job request, it causes an issue on Windows 10 using Firefox v57.
  • When the end of a live stream is reached, the player may display a PLAYER_ERR_TIMEOUT error.