我们有一个运行正常的webrtc android应用程序,我们使用Kurento作为媒体服务器,它以24 fps的速度发送视频;然而,android应用程序中的输入视频流呈现出一种周期性的滞后,就好像前15帧每秒的处理和播放很顺利,但随后的15帧被跳过了,所以我们最终得到了一个视频,它能顺利播放几毫秒,但也会暂停几毫秒。
我想传入的视频帧太大了,android设备无法处理,所以它跳过了一些帧,然后当缓冲区再次空闲时继续。我在logcat中得到了下面的输出(我在googled上搜索了它,但没有找到解决问题的答案),它说关键帧首先需要
12-28 20:12:27.857 19648-19769/mx.blacklabs.parallax E/org.webrtc.Logging: HardwareVideoDecoder: decode() - key frame required first
12-28 20:12:27.858 19648-19796/mx.blacklabs.parallax E/org.webrtc.Logging: HardwareVideoDecoder: decode() - key frame required first
12-28 20:12:27.858 19648-19769/mx.blacklabs.parallax E/org.webrtc.Logging: HardwareVideoDecoder: decode() - key frame required first我得到相同的错误信息,用毫秒的差块表示,所以看起来它与我的问题有关。
我试过什么
如-Using maxFrameRate MediaConstraint所示,这里,但这似乎没有任何效果。此外,当我们试图减少localMediaStream时,这似乎是针对remoteMediaStream的。
观测
我们使用的android设备是MoverioBT-300,它运行在Android5.1.1上。我正在使用以下webrtc实现org.webrtc:google-webrtc:1.0.22672
发布于 2018-12-29 02:00:34
约束降低了视频源上的frameRate,即输出帧速率。若要降低传入帧速率,请另一方降低传出帧速率,例如通过带外信令(如果您控制两端)告诉它。
https://stackoverflow.com/questions/53965407
复制相似问题