Реализация прямой трансляции от Agora.io - PullRequest
1 голос
/ 24 марта 2020

Я пытаюсь реализовать Live Broadcast от Agora.io в мобильном приложении React Native. Ранее я успешно реализовал видеозвонок. Я просмотрел документацию, сравнил и сопоставил видеозвонок с прямой трансляцией (оба веб-SDK). Я мог найти только разницу в mode клиента, которая соответствует channelProfile в реагирующем нативном sdk. В документации сказано, что есть три разных режима: общение, прямая трансляция и игры. Когда я реализовал видеовызов, я присвоил 1 для значения channelProfile, оно работало нормально, качество было достаточно хорошим. Однако, когда я назначаю 2 для channelProfile, чтобы указать, что это прямая трансляция, качество сильно ухудшается. Я делаю что-то не так при реализации Live Broadcast? Как я могу улучшить качество прямой трансляции? Для рассмотрения я поставил свой код ниже:

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);

1 Ответ

1 голос
/ 25 марта 2020

В Agora SDK раньше было три канальных режима, но недавно игровой SDK был объединен с собственными SDK, поэтому есть только два канальных режима, communication и broadcast.

Каждый режим оптимизируется для различных качеств в канале и в потоках. Для трансляции в документации упоминается, что при использовании битрейта по умолчанию этот режим broadcast использует удвоенную битрейт communication.

Если у вас есть проблемы с качеством, вам следует рассмотреть возможность изменения битрейта, в настоящее время ваш код устанавливает битрейт до 1, что очень мало. Agora предоставляет список предлагаемых профилей разрешения, fps и битрейта.

Документация по битрейту видео Agora: https://docs.agora.io/en/Interactive%20Broadcast/API%20Reference/oc/Classes/AgoraVideoEncoderConfiguration.html# // api / name / bitrate

...