我们通过这个链接(1)可以查到,只有ie11,edge12-18具有硬件解码能力的才能支持。Apple系macOS在10.13 High Sierra,iOS在11以后可以原生支持。所有chrome系不支持。windows不提供软解解码h265的能力,只有显卡硬件支持才能支持,而且edge马上要更换到chrome平台了。毕竟H265授权费是很高的,像微软这种用户量级,那肯定是天价,干脆交给显卡厂商来处理。苹果本身是这个标准组织的成员,有大量这方面的专利,因此它很乐意推广这个标准。在WWDC17上,苹果就宣布HLS格式支持HEVC编码,(2) 需要使用fMP4进行切片。NMSv3.2开始,支持输出HEVC编码的HLS流。
那么要实现通用的跨平台,跨浏览器支持的解码器方案,现如今只有1个方法,WASM,NodePlayer.js便支持这种方式。我也曾在一款海康NVR上发现它的web控制器也采用了这种方式,数据通过websocket传输,但不是一种通用的标准。当然这种方式解码性能不足,面对高清画面解码时要求本地机器有很强的单核处理性能。海康便要求一次只能播放一个高清主码流。而NodePlayer.js v0.6版,采用webworker方式,将多路解码分散到多个进程中,提升了多路视频打开时的处理能力。并且传输协议也是目前最常见的http-flv,websocket-flv,支持包括nms,阿里云直播服务。也兼容阿里云H265 over http-flv。