简介

NodePlayer.js 是一款基于Asm.js/Wasm 实现的纯JavaScript直播播放器。能够播放http-flv/Websocket-flv/http2-flv协议的直播流,能够在 PC\Android\iOS 浏览器Webview 内实现毫秒级低延迟直播播放,软解码H.264/H.265+AAC流,WebGL视频渲染,WebAudio音频播放。支持在微信公众号、朋友圈分享中打开。
chrome91之后已正式加入SIMD软解码指令集加速,chrome94之后已正式加入H264硬解码能力。

在线Demo

低延迟

OBS推流到局域网NMSv3,使用NodePlayer.js_v0.5.45-wasm版,bufferTime设置为100 毫秒,实测延迟400毫秒。低于1秒,达到毫秒级低延迟。

100毫秒极限低延迟:

https://www.nodemedia.cn/blog/nodeplayer-js-challenges-to-play-1080p-live-http-flv-with-100-millisecond-delay

功能特色

  • 支持解码H.264视频(Baseline, Main, High Profile全支持,支持解码B帧视频)
  • 支持解码H.265视频(flv id == 12), windows 系统下 360浏览器可使用mse硬解
  • 支持填充,等比,等比缩放 3中视频缩放模式
  • 支持解码AAC音频(LC,HE,HEv2 Profile全支持)
  • 支持解码Nellymoser音频,Flash端推流音频信息完整
  • 支持解码8kHz PCM_ALAW, PCM_MULAW的G.711音频,传统监控视频上云无需转码
  • 支持解码Opus音频(flv_id=13)
  • 支持音量调节
  • 支持播放中途视频分辨率改变
  • 支持播放中途音频采样与编码改变
  • 可设置播放缓冲区时长,最低毫秒极限低延迟
    注:为保证视频平滑播放,建议根据网络情况,有CDN分发设置为500-1000毫秒,无CDN设置为1000-2000毫秒,也可自行更加网络环境调整
  • 支持智能不花屏丢帧,长时间播放绝不累积延迟。
  • 可创建多个播放实例,能同时播放多实例音频
  • 程序精简,经CDN加速,GZIP压缩(实际下载500k),加载速度更快
    注:阿里云oss已更新策略,需要自行gzip压缩后上传并设置Content-Encoding为gzip
  • 同时支持http-flv和websocket-flv协议
    注:以http-flv请求时,存在跨域请求的问题,需要设置access-control-allow-origin, websocket-flv默认不存在此问题
  • 支持HTTPS/WSS加密视频传输,保证视频内容传输安全
  • 支持HTTP2-flv流,不受chrome 6路并发限制
  • 支持自动分析是否支持并采用MSE进行播放(硬件解码,在除iOS平台以外的大部分浏览器支持)
  • 支持WebWorker多核解码,提升多画面播放性能。
  • 支持WebCodecs硬件解码API
  • 支持MediaSourceExtensions 硬件解码
  • 支持MediaSourceExtensions 硬件解码后渲染到canvas
  • 支持SIMD软解码指令集加速

自建流媒体服务器支持

CDN加速直播云服务商

  • 奥点云
  • 百度云
  • 腾讯云
  • 阿里云
  • 星域CDN
  • 网宿科技

受限

  • 本方案使用Fetch WebGL WebAudio WebSocket WebAssembly等技术,IE肯定无法支持
  • 本方案采用js软解,单线程,处理器性能要求高,运算量大,手机端发热。
  • iPhone处理器性能强劲,型号统一,表现一致。但Android品牌众多,性能天差地别,表现很不一致。
  • Android手机浏览器版本跨度非常大,性能表现不一致。

下载

商务服务

产品使用需商用授权,请联系客服
QQ:281269007
Email : service@nodemedia.cn

在线订购

https://oms.nodemedia.cn/buy/5

软著登记证书