Open xtsh2002 opened 1 year ago
@xtsh2002 使用 egg 3x 版本试了一下,没跑过单元测试,egg 3x 版本的某些 API 变动了,需要花一些时间来适配
谢谢回复,希望你能在百忙之中维护一下这个插件,我用 --force的方式安装了,最近试试行不行
@xtsh2002 兼容了一下 egg 3.x,可安装新的版本看看 https://www.npmjs.com/package/egg-websocket-plugin/v/3.0.0-beta.0
你好,你这个能否实现会议模式的直播?包括多人同时开启摄像头直播、观看端看到多人的视频流以及连麦功能,持多人同时推流到同一个 RTMP 应用(App)
@xtsh2002 视频流推荐使用 WebRTC 或其他提供视频流的三方服务,不建议使用 WebSocket 传输视频流
非常感谢您的回复,现在我已经写好了代码,用node.js写的,主播端是这样写的:`let res = await app.model.Live.create({ title, cover, key, user_id })
// 生成签名
let sign = this.sign(key)
ctx.apiSuccess({
data:res,
sign
})
}
// 生成签名,key可以理解为房间号
sign(key){
let { ctx,app } = this
const secret = app.config.mediaServer.auth.secret
let expire = parseInt((Date.now() + 100000000) / 1000)
let hashValue = md5(`/live/${key}-${expire}-${secret}`)
return `${expire}-${hashValue}`
}`
观看端 得到该直播签名的方法是:(后端) `// 生成签名 let sign = null
// 直播未结束
if(live.status !== 3){
sign = this.sign(live.key)
}
ctx.apiSuccess({
data:live,
sign
})`
这样,前端部分,观看端得到的拉流地址: `$H.get('/live/read/' + id.value).then(res=>{ detail.value = res.data
sign.value = res.sign
firstLoad.value = true
console.log('拉流地址:'+url.value)
})
const url = computed(()=>{
if(detail.value.key == '' || sign.value == ''){
return ''
}
return ${$C.livePlayBaseUrl}/live/${detail.value.key}.flv?sign=${sign.value}
)
`
我想问的是,我如果用主播端的这个签名放到OBS上去直播,那么观看端还能不能看到直播?之前我测试的是,用主播的签名到到obs上配置:主播端:`推流(主播):
rtmp://127.0.0.1:1980/live/QDyg0CXvEdxZ9LgHlCkf?sign=1678285979-1d15d26330532822c31fa6254c17b759`
我在前端,写死一个url推流地址是:
http://127.0.0.1:1981/live/QDyg0CXvEdxZ9LgHlCkf.flv?sign=1678285979-1d15d26330532822c31fa6254c17b759
这样是可以看到直播的,这个签名和主播端是一样,但是,现在我写好了前端,我如果让用户去拉流的话,每个用户每次的签名是不一样的,这样不知道还能否看到obs的直播?多谢
您好,我一直使用你这个插件,但eggs升级,安装的时候出现错误,请问可以解决吗?:
npm resolution error report
While resolving: egg-wechat@1.0.0 Found: egg@3.15.0 node_modules/egg egg@"^3" from the root project
Could not resolve dependency: peer egg@"^2.26.0" from egg-websocket-plugin@1.0.1 node_modules/egg-websocket-plugin egg-websocket-plugin@"*" from the root project
Fix the upstream dependency conflict, or retry this command with --force or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution.