Closed vakrolme closed 2 years ago
Hi, @vakrolme! Thanks for this request.
I've reassigned to @kompfner, who builds all things react-native-daily-js
. I'll also be sure to share this feedback with the team on Slack.
If there's anything else we can do to help as you're building, please let us know!
HI @vakrolme ,
Currently, our setBandWidth
method for daily-js
supports 02 different tasks:
The react-native calls always work in SFU mode. So when we are defining a kbs
, we are actually only chosen to enable the layers that respect that cap. Currently, we are not able to do that on the fly.
Besides that, react-native-webrtc
does not implement the method applyConstraints
, which would allow us to define the track constraints on the fly.
So for now we have decided to follow the approach where we must define those constraints before we join the conference.
By default those are the layers that we use for mobile:
[
{ maxBitrate: 80000, scaleResolutionDownBy: 4, maxFramerate: 10 },
{ maxBitrate: 520000, scaleResolutionDownBy: 1, maxFramerate: 30 },
]
You can change that through this property, camSimulcastEncodings
, so you are going to be able to use a higher bitrate: https://docs.daily.co/reference/daily-js/daily-iframe-class/properties#camSimulcastEncodings
(PS: this property will be available on the typescript on the next release of react-native-daily-js, but It already works)
Besides that, you can use this property, userMediaVideoConstraints
, when initiating you camera, inside the join method or when creating the callObject.https://docs.daily.co/reference/rn-daily-js/daily-iframe-class/properties#userMediaVideoConstraints
So, here is a full sample:
callObject
.join({
url: roomUrl,
dailyConfig: {
camSimulcastEncodings: [
{ maxBitrate: 80000, scaleResolutionDownBy: 4, maxFramerate: 10 },
{ maxBitrate: 520000, scaleResolutionDownBy: 1, maxFramerate: 30 },
],
userMediaVideoConstraints: {
width: 640,
height: 480,
},
},
})
If there's anything else we can do to help as you're building, please let us know!
Feature request
implement setBandwidth() in ReactNative SDK.
Why you need this
I'm doing a service that involves people doing remote inspections of second-hand items such as collectables and antiques, which only works with video bitrate above 3-4Mbps (1080p). I use
setBandwidth()
in the browser version to overcome the default hard ceiling of 2200kbps, but since it only runs in the browser I don't have access to phone's native capabilities, and can't add some other features I need in my video calls. HavingsetBandwidth()
in RN would allow me to do both.Alternatives you've considered
Continue using the web version in mobile browser and not have the features that require native access. Use a competing CPaaS solution. Build out the whole stack from the ground up based on Janus and other open source software.