我正在尝试在 WebRTC 的帮助下将屏幕截图的视频发送到 mediasoup。WebRTC 库中有一个类:ScreenCapturerAndroid。它可以工作,但是某些设备上的性能确实很差。特别是如果我使用高清或更好的显示分辨率。
在 stackoverflow 上,我找到了调用setEnableVideoHwAcceleration(true)和setVideoHwAccelerationOptions()的建议。但在较新版本的 WebRTC 库中,这些方法已被删除。
这是我的代码:
// ...
PeerConnectionFactory.Builder builder = PeerConnectionFactory.builder();
builder.setOptions(null);
EglBase.Context eglContext = EglUtils.getRootEglBaseContext();
VideoEncoderFactory encoderFactory =
new DefaultVideoEncoderFactory(
eglContext, true /* enableIntelVp8Encoder */, true);
PeerConnectionFactory.InitializationOptions initializationOptions =
PeerConnectionFactory.InitializationOptions.builder(context)
// .setEnableVideoHwAcceleration(true) // <-- does not work any more
.createInitializationOptions();
PeerConnectionFactory.initialize(initializationOptions);
mPeerConnectionFactory =
builder
.setVideoEncoderFactory(encoderFactory)
.createPeerConnectionFactory();
我的问题是:如何使用较新的 WebRTC 库版本为屏幕捕获启用视频硬件加速。