我在 android 和 iOs 之间调用时使用 SurfaceViewRenderer 显示远程视频轨道时遇到问题(android <-> android 和 ios<->ios 也可以工作)
Android 上的远程视频视图会在几秒钟后冻结,但音频仍然有效(iOS 没问题)。
可能是iOS的H264编解码器引起的问题,但我按照最新的代码进行解码和编码PeerConnection,所以我仍然卡在这里。
下面是我的代码:
创造PeerConnectionFactory:
PeerConnectionFactory.initialize(
PeerConnectionFactory.InitializationOptions.builder(activity.getApplicationContext())
.setEnableInternalTracer(true)
.setEnableVideoHwAcceleration(true, true)
.createInitializationOptions());
Run Code Online (Sandbox Code Playgroud)
解码和编码
private void tryingToCreatePeerConnectionFactory(EglBase eglBase) {
final PeerConnectionFactory.Options options = new PeerConnectionFactory.Options();
final DefaultVideoEncoderFactory encoderFactory = new DefaultVideoEncoderFactory(eglBase.getEglBaseContext(), true, true);
final DefaultVideoDecoderFactory decoderFactory = new DefaultVideoDecoderFactory(eglBase.getEglBaseContext());
peerConnectionFactory = PeerConnectionFactory.builder().setOptions(options).
setVideoDecoderFactory(decoderFactory).
setVideoEncoderFactory(encoderFactory).
createPeerConnectionFactory();
}
Run Code Online (Sandbox Code Playgroud)
SDP内容
v=0
o=- 3807425029370800822 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS ARDAMS
m=audio 9 …Run Code Online (Sandbox Code Playgroud)