Как настроить аппаратный кодер с помощью API Android для WebRTC - PullRequest
0 голосов
/ 09 ноября 2019

Я использую версию 1.0.28513 и не уверен, как / где указать VP8 в качестве моего видеокодека для аппаратного ускорения.

1 Ответ

0 голосов
/ 09 ноября 2019

Ciao,

, который рассматривает этот замечательный пример в Kotlin:

private val peerConnectionFactory: PeerConnectionFactory by lazy {
    //Initialize PeerConnectionFactory globals.
    val initializationOptions = PeerConnectionFactory.InitializationOptions.builder(this)
            .setEnableVideoHwAcceleration(true)
            .createInitializationOptions()
    PeerConnectionFactory.initialize(initializationOptions)

    //Create a new PeerConnectionFactory instance - using Hardware encoder and decoder.
    val options = PeerConnectionFactory.Options()
    val defaultVideoEncoderFactory = DefaultVideoEncoderFactory(
            rootEglBase.eglBaseContext, /* enableIntelVp8Encoder */true, /* enableH264HighProfile */true)
    val defaultVideoDecoderFactory = DefaultVideoDecoderFactory(rootEglBase.eglBaseContext)
    PeerConnectionFactory(options, defaultVideoEncoderFactory, defaultVideoDecoderFactory)
}

и соответствующий класс Java :

/** Create encoder factory using default hardware encoder factory. */
public DefaultVideoEncoderFactory(
    EglBase.Context eglContext, boolean enableIntelVp8Encoder, boolean enableH264HighProfile) {
  this.hardwareVideoEncoderFactory =
        new HardwareVideoEncoderFactory(eglContext, enableIntelVp8Encoder, enableH264HighProfile);
}

/** Create encoder factory using explicit hardware encoder factory. */
DefaultVideoEncoderFactory(VideoEncoderFactory hardwareVideoEncoderFactory) {
    this.hardwareVideoEncoderFactory = hardwareVideoEncoderFactory;
}

должен помочь вам понять, где действовать

Надеюсь, это поможет

Хорошего дня,Antonino

...