通过 Agora.io 实施直播
Implement Live Broadcast by Agora.io
我正在尝试通过 Agora.io 在 React Native 移动应用程序中实施直播。我以前成功实现了视频通话。我已经阅读了文档,比较和对比了直播的视频通话(都是 web sdk)。我只能在客户端的 mode 中找到差异,它对应于 react-native sdk 中的 channelProfile。在文档中它说有三种不同的模式:通信、直播和游戏。当我实现视频通话时,我为 channelProfile 的值分配了 1,它工作正常,质量足够好。但是,当我为 channelProfile 分配 2 以指示它是直播时,质量会严重下降。我在实施直播时有什么不对吗?如何提高直播质量?
为了考虑,我把我的代码放在下面:
const config = {
appid: 'MY APP ID',
channelProfile: this.props.navigation.getParam('channelProfile', 2),
clientRole: this.props.navigation.getParam('clientRole', 1),
videoEncoderConfig: {
width: 360,
height: 480,
bitrate: 1,
frameRate: FPS30,
orientationMode: Adaptative,
},
audioProfile: AudioProfileDefault,
audioScenario: AudioScenarioDefault
}
RtcEngine.on('userJoined', (data) => {
console.warn("user joined", data);
const { peerIds } = this.state;
if (peerIds.indexOf(data.uid) === -1) {
this.setState({
peerIds: [...this.state.peerIds, data.uid]
})
}
})
RtcEngine.on('error', (error) => {
console.warn("error", error);
})
RtcEngine.init(config);
Agora 的SDK 原来是三种通道模式,最近游戏SDK 和原生SDK 合并,只有communication
和broadcast
两种通道模式。
每种模式针对频道内和流内的不同质量进行优化。对于广播,文档提到当使用默认比特率时 broadcast
模式使用两倍的比特率 communication
.
如果您遇到质量问题,您应该考虑更改您的比特率,目前您的代码将比特率设置为 1
,这是非常低的。 Agora 提供了建议的分辨率配置文件、fps 和比特率列表。
我正在尝试通过 Agora.io 在 React Native 移动应用程序中实施直播。我以前成功实现了视频通话。我已经阅读了文档,比较和对比了直播的视频通话(都是 web sdk)。我只能在客户端的 mode 中找到差异,它对应于 react-native sdk 中的 channelProfile。在文档中它说有三种不同的模式:通信、直播和游戏。当我实现视频通话时,我为 channelProfile 的值分配了 1,它工作正常,质量足够好。但是,当我为 channelProfile 分配 2 以指示它是直播时,质量会严重下降。我在实施直播时有什么不对吗?如何提高直播质量? 为了考虑,我把我的代码放在下面:
const config = {
appid: 'MY APP ID',
channelProfile: this.props.navigation.getParam('channelProfile', 2),
clientRole: this.props.navigation.getParam('clientRole', 1),
videoEncoderConfig: {
width: 360,
height: 480,
bitrate: 1,
frameRate: FPS30,
orientationMode: Adaptative,
},
audioProfile: AudioProfileDefault,
audioScenario: AudioScenarioDefault
}
RtcEngine.on('userJoined', (data) => {
console.warn("user joined", data);
const { peerIds } = this.state;
if (peerIds.indexOf(data.uid) === -1) {
this.setState({
peerIds: [...this.state.peerIds, data.uid]
})
}
})
RtcEngine.on('error', (error) => {
console.warn("error", error);
})
RtcEngine.init(config);
Agora 的SDK 原来是三种通道模式,最近游戏SDK 和原生SDK 合并,只有communication
和broadcast
两种通道模式。
每种模式针对频道内和流内的不同质量进行优化。对于广播,文档提到当使用默认比特率时 broadcast
模式使用两倍的比特率 communication
.
如果您遇到质量问题,您应该考虑更改您的比特率,目前您的代码将比特率设置为 1
,这是非常低的。 Agora 提供了建议的分辨率配置文件、fps 和比特率列表。