Description
简介
NodePublisher.js是基于Chrome94正式发布的WebCodecsAPI实现的网页推流工具。它可以采集摄像头麦克风数据并硬件加速编码为H264+Opus流,封装为websocket-flv,推流到NodeMediaServerV3上。实现chrome内核浏览器无插件、低延迟、高清视频直播。
特性
- 支持硬件编码,1080、4k,30fps稳定流畅
- 支持h264 Baseline/Main/High Profile
- 支持Opus音频编码
- 支持canvas处理摄像头后推流(AI、滤镜、水印、幕布等)
- 支持音视频内容加密
计划
- 支持AAC音频编码
- 支持http-flv推流
- 支持采集浏览器标签页做视频推流
限制
使用NodePublisher.js有如下限制:
- chrome内核需要94及以上
- 服务端需要对接NodeMediaServer,v3.3.8及之后版本
- 需要https加载页面,才能访问摄像头麦克风
- 需要以wss推流,NMS需要部署机构颁发的证书,以域名推流,或提前同意自签名证书
在线测试
需要先安装运行NodeMediaServer V3
捕获摄像头推流
https://demo.nodemedia.cn/uploads/nodepublisher.html
捕获canvas推流
https://demo.nodemedia.cn/uploads/nodepublisher_canvas.html
播放测试:
推流到NMSv3后,服务端会自动进行实时转码aac,输出h264+aac的rtmp或flv流,所有播放器都可直接播放。
如果使用自研流媒体服务端,opus音频编码非flv标准,这里定义为flvid=13。
Websocket 判定 sub-protocol 为 “POST” ,则为推流。
web播放使用NodePlay.js v0.10.0及之后版本可解码播放opus:https://www.nodemedia.cn/doc/web/#/1?page_id=1
SDK需要v3.0及之后版本
下载试用
https://cdn.nodemedia.cn/NodePublisher/0.1.2/NodePublisher_v0.1.2_trial.zip
安全提示
chrome浏览器对摄像头麦克风访问有权限控制
- 以localhost加载web,可以用http地址,并推流到ws://
- 除localhost加载web,必须以https访问,并推流到wss://
- 如果nms服务端使用默认的自签名证书,需要先同意一次