mirror of
https://github.com/timerring/bilive.git
synced 2026-09-02 19:03:47 +08:00
docs: update architecture (#276)
* docs: update architecture * docs: update docs * docs: update docs
This commit is contained in:
30
README.md
30
README.md
@@ -36,12 +36,15 @@
|
||||
## 1. Introduction
|
||||
|
||||
> 如果您觉得项目不错,欢迎 :star: 也欢迎 PR 合作,如果有任何疑问,欢迎提 issue 交流。
|
||||
>
|
||||
> 敬告:本项目仅供学习交流使用,请在征得对方许可的情况下录制,请勿未经授权私自将内容用于商业用途,请勿用于大规模录制,违者会被官方封禁,法律后果自负。
|
||||
|
||||
自动监听并录制B站直播和弹幕(含付费留言、礼物等),根据分辨率转换弹幕、语音识别字幕并渲染进视频,根据弹幕密度切分精彩片段并通过视频理解大模型生成有趣的标题,根据图像生成模型自动生成视频封面,自动投稿视频和切片至B站,兼容无GPU版本,兼容超低配置服务器与主机。
|
||||
|
||||
## 2. Major features
|
||||
|
||||
- **速度快**:采用 `pipeline` 流水线处理视频,理想情况下录播与直播相差半小时以内,没下播就能上线录播,**目前已知 b 站录播最快版本**!
|
||||
- **( 🎉 NEW)多架构**:适配 amd64 及 arm64 架构!
|
||||
- **多房间**:同时录制多个直播间内容视频以及弹幕文件(包含普通弹幕,付费弹幕以及礼物上舰等信息)。
|
||||
- **占用小**:自动删除本地已上传的视频,极致节省空间。
|
||||
- **模版化**:无需复杂配置,开箱即用,通过 b 站搜索建议接口自动抓取相关热门标签。
|
||||
@@ -68,32 +71,7 @@
|
||||
|
||||
项目架构流程如下:
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
User((用户))--record-->startRecord(启动录制)
|
||||
startRecord(启动录制)--保存视频和字幕文件-->videoFolder[(Video 文件夹)]
|
||||
|
||||
User((用户))--scan-->startScan(启动扫描 Video 文件夹)
|
||||
videoFolder[(Video 文件夹)]<--间隔两分钟扫描一次-->startScan(启动扫描 Video 文件夹)
|
||||
startScan <--视频文件--> whisper[whisperASR模型]
|
||||
whisper[whisperASR模型] --生成字幕-->parameter[查询视频分辨率]
|
||||
subgraph 启动新进程
|
||||
parameter[查询分辨率] -->ifDanmaku{判断}
|
||||
ifDanmaku -->|有弹幕| DanmakuConvert[DanmakuConvert]
|
||||
ifDanmaku -->|无弹幕| ffmpeg1[ffmpeg]
|
||||
DanmakuConvert[DanmakuConvert] --根据分辨率转换弹幕--> ffmpeg1[ffmpeg]
|
||||
ffmpeg1[ffmpeg] --渲染弹幕及字幕 --> Video[视频文件]
|
||||
Video[视频文件] --计算弹幕密度并切片--> GLM[多模态视频理解模型]
|
||||
GLM[多模态视频理解模型] --生成切片信息--> slice[视频切片]
|
||||
end
|
||||
|
||||
slice[视频切片] --> uploadQueue[(上传队列)]
|
||||
Video[视频文件] --> uploadQueue[(上传队列)]
|
||||
|
||||
User((用户))--upload-->startUpload(启动视频上传进程)
|
||||
startUpload(启动视频上传进程) <--扫描队列并上传视频--> uploadQueue[(上传队列)]
|
||||
```
|
||||
|
||||

|
||||
|
||||
## 3. 测试硬件
|
||||
|
||||
|
||||
Reference in New Issue
Block a user