【发布时间】:2020-07-28 15:19:58
【问题描述】:
我正在尝试借助 WebRTC 将屏幕截图的视频发送到 mediasoup。在 WebRTC 库中有一个类:ScreenCapturerAndroid。 它可以工作,但是某些设备上的性能确实很差。特别是如果我使用高清或更好的显示分辨率。
在 stackoverflow 上我找到了一个 suggestion 来调用 setEnableVideoHwAcceleration(true) 和 setVideoHwAccelerationOptions()。但在较新版本的 WebRTC 库中,methods have been removed 。
这是我的代码:
// ...
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 库版本为屏幕捕获启用视频硬件加速。
【问题讨论】:
标签: webrtc webrtc-android mediasoup