在线演示https://player.ccnvr.com源码仓库https://github.com/ccnvr/ccplayerH265H.265 在安防、教育、广电这几个圈子里基本已经是默认编码。摄像头出厂就是 H.265同画质下码率比 H.264 省将近一半。方案选择1、MSE 硬解最优方案使用浏览器默认支持Media Source Extensions,目前Chrome支持h265。这种方案会调用系统GPU硬件。效果性能最优。2、WebCodecs新方案使用VideoDecoder把系统 / 浏览器已有的解码能力封装成可调用的 API。底层实际干活的是操作系统的解码模块Windows → DXVA硬解取决于有没有装对应扩展Linux → VAAPI / VDPAUmacOS → VideoToolboxdecode 进去的是压缩流出来的是能画的原始帧中间那步不在 JS 里缺点是强制HTTPS3、WASM Canvas兼容最佳方案WebAssembly 本身不受 secure context 限制。HTTP 页面照样可以 fetch 一个.wasm、编译、执行。这是我们最终选它的直接原因没有更复杂的理由。画面则画在一块覆盖在 video 上方的 canvas 上。video 只负责出声和走时间画面由 canvas 出。CCPlayerCCPlayer 集成了 ws-flv、http-flv、mp4、hls 的软解能力统一天下解决h265播放问题。应该是市面上兼容性最强的播放了。这是使用方法非常简单import Player from ccplayer import ccplayer-flv import ccplayer-soft-decode // import 即注册之后 softDecode 默认为 auto new Player({ id: mse, url: http://192.168.1.10:8080/live/stream.flv, isLive: true, softDecode: auto, softDecodeOptions: { wasmBaseUrl: /wasm, // 内网自托管指向包含 decode/ 的那一层 openLog: true }, onSoftDecodeFallback (info) { console.log(已回退软解, info.reason) } })基于西瓜播放器xgplayer二次封装。 API 完全一致ui完全一致。无感切换。比jessibuca和easyplayer 更加稳定可靠。api更简洁。这里真的要吐槽一下 easyplayer和jessibuca。easyplayer API 文档乱七八糟非常不完善还有公司logo没人维护样式还丑。jessibuca 收费支持直播。免费版软解只支持到720papi太多太乱都不知道怎么配置。