如何解决通过WebRTC分辨率更改引起的HTML5视频和MediaStreamTrack流
我正在使用HTML5视频标签通过WebRTC协议显示传入的实时视频流。基本上,当客户端收到远程MediaStreamTrack时,会将其分配给HTMLMediaElement.srcObject。实时流出现在视频中,到目前为止一切正常。但是,如果接收/发送客户端在某个时候遇到网络连接质量下降的情况,那么WebRTC降级实现将通过降低流的分辨率来开始。尽管您仍然可以区分其中的一些噪音,但视频会变成“腐败”。这是它的外观的屏幕截图:
在控制台中MediaStreamTrack
上进行调试可显示分辨率的变化:
但是有趣的部分到了。似乎本机HTML5视频播放器仅在某些分辨率下才有问题。在这种情况下,它可以在720x540px和1440x1080px上正常工作,但在1080x810xpx上不能正常工作。我浏览了Web以获取本机HTML5视频播放器规范,但所支持的分辨率上没有任何内容。我不确定如何继续解决此问题。我有以下想法:
- 也许尝试使用其他HTML5视频播放器,例如JW Player。
- 阻止特定的解决方案在流中发生,但是在WebRTC实施中我没有看到任何解决方案。
解决方法
Y!这是浏览器级别或更低级别的错误,除了提交错误票证之外,您无能为力。
同时,我怀疑这个问题是由于您使用奇数球分辨率造成的。坚持使用16:9或4:3这样的正常长宽比(即使您通过CSS进行裁剪)也可以让您更好地与网络摄像头兼容。
您可能还在为视频编解码器使用硬件加速。尝试禁用它(如果已经禁用,则将其启用)以查看是否有帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。