通过WebRTC分辨率更改引起的HTML5视频和MediaStreamTrack流

问题描述

我正在使用HTML5视频标签通过WebRTC协议显示传入的实时视频流。基本上,当客户端收到远程MediaStreamTrack时,会将其分配给HTMLMediaElement.srcObject。实时流出现在视频中,到目前为止一切正常。但是,如果接收/发送客户端在某个时候遇到网络连接质量下降的情况,那么WebRTC降级实现将通过降低流的分辨率来开始。尽管您仍然可以区分其中的一些噪音,但视频会变成“腐败”。这是它的外观的屏幕截图:

enter image description here

在控制台中MediaStreamTrack上进行调试可显示分辨率的变化:

enter image description here

但是有趣的部分到了。似乎本机HTML5视频播放器仅在某些分辨率下才有问题。在这种情况下,它可以在720x540px和1440x1080px上正常工作,但在1080x810xpx上不能正常工作。我浏览了Web以获取本机HTML5视频播放器规范,但所支持的分辨率上没有任何内容。我不确定如何继续解决此问题。我有以下想法:

  • 也许尝试使用其他HTML5视频播放器,例如JW Player。
  • 阻止特定的解决方案在流中发生,但是在WebRTC实施中我没有看到任何解决方案。

解决方法

Y!这是浏览器级别或更低级别的错误,除了提交错误票证之外,您无能为力。

同时,我怀疑这个问题是由于您使用奇数球分辨率造成的。坚持使用16:9或4:3这样的正常长宽比(即使您通过CSS进行裁剪)也可以让您更好地与网络摄像头兼容。

您可能还在为视频编解码器使用硬件加速。尝试禁用它(如果已经禁用,则将其启用)以查看是否有帮助。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...