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’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.
Mux Video now supports configuring a playback restriction to filter playback requests by the User-Agent HTTP header. It is possible to filter both traffic with no user agent, as well as known high-risk user agents, as defined internally by Mux. This feature can be used alongside signed URLs and referrer restrictions, to increase the security of your video delivery.
The mp4_support
field used to create static MP4 renditions for an asset now supports 3 new options, including an option to produce an audio-only MP4. These should be used instead of the now deprecated standard
value.
capped-1080p
, which produces a single MP4 rendition up to 1080p in resolution.audio-only
, which produces a single audio-only MP4 rendition.audio-only,capped-1080p
, which produces both.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.
The Mux Data Metrics EBVS calculation has been updated to consider views that end while in a paused state and have never played content as an exit before the video was started. This update restores the previous behavior that was changed on February 28th, 2024.
The tabs in the Asset and Live Stream Details pages in the dashboard have been renamed to give a more clear indication of what information is shown in each tab.
For Assets:
Monitor -> Events, Logs, and Engagement
Build -> Playback and Thumbnails
Details -> Asset Details
For Live Streams:
Monitor -> Events, Logs, and Engagement
Build -> Playback and Thumbnails
Details -> Live Stream Details
Mux Video's auto-generated captions for on-demand video is now in general availability. We have also added a new API to allow captions to be generated retroactively for assets created in the last 7 days.
Auto-generated captions for on-demand video now supports 21 additional languages, including Spanish, Italian, Portuguese, German, Polish, Russian, Dutch, Catalan, French, Turkish, Swedish, Ukrainian, Norwegian, Finnish, Slovak, Greek, Czech, Croatian, Danish, Romanian, and Bulgarian.
We have added two new metrics, viewer_experience_score
and watch_time
, to the List Video Views API response.
https://docs.mux.com/api-reference#data/operation/list-video-views
We fixed an important bug that impacted a very small number of assets with Mux Player. The bug is that the player would send hundreds of unnecessary requests for the `0.ts`segment.
This impacted certain assets on production Next.js deployments and Chrome browsers. Other build environments might be impacted too.
The Mux Data Overview, Metrics, Errors, and Views pages - and the Mux Data Metrics APIs - now support one-minute granularity for chart aggregations and custom time range selection. The chart data will be aggregated at one-minute intervals for any time range that is less than 90 minutes. The custom range time picker has been updated to support one-minute time intervals along with other improvements.
One-minute granularity is available to all Mux Data users.
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’ve added more features to the Build tab for both Assets and Live Streams. You can now create thumbnails, gifs, and timeline hover previews with storyboards for Assets and Live Streams right from the Dashboard.
The Build tab for Spaces has two new sections - one for integrating, another for broadcasting - that direct users on how to best build a Real Time experience with Mux.
Mux Player v1.11.0 is released. This update includes an upgrade to hls.js v1.4.1 and a no-volume-pref attribute to turn off saving the user selected volume in local storage. Additional links:
Mux Data has rolled out fixes and improvements for counting views that paused for an hour without sending any heartbeat. This fixed a double-counting issue on the pre-paused section of the view which later paused more than an hour and then resumed. The improvement also allows you to gain access to the pre-paused section of the view, which previously was not possible.
As a result of this roll-out, you may notice that the total view count has a 0.5% - 1% decline, and the Playback Failure Percentage will have a small decline, typically in the range of 0.03 to 0.3 points, thanks to eliminating the double counting issue. Other metrics will be slightly impacted too for the same reason. The changes to the metrics are available in the Mux Dashboard and View Streaming Export.
Most views that resume after an hour should now be considered new views and have different view_ids associated with them if you are on the latest SDKs.
We have updated the Details pages for Spaces to helpfully organize information into tabs. The new Monitor tab contains Recent Events and Logs, while Build has useful information about the Broadcast and integrating into your applications. We’ve also improved the user experience for Deleting a Space.
We have updated the text color, button shape, and numerous other colors in the Dashboard. The number of grays used for text have been reduced and consolidated. New brand colors were applied to navigation options, outlines, hover states, and more. Buttons now have rounded corners and updated colors. Contrast was improved through these efforts, and these changes overall improve accessibility and consistency across the application.
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.
Mux Data now supports exporting data for View Streaming Exports in JSON format. This makes it much easier to connect the data stream with data stores such as BigQuery and Snowflake. Customers can easily set it up by going to Mux Dashboard -> Settings -> Streaming Export -> New streaming export -> make sure to select “JSON” as the export format.
The fields that are included in the streaming export’s JSON format are identical to what we support in the protobuf format, which can be found in this repo. When new fields are made available, the export needs to be upgraded to receive new fields: Mux Dashboard -> Settings -> Streaming Export -> Click Upgrade to receive the new fields. For more schema management information, check out this guide.
Participants in a Real-Time Video session who are not publishing a video or audio track no longer appear in broadcasts. All participants with the subscriber
role are also now hidden from broadcasts. For more information, see our Guide to using Real-Time Video Broadcasts.
Mux Player v1.9.0 is released. This update includes an upgrade to hls.js v1.4.0-beta.2, Themes support, updated configs for low latency, and other bug fixes and improvements.
Customers who have unpaid invoices due to a payment failure will now receive an email with a link to make a payment. The payment link will also appear for that invoice in the invoices page in the Billing area on the Mux dashboard. This allows customers to rectify late or delinquent invoices when there is an issue with their method of payment without needing to contact Mux support for a payment link.
Mux Real-Time Video now supports customizable participant display names. Participant display names can be set, updated, and retrieved within your own application using the web SDK, and will appear overlaid on any broadcasts of your sessions.
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.
We have updated the Asset and Live Stream Details pages to organize content into tabs to help find information faster. Live Stream Details has also been updated to show key information used to identify the live stream more clearly at the top of the page and be more responsive - it is now easier to see and copy critical information when on mobile devices or smaller screens.
The Mux Dashboard will now format date timestamps in the localized format of the Dashboard user. Previously, date timestamps would be translated to the localized timezone but displayed in the US-en format. Dates will continue to be translated to the localized timezone and will now be shown in the local format as well. There is no change to API responses.
Mux Real-Time Video now supports a crop
broadcast layout, which crops the input real-time video on the fly, squeezing in the edges of a participant's video, to maximize the use of your output livestream’s resolution.
Blog post announcing crop layout.
Guide to using Real-Time Video Broadcasts.
Signing keys are used to sign JSON Web Tokens (JWTs) to authenticate and enumerate certain requests to the Mux APIs. Creating separate signing keys for Video and Data URLs is no longer required and the signing keys page has been updated to remove the notion of separate Video and Data signing keys. Any signing keys customers have created in the past will continue to work. Customers will need to use a System access token to create signing keys going forward. See our documentation for signing JWTs and for our signing key API for more details.
The Mux invoices you download as a PDF or CSV will now have filenames that are more readable and include the invoice creation date in the format:
Mux_invoice_{invoice_date}.{pdf/csv}
Mux Player v1.8.0 is released. This update includes support for specifying a maximum resolution. For more information, see the Release Notes: HTML Element, the Release Notes: React, the Max Resolution documentation, and our Resolution-Based Pricing blog post.
We have updated the Asset Details page to show key information used to identify the asset more clearly at the top of the page.
Mux Player v1.7.0 is released. This update includes support for CuePoints, which allows you to associate generic metadata with your stream's timeline and playback. Multiple captions/subtitle track selection has also been added – users can now choose from a menu which track they want to use. For more information, see the Release Notes: HTML Element, the Release Notes: React, and the CuePoints Documentation.
We have improved the responsiveness of the Asset Details page in the Dashboard for VOD content. It is now easier to see and copy critical information when on mobile devices or smaller screens.
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.
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:
Details of each rendition change event are now reported, when they occur during a view. The information provided in each rendition change includes: rendition width, height, fps, codec, and rendition name. You can also find the playhead time and wall clock time when these changes happen. The rendition change is surfaced through the Mux Dashboard, Data API, and the streaming exports for raw view data. Note that not all data is available from every player, the specific metadata reported will depend on player API support.
Full renditionchange
metadata is collected on the latest version of the following SDKs:
An updated ExoPlayer SDK will be available soon.
Users can now upload files from their local machine via the Dashboard. The upload flow utilizes our Direct Uploads flow, and illustrates what APIs are used behind the scenes.
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.
Mux Player v1.4.0 is released. This update includes a prefer CMCD prop and UI updates to improve: overlay behavior, icon size, control spacing and behavior, and positioning of the Live indicator.
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.
The Mux Data View Details page has been enhanced to show the detailed metadata in the view timeline for renditionchange
events. See here for information on the metadata that may appear: https://docs.mux.com/guides/data/mux-playback-events#renditionchange-optional
This update includes support for adding and removing captions and subtitles within the app, getting the Mux Player code, and displaying the data saved for developers. For adding content, we have added drag and drop uploading support via the Mux Uploader which can be added with the URL and Mux Asset ID. Additional goodies include a global option for audio normalization, a toggle for signed or public playback IDs per field, buttons to manually resync with Mux, separate 'remove' and 'delete' buttons, and UI improvements. Under the hood, other updates include React, UI, and testing libraries plus more graceful error handling. You can read more in the Contentful Marketplace.
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.
We’ve increased the maximum value of the live stream’s reconnect_window
parameter from 5 minutes (300 seconds) to 30 minutes (1800 seconds). Reconnect Window is the time in seconds you want Mux to wait for the live stream to reconnect before considering it completed and generating a recorded asset. For many scenarios, Reconnect Window of 5 minutes just was not long enough, like an encoder machine reboot. You can set the reconnect_window
parameter with live stream Create API and Update API endpoints.
This update includes the debut of Mux Player for dashboard playback, the addition of several metadata tags for developers to use, and custom domain support for Mux Video. An update to UpChunk should show faster uploading times and bug fixes. Last, additional bug fixes sprinkled all-around.
Mux on the Contentful Marketplace
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.
If you are a new Mux Video user, you can enjoy an updated getting started experience. The new Assets and Live Streams pages make it easy to upload your first video, find in-context onboarding guidance and get quick links to support and documentation. Users who have already uploaded a video no longer see the Getting Started link in the navigation.
We now support 5fps to 10fps as standard input which means you do not need to wait as long for ingest. Previously, all assets with a frame rate of less than 10fps were considered non-standard inputs. See our guide about why non-standard inputs take longer to process
As part of 0.7.0, tighter error handling integration with hls.js
made all errors be triggered on the player. This meant that errors that don't inhibit playback and that hls.js
handled automatically were treated the same as fatal errors that hls.js
doesn't handle automatically. Now, only errors that hls.js
considers fatal will trigger an error event. See the Release Notes for more info.
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 now support non-square pixels as standard input which means you do not need to wait as long for ingestion. Previously, we supported non-square pixels as non-standard input. See our Guide to learn more about this change and why non-standard inputs take longer to process.
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.
You can now pass in the start-time
attribute to make playback start at a certain timestamp. For example <mux-video start-time="4" ...>
will start playback at the 4 second mark. See the Release Notes for additional information.
You can now pass in the startTime
prop to make playback start at a certain timestamp. For example <MuxVideo startTime={4} ...>
will start playback at the 4 second mark. See the Release Notes for additional improvements.
You can now pass in the start-time
attribute to make playback start at a certain timestamp. For example, <mux-audio start-time="4" ...>
will start playback at the 4 second mark. See the Release Notes for additional improvements.