【问题标题】:Implement Live Broadcast by Agora.io通过 Agora.io 实现直播
【发布时间】:2020-03-24 08:28:40
【问题描述】:

我正在尝试在 React Native 移动应用程序中通过 Agora.io 实现 Live Broadcast。我之前已经成功实现了视频通话。我已经浏览了文档,比较和对比视频通话到直播(都是 web sdk)。我只能在 react-native sdk 中找到对应于 channelProfile 的客户端 mode 的差异。在文档中,它说有三种不同的模式:通信、直播和游戏。当我实现视频通话时,我为 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);

【问题讨论】:

    标签: react-native agora.io


    【解决方案1】:

    Agora 的 SDK 曾经有三种通道模式,但最近游戏 SDK 已经与原生 SDK 相结合,因此只有两种通道模式,communicationbroadcast

    每种模式都针对频道内和流内的不同质量进行了优化。对于广播文档提到,当使用默认比特率时,broadcast 模式使用的比特率是communication 的两倍。

    如果您遇到质量问题,您应该考虑更改比特率,目前您的代码将比特率设置为1,这非常低。 Agora 提供了建议的分辨率配置文件、fps 和比特率的列表。

    Agora 视频比特率文档:https://docs.agora.io/en/Interactive%20Broadcast/API%20Reference/oc/Classes/AgoraVideoEncoderConfiguration.html#//api/name/bitrate

    【讨论】:

    • 感谢您的回答!我发现 channelProfile 的 0 值用于视频聊天,1 用于广播。 2 的值不存在,因此质量很差。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 2020-12-15
    • 2011-08-01
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    相关资源
    最近更新 更多