我正在使用 HTML5 视频标签通过 WebRTC 协议显示传入的实时视频流。基本上,当客户端接收到远程MediaStreamTrack时,它被分配给HTMLMediaElement.srcObject。直播出现在视频中,到目前为止一切都很好。但是,如果在某些时候接收/发送客户端遇到网络连接降级,那么 WebRTC 降级实现会通过降低流的分辨率来启动。发生的情况是视频变得“损坏”,尽管您仍然可以区分其中的一些噪音。这是它的外观的屏幕截图:
在控制台上调试MediaStreamTrack
显示分辨率是如何变化的:
但有趣的部分来了。似乎原生 HTML5 视频播放器仅在某些分辨率下存在问题。在这种情况下,它适用于 720x540px 和 1440x1080px,但不适用于 1080x810xpx。我在网上浏览了原生 HTML5 视频播放器规范,但没有关于支持的分辨率的内容。我不确定我将如何着手解决这个问题。我有以下想法:
- 也许尝试不同的 HTML5 视频播放器,例如 JW Player。
- 防止在流上发生特定的分辨率,但我在 WebRTC 实现中没有看到任何选项。