Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface TweaksConfig

The tweaks configuration is used as an incubator for experimental features and also contains features implemented for specific customers that might not make it into the officially supported feature set.

Tweaks are not officially supported and are not guaranteed to be stable, i.e. their naming, functionality and API can change at any time within the tweaks or when being promoted to an official feature and moved into its final configuration namespace. Tweaks are often proof-of-concepts that are quickly implemented for urgent needs of customers. They often do not go through an architectural review and are therefore not signed and approved by the architecture team.

Example:

tweaks : {
  autoqualityswitching : true,
  max_buffer_level     : 20,
  query_parameters : {
    key1: 'value1',
    key2: 'value2',
    mycustomname: 'another-value'
  }
}

Hierarchy

  • TweaksConfig

Indexable

[key: string]: any

Tweaks are meant for experimental purpose and might often change so we allow the interface to contain any option to avoid possible type checking failures.

Tweaks are not officially supported and are not guaranteed to be stable, i.e. their naming, functionality and API can change at any time within the tweaks or when being promoted to an official feature and moved into its final configuration namespace. Tweaks are often proof-of-concepts that are quickly implemented for urgent needs of customers. They often do not go through an architectural review and are therefore not signed and approved by the architecture team.

Example:

tweaks : {
  autoqualityswitching : true,
  max_buffer_level     : 20,
  query_parameters : {
    key1: 'value1',
    key2: 'value2',
    mycustomname: 'another-value'
  }
}

Index

Properties

Optional adaptation_set_switching_without_supplemental_property

adaptation_set_switching_without_supplemental_property: undefined | false | true

Groups adaptation sets and switches between them based on their group attribute instead of the recommended SupplementalProperty urn:mpeg:dash:adaptation-set-switching:2016. Default is false.

since

8.1

Optional autoqualityswitching

autoqualityswitching: undefined | false | true

Determines if the automatic quality switching is enabled on startup (true, default).

Optional disable_retry_for_response_status

disable_retry_for_response_status: ResponseStatusMap

If a specific HttpRequestType has one or more HTTP status codes associated with it via this configuration value, requests of that type will not be retried if they return one of the associated status codes.

since

8.4

Example:

disable_retry_for_response_status: {
  [HttpRequestType.MANIFEST_DASH]: [ 401 ]
}

Optional dword_base_media_decode_timestamps

dword_base_media_decode_timestamps: undefined | false | true

If set, all BaseMediaDecodeTime-stamps will be truncated to 32 bits in length.

Optional enable_seek_for_live

enable_seek_for_live: undefined | false | true

Specifies whether PlayerAPI.seek is allowed for live streams. By default this is not allowed.

Optional fairplay_ignore_duplicate_init_data_key_errors

fairplay_ignore_duplicate_init_data_key_errors: undefined | false | true

If set, keyerror events will be ignored for Fairplay when more than one needkey event was triggered with identical initData.

since

8.18.0

Optional force_base_media_decode_time_rewrite

force_base_media_decode_time_rewrite: undefined | false | true

If set, every BaseMediaDecodeTime in data segments will be rewritten, regardless if they exceed 32 bits or not. The tizen module has to be present and either dword_base_media_decode_timestamps is set or the player runs on a tizen TV.

Optional force_software_decryption

force_software_decryption: undefined | false | true

If set, software decryption is used over the browser's WebCrypto API for anything that the player manually decrypts. E.g. for decrypting segments of DASH ClearKey-protected and HLS AES-128-encrypted streams.

Note: Proper DRM-protection such as Widevine and PlayReady is not affected by this tweak as decryption of such must be handled by the browser's CDM.

Optional hls_audio_only_threshold_bitrate

hls_audio_only_threshold_bitrate: undefined | number

All HLS variants with a bitrate lower than the given bitrate in bits per second (bps) are considered audio-only variants and removed if there is at least one with a higher bitrate.

Optional ignore_mp4_edts_box

ignore_mp4_edts_box: undefined | false | true

If enabled, Edit (edts) boxes in MP4 segments which would introduce a segment start time offset are filtered from segments before forwarding them to the decoder. This is required as browsers are handling such boxes differently. This flag ensures consistent cross-browser behavior in this matter and is enabled by default.

since

8.3

Optional impressionServer

impressionServer: undefined | string

Sets the impression server to the given URL if allowlisted. Default is the bitmovin impression server URL.

Optional licenseServer

licenseServer: undefined | string

Sets the license server to the given URL if allowlisted. Default is the bitmovin license server URL.

Optional live_segment_list_start_index_offset

live_segment_list_start_index_offset: undefined | number

The number of segments at the start of the segment list that the player considers unsafe to request. E.g when set to 2 the earliest possible segment to seek/timeShift to would be the third segment in the list. The default value is 0, so the complete DVR window is used.

Optional log_level

log_level: LogLevel

Sets the LOG_LEVEL of the player by calling PlayerAPI.setLogLevel.

Optional max_buffer_level

max_buffer_level: undefined | number

Changes the maximum buffer level in seconds. Default is 40 seconds. For live streams the lowest value of playlist duration for HLS, timeShiftBufferDepth for DASH and the max_buffer_level is used as a maximum value for the buffer.

deprecated

Use {@link BufferConfig.targetLevel} instead.

Optional native_hls_download_error_handling

native_hls_download_error_handling: undefined | false | true

If enabled the native player used for HLS in Safari would fetch and parse the HLS playlist and trigger an PlayerEvent.Error event if the download of a segment fails and the playback stalls. Default is false.

Optional native_hls_parsing

native_hls_parsing: undefined | false | true

If enabled the native player used for HLS in Safari would fetch and parse the HLS playlist and trigger {@link Events.SegmentPlayback} events carrying segment-specific metadata like #EXT-X-PROGRAM-DATE-TIME if present in the manifest. Default is false.

Optional no_quota_exceeded_adjustment

no_quota_exceeded_adjustment: undefined | false | true

Specifies whether the Player should not adjust the target buffer levels after a QuotaExceededError.

since

8.25.0

Optional preserve_gaps_for_base_media_decode_time_rewrite

preserve_gaps_for_base_media_decode_time_rewrite: undefined | false | true

If set to true, the BMDT will preserve possible gaps in segments while rewriting timestamps, which may prevent out of sync audio and video.

Optional prevent_video_element_preloading

prevent_video_element_preloading: undefined | false | true

This flag indicates whether we prevent the native video element to preload data. Metadata will always be preloaded. In case of native HLS playback on Safari, this will cause e.g. AudioTracks not being added, before the playback starts.

Optional query_parameters

query_parameters: QueryParameters

Query parameters are added as GET parameters to all request URLs (e.g. manifest, media segments, subtitle files, …). Query_parameters should be an object with key value pairs, where the keys are used as parameter name and the values as parameter values.

Example:

query_parameters : {
  key1: 'value1',
  key2: 'value2',
  mycustomname: 'another-value'
}

The example above would be translated into MY_REQUEST_URL?key1=value1&key2=value2&mycustomname=another-value.

Optional restart_threshold

restart_threshold: undefined | number

Amount of seconds the player buffers before playback starts again after a stall. Default is 0.9 seconds. This value is restricted to the maximum value of the buffer minus 0.5 seconds.

Optional resume_live_content_at_previous_position_after_ad_break

resume_live_content_at_previous_position_after_ad_break: undefined | false | true

Specifies whether live content should resume playback at the playback time before the ad break. This is required in order to be able to use AdConfig.replaceContentDuration for live streams. By default live content resumes at the live edge. Note: TweaksConfig.enable_seek_for_live is required if this is set to true.

since

8.27.0

Optional segment_encryption_transition_handling

segment_encryption_transition_handling: undefined | false | true

Makes sure that player initialize period switch and recreate source buffers in case that we are switching from unenctyped to encrypted segments. This fixes the issues with pixelated picture on playready protected HLS stream with unecrypted SSAI in MS Edge.

deprecated

As of 8.33.0 new buffer handling covers this case by default so it doesn't have any effect.

since

8.25.1

Optional serviceworker_scope

serviceworker_scope: undefined | string

Defines the scope of the ServiceWorker that is created in the bitmovin-serviceworker-client.js module.

since

8.13.0

Optional startup_threshold

startup_threshold: undefined | number

Amount of seconds the player buffers before playback starts. Default is 0.9 seconds. This value is restricted to the maximum value of the buffer minus 0.5 seconds.

Optional stop_download_on_pause

stop_download_on_pause: undefined | false | true

Enabling this flag prevents the player from downloading any further resource (playlist, segments, ...), when the player is paused. Already issued requests will be finished. Default is false.

Generated using TypeDoc