Video HTML5视频和MediaStreamTrack流通过WebRTC解决方案更改问题
我使用HTML5视频标签通过WebRTC协议显示传入的实时视频流。基本上,当客户机接收到远程服务器时,会将其分配给远程服务器。直播流出现在视频中,到目前为止一切正常。但是,如果在某个点接收/发送客户端遇到网络连接降级,则WebRTC降级实现会降低流的分辨率。发生的情况是视频变得“腐败”,尽管你仍然可以在噪音中分辨出一些。下面是它的屏幕截图: 控制台中的Video HTML5视频和MediaStreamTrack流通过WebRTC解决方案更改问题,video,webrtc,html5-video,live-streaming,mediastreamtrack,Video,Webrtc,Html5 Video,Live Streaming,Mediastreamtrack,我使用HTML5视频标签通过WebRTC协议显示传入的实时视频流。基本上,当客户机接收到远程服务器时,会将其分配给远程服务器。直播流出现在视频中,到目前为止一切正常。但是,如果在某个点接收/发送客户端遇到网络连接降级,则WebRTC降级实现会降低流的分辨率。发生的情况是视频变得“腐败”,尽管你仍然可以在噪音中分辨出一些。下面是它的屏幕截图: 控制台中的MediaStreamTrack上的调试显示了分辨率的变化: 但有趣的部分来了。似乎本地HTML5视频播放器只有某些分辨率存在问题。在本例中,
MediaStreamTrack
上的调试显示了分辨率的变化:
但有趣的部分来了。似乎本地HTML5视频播放器只有某些分辨率存在问题。在本例中,它与720x540px和1440x1080px配合使用效果良好,但与1080x810xpx配合使用效果不佳。我在网上浏览了本地HTML5视频播放器规范,但没有支持的分辨率。我不知道该如何解决这个问题。我有以下想法:
- 也许可以尝试不同的HTML5视频播放器,例如JW播放器
- 阻止流上出现特定的解析,但我在WebRTC实现中没有看到任何选项
- 哎呀!这是一个浏览器级别或更低级别的bug,除了提交bug通知单之外,您无能为力
同时,我怀疑这个问题是由于你使用了奇怪的分辨率。坚持16:9或4:3这样的正常纵横比(即使你通过CSS裁剪),无论如何都会使你与网络摄像头更好地兼容
您可能还在视频编解码器中使用硬件加速。尝试禁用它(或者如果它已经被禁用,则启用它),看看这是否有帮助。Hmmm,有趣的一点。我还想到,这可能是浏览器级别的问题。我想使用不同的html5播放器实现可能不会奏效。关于奇怪的分辨率,视频流实际上来自DJI无人机,而不是典型的网络摄像头;)。关于你对硬件加速的评论,我想看看这个,尽管你不确定你能通过JS控制它?