Embeddable Player
The Embed Player is the simplest way to integrate Vindral streaming into your website. It provides a fully functional video player with controls through an iframe, requiring minimal code and automatically receiving updates.
Basic Usage
<iframe
src="https://player.vindral.com/?core.channelId=vindral_demo1_ci_099ee1fa-80f3-455e-aa23-3d184e93e04f"
frameborder="0"
allowfullscreen
></iframe>
Query Parameters
The Embed Player can be configured using URL query parameters. All parameters are optional unless otherwise noted.
Core Parameters (Prefix: core.)
Core parameters control the fundamental streaming behavior and connection settings.
| Parameter | Type | Description |
|---|---|---|
core.channelId | string | Required. Channel ID to connect to. Example: ?core.channelId=demo_channel |
core.url | string | URL to use when connecting to the stream. Example: ?core.url=https://lb.cdn.vindral.com |
core.channelGroupId | string | Channel group ID for fast channel switching. Example: ?core.channelGroupId=group_123 |
core.authenticationToken | string | Authentication token for protected channels. Example: ?core.authenticationToken=token123 |
core.language | string | Initial language when multiple languages are available. Example: ?core.language=en |
core.textTrack | string | Initial text track/subtitle selection. Example: ?core.textTrack=en |
core.logLevel | off |error |warn |info |debug |trace | Sets the log level for debugging. Example: ?core.logLevel=debug |
Buffer Settings
| Parameter | Type | Description |
|---|---|---|
core.minBufferTime | number | Minimum and initial buffer time in milliseconds. Example: ?core.minBufferTime=1000 |
core.maxBufferTime | number | Maximum buffer time allowed in milliseconds. Example: ?core.maxBufferTime=3000 |
Media Settings
| Parameter | Type | Description |
|---|---|---|
core.media | audio |video |audio+video | Type of media to play. Example: ?core.media=video |
core.videoCodecs | h264 |av1 | Comma-separated list of video codecs in priority order. Example: ?core.videoCodecs=av1,h264 |
core.muted | boolean | Start the player muted. Example: ?core.muted=true |
core.volume | number | Initial volume level from 0 to 1. Example: ?core.volume=0.5 |
Quality and Performance
| Parameter | Type | Description |
|---|---|---|
core.abrEnabled | boolean | Enable/disable Adaptive Bit Rate. Example: ?core.abrEnabled=false |
core.sizeBasedResolutionCapEnabled | boolean | Cap video resolution to video element size. Example: ?core.sizeBasedResolutionCapEnabled=false |
core.maxSize.width | number | Maximum video width in pixels. Example: ?core.maxSize.width=1920 |
core.maxSize.height | number | Maximum video height in pixels. Example: ?core.maxSize.height=1080 |
core.maxVideoBitRate | number | Maximum video bit rate allowed. Example: ?core.maxVideoBitRate=5000000 |
core.maxAudioBitRate | number | Maximum audio bit rate allowed. Example: ?core.maxAudioBitRate=128000 |
core.maxInitialBitRate | number | Maximum initial bitrate used by ABR selection. Example: ?core.maxInitialBitRate=1000000 |
core.burstEnabled | boolean | Enable bursting for faster initial connection. Example: ?core.burstEnabled=true |
Platform-Specific Settings
| Parameter | Type | Description |
|---|---|---|
core.mseEnabled | boolean | Enable MediaSource API on supported browsers. Example: ?core.mseEnabled=false |
core.mseOpusEnabled | boolean | Enable Opus codec with MediaSource API. Example: ?core.mseOpusEnabled=false |
core.iosWakeLockEnabled | boolean | Enable wake lock for iOS devices. Example: ?core.iosWakeLockEnabled=true |
core.iosBackgroundPlayEnabled | boolean | Enable background audio playback on iOS. Example: ?core.iosBackgroundPlayEnabled=true |
core.iosMediaElementEnabled | boolean | Use media element for iOS playback. Example: ?core.iosMediaElementEnabled=false |
core.pictureInPictureEnabled | boolean | Enable Picture-in-Picture support. Example: ?core.pictureInPictureEnabled=false |
DRM Settings
| Parameter | Type | Description |
|---|---|---|
core.drm.headers | string | Comma-separated key:value pairs for DRM license headers. Example: ?core.drm.headers=X-Auth:token123 |
core.drm.queryparams | string | Comma-separated key:value pairs for DRM license query params. Example: ?core.drm.queryparams=token:abc123 |
core.drm.widevine.videoRobustness | string | Comma-separated Widevine video robustness levels. Example: ?core.drm.widevine.videoRobustness=SW_SECURE_CRYPTO |
core.drm.widevine.audioRobustness | string | Comma-separated Widevine audio robustness levels. Example: ?core.drm.widevine.audioRobustness=SW_SECURE_CRYPTO |
Visual Settings
| Parameter | Type | Description |
|---|---|---|
core.poster | boolean |string | Poster image: false (black), true (thumbnail), or URL. Example: ?core.poster=https://example.com/poster.jpg |
Advanced Settings
| Parameter | Type | Description |
|---|---|---|
core.telemetryEnabled | boolean | Enable telemetry collection. Example: ?core.telemetryEnabled=false |
core.wasmDecodingConstraintEnabled | boolean | Enable WASM decoding constraints. Example: ?core.wasmDecodingConstraintEnabled=false |
core.webtransportEnabled | boolean | Enable WebTransport protocol. Example: ?core.webtransportEnabled=true |
core.edgeUrl | string | Custom edge server URL. Example: ?core.edgeUrl=wss://edge.example.com |
Player UI Parameters (Prefix: player.)
Player parameters control the user interface and player controls.
| Parameter | Type | Description |
|---|---|---|
player.enabled | boolean | Enable/disable the player UI. Example: ?player.enabled=false |
player.controlsEnabled | boolean | Show/hide player controls. Example: ?player.controlsEnabled=false |
player.paused | boolean | Start player in paused state. Example: ?player.paused=true |
Player Control Buttons
| Parameter | Type | Description |
|---|---|---|
player.castEnabled | boolean | Show/hide Cast button. Example: ?player.castEnabled=false |
player.pipButtonEnabled | boolean | Show/hide Picture-in-Picture button. Example: ?player.pipButtonEnabled=false |
player.fullscreenButtonEnabled | boolean | Show/hide fullscreen button. Example: ?player.fullscreenButtonEnabled=false |
player.airPlayButtonEnabled | boolean | Show/hide AirPlay button. Example: ?player.airPlayButtonEnabled=true |
player.channelSelectionEnabled | boolean | Enable channel selection controls. Example: ?player.channelSelectionEnabled=true |
player.renditionLevelsEnabled | boolean | Show quality selection menu. Example: ?player.renditionLevelsEnabled=false |
player.languagesButtonEnabled | boolean | Show language selection button. Example: ?player.languagesButtonEnabled=true |
player.textTracksButtonEnabled | boolean | Show subtitle/text track button. Example: ?player.textTracksButtonEnabled=true |
Player Visual Settings
| Parameter | Type | Description |
|---|---|---|
player.playOverlayEnabled | boolean | Show play button overlay. Example: ?player.playOverlayEnabled=false |
player.bufferingOverlayEnabled | boolean | Show buffering indicator. Example: ?player.bufferingOverlayEnabled=false |
player.offlineChannelsEnabled | boolean | Show offline channels in grid. Example: ?player.offlineChannelsEnabled=true |
player.vuMeterEnabled | boolean | Show VU meter for audio. Example: ?player.vuMeterEnabled=true |
player.refreshPosterEnabled | boolean | Refresh poster image periodically. Example: ?player.refreshPosterEnabled=true |
player.aspectRatio | string | Set aspect ratio as width:height. Example: ?player.aspectRatio=16:9 |
player.title | boolean |string | Show title: false (hidden), true (channel name), or custom text. Example: ?player.title=My%20Stream |
Programmatic Control
For programmatic control and access to the SDK API, consider using the Vindral Player SDK web component or the Core SDK instead.