NanoPlayer - Release History
Please find more about the MOQ playback mode feature in our documentation
For easy-to-use migration follow our guide
[5.0.2]
Release Notes
This update fixes an issue with secure token playback on iOS ≤ 17.1 in H5Live-HLS mode, resulting in error code 4200
.
Changelog
Fixed
- secure token playback failing with error
4200
on iOS ≤ 17.1 in H5Live-HLS mode
[5.0.1]
Release Notes
This update fixes occasional audio lag in MOQ playback mode that could occur when larger faststart buffers were received and removes an unintended log line via console.log
.
Changelog
Fixed
- occasional audio lag in MOQ playback mode when larger faststart buffers are received
- unintended log line via
console.log
[5.0.0]
Release Notes
BREAKING CHANGE
This major release introduces Media over QUIC (MoQ) playback, bringing next-generation streaming with ultra-low latency and real-time playback powered by modern web technologies like QUIC and WebCodecs. This unlocks smoother, more interactive streaming experiences while still maintaining full compatibility with proven playback modes such as WebSocket/MSE and H5Live-HLS. Playback control has also been improved. You can now set the player volume directly at startup, and the player performs smarter connection checks to ensure QUIC compatibility before playback begins. We have optimized the default settings to deliver faster startup times, lower latency, and more reliable adaptive streaming. When multiple quality levels are available, the player will automatically use adaptive bitrate (ABR). Finally, we have cleaned up outdated and rarely used features. Flash player and legacy iOS ≤ 9 native-HLS fallback modes have been removed, configuration options have been simplified, and older scaling modes have been retired to ensure a more consistent playback experience.
Changelog
Added
-
Media over QUIC transport and playback mode
- utilizing the benefits of latest web technologies including WebTransport/QUIC and WebCodecs
- pushing the boundaries of interactive real-time streaming
- keeping full support of production proven playback modes using WebSocket/MSE and H5Live-HLS
-
new config setting
playback.enableMediaOverQuic
- enabling/disabling the new MoQ playback mode
true
/false
, default:true
-
new config setting
playback.enableQuicConnectionProbe
- enabling/disabling performing a connection probe at setup call to test WebTransport/QUIC connectivity
true
/false
, default:true
-
new config setting
playback.volume
- enabling setting the player's volume directly at setup call
- range between
0.0
and1.0
, default:1.0
Changed
- default values htmlFor improved performance and usability
config.playback.latencyControlMode
: from"classic"
to"balancedadaptive"
config.playback.automute
: fromfalse
totrue
config.playback.faststart
: fromfalse
totrue
source.startIndex
: from0/highest
ton-1/lowest
source.options.adaption.rule
: from"none"
to"deviationOfMean2"
- enabling ABR playback if more than one stream/entry is available
Removed
- flash player fallback mode
- native hls fallback mode (iOS version ≤ 9)
- deprecated single source configuration via
config.source.h5live
object- remaining valid source configurations are
config.source.group
andconfig.source.entries
- remaining valid source configurations are
- scaling modes
"resize"
and"original"
[4.31.0]
Release Notes
In this release, we introduce the new config option metrics.serverDomain
, which allows you to configure a custom white-label domain htmlFor nanoStream Cloud metrics and telemetry endpoints.
Changelog
Added
- option
metrics.serverDomain
enabling to configure a custom white-label domain name htmlFor nanoStream Cloud metrics/telemetry endpoints
[4.30.1]
Release Notes
This update resolves an issue on iOS 18.4+ that prevented video playback from starting when using HLS fallback mode. The issue affected WebView-based iOS apps that load the web application from local content, e.g. app bundle.
Changelog
Fixed
- resolved an issue on iOS 18.4+ that prevented video playback from starting when using HLS fallback mode
[4.30.0]
Release Notes
In this update, additional media and network capabilities are now logged in the onReady
event. An issue was fixed where the player view was not correctly set up after a failed bintu source configuration. Additionally, an issue was resolved to prevent metrics and event duplication when multiple setup calls happen in quick succession.
Changelog
Added
- log additional media and network capabilities in
onReady
event
Fixed
- removed an issue where the player view was not properly set up following a failed bintu source configuration
- resolved an issue that could cause metrics and event duplication when multiple setup calls occurred in rapid succession
Please find more about the stream switching and abr feature in our documentation
[4.29.0]
Release Notes
This release introduces a new configuration option htmlFor adaptive bitrate (ABR) setups.
You can now omit specific renditions in ABR configurations using the new config.source.options.adaption.omitRenditions
parameter. This parameter accepts an array
of predefined quality identifiers (e.g., "high"
, "medium"
, "low"
) or stream entry indexes (e.g., 0
, 1
, 2
, etc.), providing greater flexibility in tailoring adaptive bitrate playback.
Additionally, an issue affecting the config.source.options.adaption.downStep
value in group configurations has been resolved, ensuring proper functionality.
These updates enhance flexibility and reliability in ABR setups.
Changelog
Added
- introduced an option to omit specific renditions in ABR multi-stream configurations via Bintu stream group or entries:
- new parameter:
config.source.options.adaption.omitRenditions
(type:array
) - accepted values include predefined quality identifiers (type:
string
) or stream entry indexes (type:number
):- qualities:
"high"
,"medium-high"
,"medium"
,"medium-low"
,"low"
- indexes:
0
,1
,2
, etc.
- qualities:
- see the feature description htmlFor more details
- new parameter:
Fixed
- resolved an issue where the
config.source.options.adaption.downStep
value was not applied correctly when using group configurations
[4.28.0]
Release Notes
This update introduces improved error observability and enhanced player responsiveness. Startup errors now include detailed insights, making it easier to identify and resolve playback issues during the initial loading phase, including the first 30 seconds of playback. For full details, refer to our Startup Errors Documentation. Additionally, the player’s resizing behavior has been optimized, ensuring a smoother experience when the container dimensions change. These enhancements ensure a more reliable and user-friendly experience.
Changelog
Added
- enhanced observability with additional information in the error event when identified as a startup error:
- errors occurring during playback attempts in the initial loading phase, including the first 30 seconds of playback
- htmlFor details, see Startup Errors Documentation
Improved
- optimized resizing behavior during player container dimension changes
[4.27.0]
Release Notes
This version includes a more robust conditioning htmlFor initial switch up which results in a faster up switch while using ABR. Applies to all platforms including iOS17, iOS18 and higher.
Changelog
Improved
- initial switch up time htmlFor ABR
[4.26.1]
Release Notes
With this patch version, we resolved an issue during player.setup
that could cause an unhandled exception.
Changelog
Fixed
- error condition during
player.setup
that could result in an unhandled exception
[4.26.0]
Release Notes
This version includes several improvements. Playback attempts on mobile devices failing due to visibility state hidden at load start will now result in a dedicated event 1009
. This allows htmlFor clearer differentiation from other startup errors, such as network or stream issues 2003 Not enough media data received
. Further we improved playback start behavior in iOS WebView apps, which require user interaction htmlFor video playback in their WebView settings. Now, if a playback attempt is rejected due to missing user interaction, the player will emit error 1005
early on, allowing the application to prompt the user htmlFor interaction more quickly. Refer to recommended settings htmlFor iOS WebView:. In general find more information about error codes here:
API NanoPlayer..errorcode.
Changelog
Improved
- playback attempts on mobile devices failing due to visibility state
hidden
will now result in a dedicated error event with code1009
and messagePlayback failed because the player was in visibility state 'hidden' at load start.
- allowing to distinguish from network or stream related startup errors, e.g.
2003 Not enough media data received.
- allowing to distinguish from network or stream related startup errors, e.g.
Fixed
- playback start behaviour in iOS WebView apps requiring user interaction htmlFor video playback
mediaTypesRequiringUserActionForPlayback
- in case of a playback attempt rejected due to missing user interaction, the player will now emit error
1005 Playback must be initialized by user gesture.
early on - this enables the application to handle the condition faster by asking the user to interact
- see recommended settings htmlFor iOS WebView:nanoplayer WebView iOS
- in case of a playback attempt rejected due to missing user interaction, the player will now emit error