Known Issues and Workarounds
Switching from landscape to portrait mode is buggy.
Workaround: None.
The resolution reported in the HLS manifest is incorrect. It is set as the initially received resolution, which usually is much lower than what is possible and does not reflect any upscaling that happens during the duration of the webRTC connection.
Workaround: None.
Broadcasting and viewing from a computer with an M1 CPU is buggy. You may see lower resolutions than expected and errors.
Workaround: None.
Subsequent client instances created after the initial page is loaded may not respond to
maxFramerate
settings that are different from the first client instance.Workaround: Set
StreamConfig
only once, through theIVSBroadcastClient.create
function when the first client instance is created.On iOS, capturing multiple video device sources is not supported by WebKit.
Workaround: Follow https://bugs.webkit.org/show_bug.cgi?id=238492 to track development progress.
On iOS, calling
getUserMedia()
once you already have a video source will stop any other video source retrieved usinggetUserMedia()
.Workaround: None.
WebRTC dynamically chooses the best bitrate and resolution for the resources that are available. Your stream will not be high quality if your hardware or network cannot support it. The quality of your stream may change during the broadcast as more or fewer resources are available.
Workaround: Provide at least 200 kbps upload.
If Auto-Record to Amazon S3 is enabled for a channel and the Web Broadcast SDK is used, recording to the same S3 prefix may not work, as the Web Broadcast SDK dynamically changes bitrates and qualities.
Workaround: None.
Minification can break builds when using the NPM distribution of the library. For example, the default minification options used by http://create-react-app.dev/ production builds result in a JavaScript error when creating the client.
Workaround: Exclude the library from minification. For
create-react-app
specifically, to bypass this issue, enable profiling mode when doing a production build:npm run build -- --profile
.
Safari Limitations
- Denying a permissions prompt requires resetting the permission in Safari website settings at the OS level.
- Safari does not natively detect all devices as effectively as Firefox or Chrome. For example, OBS Virtual Camera does not get detected.
Firefox Limitations
- System permissions need to be enabled for Firefox to screen share. After enabling them, the user must restart Firefox for it to work correctly; otherwise, if permissions are perceived as blocked, the browser will throw a https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia#exceptions exception.
- The
getCapabilities
method is missing. This means users cannot get the media track's resolution or aspect ratio. See this https://bugzilla.mozilla.org/show_bug.cgi?id=1179084. - Several
AudioContext
properties are missing; e.g., latency and channel count. This could pose a problem for advanced users who want to manipulate the audio tracks. - Camera feeds from
getUserMedia
are restricted to a 4:3 aspect ratio on MacOS. See https://bugzilla.mozilla.org/show_bug.cgi?id=1193640 and https://bugzilla.mozilla.org/show_bug.cgi?id=1306034. - Audio capture is not supported with
getDisplayMedia
. See this https://bugzilla.mozilla.org/show_bug.cgi?id=1541425. - Framerate in screen capture is suboptimal (approximately 15fps?). See this https://bugzilla.mozilla.org/show_bug.cgi?id=1703522.