Mux Player for Swift v1.2.0 Released
This version of Mux Player for Swift adds support for requesting instant clips of any video on-demand asset using relative time. We’ve also done a small revamp of our example application.
This version of Mux Player for Swift adds support for requesting instant clips of any video on-demand asset using relative time. We’ve also done a small revamp of our example application.
This version of Mux Player for Android adds support for requesting instant clips of any video on-demand asset using relative time.
Version 1.6.0 of the Mux Data SDK for media3 is now available. This version adds support for Media3 v1.4. We’ve also fixed an issue with verbose logging and another issue with tracking rebuffering time in some cases.
IMA users: If you are using a `VideoPlayerAdCallback` for your app, you’ll need to supply it to `ImaAdsLoader.Builder.monitorWith(...)`. Most IMA users shouldn’t have to worry about this.
This version of Mux Player for Swift adds support for FairPlay Streaming DRM using Mux Video. DRM is an extra level of security against unauthorized viewing or downloading of your content. Once your FairPlay certificate is set up, you can enable DRM playback in Mux Player with just a couple of lines.
Mux Video DRM is in public beta. If you’re interested in participating, please reach out via our beta page to get set up.
This version of Mux Player for Android adds support for Widevine DRM using Mux Video. DRM is an extra level of security against unauthorized viewing or downloading of your content. Once server-side setup has been completed, you can enable DRM playback in Mux Player with just a couple of lines.
Mux Video DRM is currently in public beta. If you’re interested in participating, please reach out via our beta page to get set up.
This version of Mux Player adds support for DRM using Mux Video. DRM is an extra level of security against unauthorized viewing or downloading of your content. Mux Player supports three industry-standard DRM protocols: Widevine, Fairplay Streaming, and PlayReady. Once server-side setup has been completed, Mux Player can play protected assets.
Mux Video DRM is in public beta. If you’re interested in participating, please reach out via our beta page to get set up.
We’ve added new APIs to support error categorization. Error details are no longer deduplicated and are included with each error sent to Mux. Error details are no longer included with non-error events. We’ve also removed several previously deprecated APIs.
We're excited to announce that the Swift Upload SDK is now generally available! The 1.0.0 release includes support for minimizing processing time for Mux Video assets that have 3840p (4K) video resolution. Video input standardization now checks average bitrate levels and the SDK no longer attempts to initiate an upload if it was canceled during standardization. The documentation and example code have been given a refresh.
We're excited to announce that the Android Upload SDK is now generally available! The 1.0.0 release includes support for standardizing video to 3840p (4K) video resolution, minimizing processing time for Mux Video assets. The SDK helps app developers upload large video files reliably even on iffy networks, allowing uploads to be resumed if they are interrupted by network loss or app death. The documentation and example code have been given a refresh.
We’ve fixed a crash occurring when monitoring playback on an iOS or tvOS device with AirPlay enabled. We’ve simplified the error information the SDK emits to no longer include AVPlayer-specific data that wasn’t used or persisted after receipt by Mux.
We’ve included a privacy manifest file in our SDK for monitoring AVPlayer performance analytics. This satisfies Apple’s new requirements for third-party SDKs to outline privacy practices associated with their use. Customers who export data from Mux for additional processing may need to include additional privacy manifest entries with their application subject to their specific practices.
We now offer an option in the dashboard for customers to schedule a research call with our Product team to provide valuable input to our products. Clicking on the banner button will open a Calendly view for customers to select what kind of conversation they would like to have.
We’ve added support for monitoring AVPlayer when using AVPlayerViewController on visionOS. We also fixed a potential memory leak that can occur when monitoring AVPlayer with a fixed player size.
We’ve added support for error categorization in the Objective-C Core SDK. Error details are now sent alongside each error sent to Mux and are no longer deduplicated. Watch time will continue to be recorded after an error event is received based on the playhead progression.
Objective-C Core GitHub Release
Objective-C Core SDK docs: sending error events
We now offer a Microsoft Entra ID (formerly Microsoft Azure Active Directory) integration for single sign-on. If you are interested in using this integration, please contact your Customer Success Manager.
This update for the Mux Data SDK for ExoPlayer adds support for reporting non-fatal and business-related errors to MuxErrorException. We also improved our reporting of ad-loading errors for users of the IMA SDK, and did some miscellaneous maintenance fixes.
This update for the Mux Data SDK for media3 adds support for reporting non-fatal and business-related errors to MuxErrorException. We also improved our reporting of ad-loading errors for users of the IMA SDK, and did some miscellaneous maintenance fixes.
We’ve added support for error categorization in the Java Core SDK. Error details are now sent alongside each error sent to Mux and are no longer deduplicated.The error event API now allows an error context to be set on the error event directly. Watch time will continue to be recorded after an error event is received based on the playhead progression.
We’ve added referential safety checks when the SDK processes SESSION-DATA tags intended for Mux Data. This fixes a crash that may be triggered in v3.5.0 of the SDK earlier.
Mux Node SDK 8.0 supports: Deno, Cloudflare workers, Bun and other non-node JS runtimes. This SDK also has improved TypeScript types, including types for webhook payloads. Version 8 solves the big pain points that we had been hearing from the community. This upgrade comes with significant syntax changes and we have provided a codemod script for upgrading.
See the Github release for more details and a link to the upgrade guide:
https://github.com/muxinc/mux-node-sdk/releases/tag/v8.0.0
This update of the Mux Data SDK for Media3 adds support for Media3 version 1.2.0
. We didn’t have to make any SDK changes for this version of media3, so that’s all there is to report. As always, you can choose to stay on your current media3 version using our version-specific variants.
We’re excited to announce that the Mux Data SDK for Media3 is now out of public beta! Version 1.0.0 of our SDK for Media3 has full feature parity with our ExoPlayer SDK, plus lots of internal improvements and the ability to automatically detect metadata of the media you play. If you’re ready to migrate over from the old ExoPlayer, check out our dev guide to update your Mux Data integration.
Read more:
We’ve updated the Create Environment flow to clarify and provide more options on which users can access an Environment on creation.
More users can be granted access at any time after creation.
We now have 2 new SDKs for handling Direct Uploads from mobile applications. Mux Uploader for iOS and Android have been released in beta. Mux Uploader will handle file splitting and chunking logic to optimize upload speed and in cases of non-standard input Mux Uploader will process the video on the client in order to minimize the time it takes for the asset to be playable after upload.
See more
The API Activity page in the Dashboard can now be filtered by Environment. This new feature facilitates easier searching and troubleshooting of API events.
This will preserve your selected Environment as you navigate throughout the Dashboard.
This update adds the `viewDrmType` property to `CustomerViewData`, allowing you to provide your own values if that fits your use case. There’s also been a few under-the-hood improvements around event handling.
iOS and Android SDKs for Mux Real-Time Video (Spaces) have been released to General Availability. This 1.0.0 release of both SDKs includes new features (Custom Events, Display Names), performance improvements, and bug fixes. Please refer to the GA blog post for more details.
Version 1.2.0 of the Spaces Web SDK has been released. This version adds support for setting, updating, and retrieving participant display names.
Spaces Web SDK 1.2.0 Release Notes.
Guide to using participant display names.
You can now find additional metadata about ad ids and URLs in the adplay, adplaying, adpause, adfirstquartile, admidpoint, adthirdquartile, adended events. The metadata are:
These metadata are surfaced through the Mux Dashboard, Mux Data API, and Mux Data Streaming Export via supported player SDKs, such as Core JavaScript SDK, AVPlayer SDK, Core Java SDK, and Chromecast SDK.
This update to the web SDK for Spaces includes a bugfix for when subscriber
role participants try leaving a Space, error handling when trying to publish no tracks, automatically unpublishing screen-share audio when the browser dialog is closed, and additional documentation for the helper function to create LocalTracks from a MediaStream.
This update to the web SDK for Spaces includes the ability to publish custom events in the session, a helper function to create LocalTrack
s from a MediaStream
, changing the default subscriptions from 20 to 16, and enforcement of published track limits. For more details, see the Spaces Web SDK 1.1.0 Release Notes.
Version 3.2.0 of the Mux Data SDK for ExoPlayer ends the year with a heap of enhancements. We’ve greatly improved our error collection, adding extra context where available and reporting a much larger variety of error codes. We also added 5 more custom dimensions for your views, and started counting dropped video frames during playback.
You can now collect and see additional information for each view in Mux Data. This information can be found via Mux Dashboard, Mux Data API, or View Streaming Exports. The full list of changes include the following:
view_dropped_frame_count
.view_drm_type
metadata. The value is found in the Mux Dashboard by going to a View page and looking for “DRM Type” in the “Video Metadata” section. It is available from the API in the Video View properties as view_drm_type
.player_error_context
to provide additional error instance-specific information that will not impact the default error aggregation. The data can be found in the API, exports, and the Mux Dashboard by going to a View page and it will be shown in the error box on the top of the page.These properties are available for collection in the newest SDKs for Mux-Embed Player, Shaka Player, AVPlayer, HLS.js Player, Dash.js Player, and Roku. The updates for ExoPlayer will be available soon!
Additional Links:
This update of the Mux Data SDK for Roku devices adds detection for the type of DRM license being used (if any), and provides additional fatal error information if available from the player. The key minifier has also been expanded to support a greater number of customer metadata keys, particularly view_dropped_frames_count
, custom6
through custom10
, player_error_context
, and view_drm_type
.
This release of the Mux Data SDK for AVPlayer adds the ability to track the number of dropped video frames in a session, as well as adding 5 more custom dimensions to track whatever data is relevant to you and your audience.
Mux Real-Time Video (Spaces) has been released to General Availability. This update includes updated SDKs for all platforms, multi-region support, user experience report collection, and additional improvements and bug fixes. Please refer to the following for more details:
Version 1.0.0 of the Spaces Web SDK has been released. This version adds user experience reporting, QoS tracking, automatic reconnect handling on poor networks, and additional improvements and bug fixes. For more information: Spaces Web SDK 1.0.0 Release Notes
Mux has released version 7.0.0 of its NodeJS SDK. This release fixes some type issues for customers using TypeScript, and adds some missing module exports. In addition, it adds support for signing JavaScript Web Tokens (JWTs) for Mux Real-Time Spaces. In order to support signing of Spaces, the JWT.sign
method has been deprecated in favor of separate JWT.signPlaybackId
and JWT.signSpaceId
methods.
Version 3.1.0 of the Mux Data SDK is now available. This update adds APIs to override the detected category of a user’s device (phone
, tablet
, kiosk
, drone
, or anything
), as well as things like OS version or device manufacturer. This version also includes a fix for renditionchange
events on ExoPlayer r2.11.x, as well as a fix related to verbose beacon logging.
See our release notes for more information! Full changes can be found here as well.
Version 3.0.0 of the Mux Data SDK for AVPlayer is now available on SwiftPM and Cocoapods. This version adds support for overriding device-related metadata, such as OS name and version, device type, and so on. This update also adds official support for iOS 16, although apple updates have forced us to remove support for iOS versions 9 and 10.
For more information, see our release notes and our development guide
Version 0.9.0 of the Mux Data SDK for IMA Ads is now available. This update also adds official support for iOS 16, although recent updates to Google’s IMA SDKs have removed support for all iOS versions before 12.0
For more information, see our release notes and our development guide, and full changes.
We are announcing the exciting and extensive release of the Mux Data SDK v3.0.0 for ExoPlayer. This update converts most of the SDK to Kotlin, removes long-deprecated methods, and adds API changes. A more simple SDK setup process no longer requires you to specify the screen size of your device. You may now pass your `ENV_KEY` through a constructor instead of supplying it to `CustomerPlayerData`. Finally, we removed exposed internal callback methods that likely will not impact you.
For the full list of API changes, check out the release notes on GitHub.
You can now use npm
to integrate most Mux Data web player SDKs. SDKs are now available in the npm
repository for Shaka Player, JW Player, React Native Video, Kaltura, Bitmovin, Akamai Media Player, THEOplayer, Flowplayer, and Chromecast, in addition to the existing SDKs for HTML5 Video Element, HLS.js, Dash.js, and Video.js. Please visit the Mux docs page for the specific player SDK to learn more about how to integrate and deploy Mux Data with your player.
This update fixes player size and full-screen detection for users who are using MuxStatsExoPlayer.setPlayerSize()
to manually override the detected size of their player. The method now takes physical pixels, as documented. If you are using MuxStatsExoPlayer.setPlayerSize()
, you may need to update your code to supply physical pixels instead of density-independent pixels.
This release of the Mux Data SDK for ExoPlayer adds support for ExoPlayer v2.18.1 and a couple of bug fixes related to uncommon use cases. The SDK should be more stable when used with custom builds of ExoPlayer. We also fixed a data integrity issue related to views with very long periods of user inactivity.
Mux Data is changing the way it tracks video views that are stopped for an extended period of time. Going forward, if a video player stops sending events (for example by explicitly stopping playback or backgrounding an app) and then playback is started again after one hour or more, the playback session will be considered a new view. A new view_id
will be generated on the SDK client and the metrics will be aggregated as a different view. If playback continues within one hour of being stopped, it will be considered part of the same view and will be appended to the existing view.
This behavior has changed in the following releases:
mux-embed
v4.12.0+This update for the Mux Data SDK for Exoplayer allows you to override metadata about the device that is playing your video. This feature is has not been implemented on Mux Data backend yet, but you can start using it in the Mux Data SDK with this latest release.
Additional Links:
We’ve updated the theoplayer-mux Web SDK to support the npm-based installation for THEOplayer. The theoplayer-mux Web SDK can now be initialized with an existing THEOplayer instance instead of relying on the `window.THEOplayer` instance that is not present when using the npm-based THEOplayer. Read the Release Notes for more information.
We’ve updated the bitmovin-mux Web SDK to support the module-based Bitmovin player. The Bitmovin web player can be instantiated as a single player package or as individual player modules. Previously, the bitmovin-mux Web SDK would throw an error if it was used with the module-based player but it now works as expected. Read the Release Notes for more information.
We have updated our beta version of the Mux Data SDK for THEOplayer to support THEOplayer v2.92.0
. Support for THEOplayer 3.x
is planned soon. For more information, see Github Release for v0.1.3 and the Github repo: Mux Data SDK for THEOplayer.
This update of the Mux Data SDK for Exoplayer fixes some build issues experienced by customers that are using custom ExoPlayer builds, or are only using exoplayer-core
. If you’re using the full ExoPlayer library and getting it via Maven Dependency, then your build should be unaffected. For more information, see the Github Issue regarding this issue, the Github Release for v2.7.2, the Github repo: mux-stats-sdk-exoplayer, and the Guide: Monitor Exoplayer.
We've added version 0.1.0 of our mux-java
SDK. This is the initial release of the Mux Java SDK. New SDK versions typically introduce new features, bug fixes, and updates. You can read more in the 0.1.0 Release Notes and also on the package manager Maven. This is a release that we're confident is stable and usable in production, but we would love any customer feedback! To submit feedback, please email sdks@mux.com.
We’ve updated the mux-embed web SDK to support the collection of the Live Stream Latency metrics on native Safari web. We have also added a maximum beacon payload size to limit the number of request
events that will be sent to Mux Data in the event the player makes many unnecessary requests. Read the Release Notes for more information.
We've added version 3.4.0 of our mux-php
SDK. New SDK versions typically introduce new features, bug fixes, and updates. You can read more on the 3.4.0 Release Notes.
We've added version 0.1.0 of our mux-csharp
SDK. This is the initial release of the Mux C# SDK and it reflects the current state of the Mux API. You can read more on the 0.1.0 Release Notes. You can also view the NuGet package and GitHub repository. This is a release that we're confident is stable and usable in production, but we would love any customer feedback! To submit feedback, please email sdks@mux.com.
This release of the Mux Data SDK for ExoPlayer fixes a packaging error that caused build issues for some customers. We’re sorry about that. You can read more about this update in the Release Notes.
We’ve released v2.7.0
of our Mux Data SDK for ExoPlayer, and it’s a big one. We added support for setting dimension values from HLS session data, and fixed some bugs related to CDN detection. We also added support for ExoPlayer 2.17.1, and the Official Port of ExoPlayer for Amazon Devices. You can update to either version by following Step 1 of our Dev Guide. You can read more about this update in the Release Notes.
We've added version 3.4.0 of our mux-ruby
SDK. New SDK versions typically introduce new features, bug fixes, and updates. You can read more on the 3.4.0 Release Notes.
We've added version 4.1.0 of our mux-go
SDK. New SDK versions typically introduce new features, bug fixes, and updates. You can read more on the 4.1.0 Release Notes.
We've added version 3.4.0 of our mux-python
SDK. New SDK versions typically introduce new features, bug fixes, and updates. You can read more on the 3.4.0 Release Notes.
We’re pleased to announce the initial release of the Mux Data SDK for Bitmovin Player for Android. The first public version is v0.5.1, and it reports all playback events. Support for Bandwidth, Experiments, and Live Latency is being planned or investigated for the v1.0.0 release. Read more in our Integration guide for the Bitmovin Player Data SDK or the GitHub repository.
We’ve updated the mux-embed web SDK to allow developers to disable the automatic tracking of rebuffering metrics. Developers who are building custom SDKs on top of mux-embed
can use this option to manually track rebuffering using APIs or events from the player. mux-embed
is no longer emitting an empty error when an error with code 1
is thrown. “No Versions” is no longer being set for the default Player Software Version. Read the Release Notes for more information.
We’ve added support for tracking experiment values via metadata such as X-SESSION-DATA
HLS tags. The tags override values of the dimensions we track. Once the session data tags on the main playlist are loaded by your player, you may pass them to MuxStats::setSessionData(List<SessionTag>)
in order to track the experiment values. Currently experiments are only supported for HLS streams.
We've added the ability to extract Session Data from the HLS manifest that is submitted as dimension metadata. This will be available for use in a future release of Mux Data. Read the Release Notes for more information.
We've changed the handling of errors in HLS.js and now immediately send an error
event to Mux Data when a fatal error occurs. If you do not want to treat some fatal errors as fatal, you should provide an errorTranslator
function to filter which errors are tracked or disable automaticErrorTracking
and handle errors manually. Read the Release Notes for more information. You can also read more about specifying an error translator function or disabling automatic error tracking in our docs.
We've updated the AVPlayer SDK to make it possible to build the SDK into an application extension without generating an XCode warning. We have also reduced the number of rendition change events that are reported before a video starts playing. Read the Release Notes for more information.
We've added version 4.0.0 of our mux-go
SDK. New SDK versions typically introduce new features, bug fixes, and updates. You can read more on the 4.0.0 Release Notes.
We've updated mux-embed
with an enumeration of the events that can be submitted by the SDK in order to make it easier for you to build on top of the web SDK framework. In addition, we've updated the viewend
detection to use page visibility change rather than the unload handler, which is no longer supported in most browsers. Read the Release Notes for more information.
We've added version 3.3.0 of our mux-ruby
SDK. New SDK versions typically introduce new features, bug fixes, and updates. You can read more on the 3.3.0 Release Notes.
We've added version 3.3.0 of our mux-php
SDK. New SDK versions typically introduce new features, bug fixes, and updates. You can read more on the 3.3.0 Release Notes.
We've added version 3.3.0 of our mux-python
SDK. New SDK versions typically introduce new features, bug fixes, and updates. You can read more on the 3.3.0 Release Notes.
You are now able to register a specific instance of Video.js to monitor with Mux Data instead of relying on the global instance. This makes it easier to use videojs-mux
when there is more than one instance of a Video.js player on a page. Read the Release Notes for more information.
We've updated mux-embed
to version v4.4.0, which includes the ability to collect the live stream latency metric. This will be available for use in a future release of Mux Data. Read the Release Notes for more information.
We have fixed an issue that could cause missing seek events in Mux Data when seeking in a video using the player API in iOS 15. Read the Release Notes for more information and a list of additional fixes.
We've added support for Android ExoPlayer 2.16.1. Read the Release Notes for more information and a list of additional fixes.
We've fixed an issue that could cause incorrect playback reporting when seeking occurs during a view and updated the SDK testing infrastructure. Read the Release Notes for more information and a list of additional fixes.
We've added support for including the AVPlayer SDK XCFramework into your application using Carthage. Read the Release Notes for more information and a list of additional fixes.
We've added version 3.2.0 of our mux-ruby
SDK. New SDK versions typically introduce new features, bug fixes, and updates. You can read more on the 3.2.0 Release Notes.
We've added the ability to collect the live stream latency metric. This will be available for use in a future release of Mux Data. Read the Release Notes for more information.
We've added version 3.2.0 of our mux-go
SDK. New SDK versions typically introduce new features, bug fixes, and updates. You can read more on the 3.2.0 Release Notes.
We've added version 3.2.0 of our mux-php
SDK. New SDK versions typically introduce new features, bug fixes, and updates. You can read more on the 3.2.0 Release Notes.
We've added version 3.2.0 of our mux-python
SDK. New SDK versions typically introduce new features, bug fixes, and updates. You can read more on the 3.2.0 Release Notes.
We have fixed an issue that could cause missing seek events in Mux Data when seeking in a video using the player API. Read the Release Notes for more information.
We've fixed an issue where playerID
is null
when the react-native-video
component is wrapped with react-native-video-controls
, which caused an error during video playback. Read the Release Notes for more information.
We've added the ability to collect the live stream latency metric. This will be available for use in a future release of Mux Data. Read the Release Notes for more information.
We have added a new API that allows you to override the automatic fullscreen detection and specify that a video is playing fullscreen even if it is not taking up the complete bounds of the screen. Read the Release Notes for more information and a list of additional fixes.
We've updated mux-embed
to version v4.3.0, which no longer assigns a default video_id
if it is not specified by the developer. The default video_id
will now be assigned on the server if one is not specified. Read the Release Notes for more information.
You can now use Mux Data with Kaltura video players to collect engagement and quality of experience metrics. We’ve added new Mux Data SDKs for Kaltura web, iOS, and Android players. To configure and use the SDKs refer to the documentation: Kaltura web SDK, Kaltura iOS SDK, Kaltura Android SDK.