Giter VIP home page Giter VIP logo

billd-live-server's Introduction

logo

Billd-Live-Server

基于Nodejs + Typescript + Koa2搭建的直播间后端

简介

billd 直播间,目前实现了类似 bilibili 的 Web 在线直播功能,即你(房主)可以发布直播,别人进入你的直播间后能看到你的直播内容;而你也可以作为观众,进入别人的直播间看别人的直播内容。

生态

名称 仓库 star & fork 线上地址
直播间网页端 billd-live github github https://live.hsslive.cn
远程桌面 billd-desk github github https://live.hsslive.cn/remoteDeskTop
直播间移动端 billd-live-react-native github github
直播间移动端 billd-live-flutter github github
直播间移动端 billd-live-kotlin github github
直播间后台 billd-live-admin github github https://live-admin.hsslive.cn
直播间后端 billd-live-server github github https://live-api.hsslive.cn

功能

  • 原生 webrtc 推拉流
  • srs webrtc 推流,http-flvhls拉流
  • msr 推流,ffmpeg 转码,http-flvhls拉流
  • 一对一打 PK
  • 一对多打 PK
  • 前端混流
  • 推流鉴权
  • 拉流鉴权
  • OBSFFmpeg推流
  • 用户模块(qq 登录)
  • 支付模块(支付宝当面付)
  • 订单模块
  • 商品模块
  • 适配移动端
  • 在线后台
  • 接入腾讯云-云直播
  • 接入腾讯云-实时音视频 TRTC

技术栈

  • 前端相关:Vue3 以及相关技术栈、TypescriptWebRTCWeb WorkderWeb AudioCanvas
  • 后端相关:Nodejs 以及相关技术栈、Koa2SequelizeMysqlRedisSocket.io
  • 流媒体服务器相关:SRSFFmpegCoturn
  • Docker 相关:Docker

接口文档

apifox:https://apifox.com/apidoc/shared-c7556b54-17b2-494e-a039-572d83f103ed

客户端下载

  • 安卓端:点击下载
  • 苹果端:TODO
  • Windows 端:TODO
  • Mac 端:TODO

预览

线上地址:https://live.hsslive.cn

电脑端(web)

  • 首页

  • 进入直播间

  • 发起直播

  • 排行榜

移动端(web)

  • 首页

  • 进入直播间

安卓端(flutter)

  • 直播间详情、分区详情

  • 直播中心

本地启动

b 站教程:从零搭建迷你版 b 站 web 直播间合集,看里面带 从零搭建迷你b站直播间 封面的视频。

billd-live 付费课:https://www.hsslive.cn/article/151

billd-live

  • 安装依赖(建议使用 node 版本:v18.19.0)
pnpm i

更新 billd 相关依赖:

pnpm i billd-utils@latest billd-scss@latest billd-deploy@latest billd-html-webpack-plugin@latest
  • 运行
npm run start
  • 打包
npm run build

billd-live-server

  • 安装依赖(建议使用 node 版本:v18.19.0)
pnpm i

更新 billd 相关依赖:

pnpm i billd-utils@latest billd-scss@latest billd-html-webpack-plugin@latest

本地必须要有 docker、ffmpeg 环境!

项目启动后,会在项目的 src/secret/目录下生成 secret.ts 文件,请填写里面的信息,MYSQL_CONFIG、REDIS_CONFIG、SRS_CONFIG 必填!

# 1.初始化docker容器
pnpm run docker:dev

# 2.运行(4300端口)
pnpm run dev

兼容性

  • iphone 14
  • 三星 s10
  • ipad air 3

常见问题

https://live.hsslive.cn/about/faq

环境配置

本地开发环境

配置:MacBook Pro 2023 Apple M3 Max,14 核 CPU,36G 内存

  • 操作系统:mac os 14.1
  • node 版本:v18.19.0
  • pnpm 版本:8.6.3
  • docker 版本:24.0.5, build ced0996
  • mysql 版本:基于 docker,镜像:mysql:8.0
  • redis 版本:基于 docker,镜像:redis:7.0
  • srs 版本:基于 docker,镜像:registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5.0.170
  • ffmpeg 版本:5.1.2

构建/托管服务器环境

配置:4 核 CPU,4G 内存,8M 带宽(广州)

  • 操作系统:CentOS Linux release 8.2.2004
  • nginx 版本:1.22.1
  • node 版本:v16.19.1
  • pnpm 版本:8.6.3
  • docker 版本:23.0.1, build a5ee5b1
  • mysql 版本:基于 docker,镜像:mysql:8.0
  • redis 版本:基于 docker,镜像:redis:7.0

流媒体服务器环境

配置:2 核 CPU,2G 内存,带宽 30M(香港)

  • 操作系统:Alibaba Cloud Linux release 3 (Soaring Falcon)
  • node 版本:v16.20.0
  • pnpm 版本:8.6.3
  • pm2 版本:5.3.0
  • docker 版本:24.0.2, build cb74dfc
  • srs 版本:基于 docker,镜像:registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5.0.170
  • ffmpeg 版本:6.0

致敬开源

billd-live 自 2023 年 3 月开源以来,仅有作者(也就是我)一个人维护,深知做开源的难处。

如果你做过开源项目,并且单个仓库拿到 128+star,我个人认为这是非常不容易的,因为这代表了你的开源被很多人关注或认同,如果此时你正在了解直播相关方面的内容,我录制的 billd-live 付费课 或许会对你有一定帮助,它将对你进行免费,作为我认同你在开源方面做的贡献,以及我对你力所能及的回馈,希望你能不忘初心,砥砺前行~

billd-live-server's People

Contributors

galaxy-s10 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

billd-live-server's Issues

srs.sh: 文件里的命令没写适配?只能用Mac系统么

项目怎么跑应该描述一下呀;在哪里配置等等。你那配置文件都把MySQL数据库和redis数据库的默认端口都改了。我改后报错:

SUCCESS  加载所有route成功~
INFO  当前不是beta环境,初始化websocket
SUCCESS  项目启动成功!
WARN  当前监听的端口: 4300
WARN  当前的项目名称: billd-live-server
WARN  当前的项目环境: development
INFO  2023/5/3 22:03:17,子进程退出了,sh E:\test\billd-live-server\srs.sh
INFO  2023/5/3 22:03:17,有打印
Error: Command failed: sh E:\test\billd-live-server\srs.sh
E:\test\billd-live-server\srs.sh: line 16: ifconfig: command not found
error during connect: This error may indicate that the docker daemon is not running.: Post "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/billd-live-server-srs/stop": open //./pipe/docker_engine: The system cannot find the file specified.
error during connect: This error may indicate that the docker daemon is not running.: Delete "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/billd-live-server-srs": open //./pipe/docker_engine: The system cannot find the file specified.
docker: error during connect: This error may indicate that the docker daemon is not running.: Post "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/create": open //./pipe/docker_engine: The system cannot find the file specified.
See 'docker run --help'.

   at ChildProcess.exithandler (node:child_process:419:12)
   at ChildProcess.emit (node:events:513:28)
   at ChildProcess.emit (node:domain:489:12)
   at maybeClose (node:internal/child_process:1091:16)
   at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5) {
 code: 127,
 killed: false,
 signal: null,
 cmd: 'sh E:\\test\\billd-live-server\\srs.sh'
} 停掉旧的容器billd-live-server-srs:
删掉旧的容器billd-live-server-srs:
启动新的容器billd-live-server-srs:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.