From 1f319f773f8f68e3aa7b2a8c3eb2ce84d1251846 Mon Sep 17 00:00:00 2001 From: John Howe <89397553+timerring@users.noreply.github.com> Date: Thu, 10 Apr 2025 18:08:54 +0800 Subject: [PATCH] docs: update architecture (#276) * docs: update architecture * docs: update docs * docs: update docs --- README.md | 30 ++++-------------------------- 1 file changed, 4 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 7303d50..e2f4eb3 100644 --- a/README.md +++ b/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[(上传队列)] -``` - +![](https://cdn.jsdelivr.net/gh/timerring/scratchpad2023/2024/2025-04-10-17-08-35.png) ## 3. 测试硬件