Update README.md

This commit is contained in:
Genteure 2021-05-01 00:22:46 +08:00
parent 9ae6e64c22
commit dcec2472f8
2 changed files with 32 additions and 50 deletions

View File

@ -1,17 +1,14 @@
# BiliBili Stream Recorder
# BiliBili Stream Recorder B站录播姬
[![Build status](https://ci.appveyor.com/api/projects/status/1n4822yitgtu7ht7?svg=true)](https://ci.appveyor.com/project/Genteure/bililiverecorder)
[![Version](https://img.shields.io/github/tag/Bililive/BililiveRecorder.svg?label=Version)](#)
[![Issues are "help wanted"](https://img.shields.io/github/issues/Bililive/BililiveRecorder/help%20wanted.svg)](https://github.com/Bililive/BililiveRecorder/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)
[![Pull Request Welcome](https://img.shields.io/badge/Pull%20request-welcome-brightgreen.svg)](#)
[![license](https://img.shields.io/github/license/Bililive/BililiveRecorder.svg)](#)
[![Crowdin](https://badges.crowdin.net/bililiverecorder/localized.svg)](https://crowdin.com/project/bililiverecorder)
[简体中文 | Simplified Chinese](README_CN.md)
[简体中文 README | Simplified Chinese](README_CN.md)
GitHub is a global platform, and theoretically, everyone should use English. But since this project is mostly meant for Chinese user and rely on a Chinese website [BiliBili](https://live.bilibili.com) ([_wikipedia_](https://en.wikipedia.org/wiki/Bilibili)), all code comments are in Chinese. This README file will always use English so people like _you_ can understand what is this, and perhaps make some use out of it.
[![Crowdin](https://badges.crowdin.net/bililiverecorder/localized.svg)](https://crowdin.com/project/bililiverecorder)
Software UI is available in
- 简体中文 (Source and default)
@ -26,28 +23,29 @@ See [rec.danmuji.org](https://rec.danmuji.org) (in Chinese)
## Feature
- Easy to use
- Reset timestamp to start from 0
- Writes duration info automatically when recoding session ends.
- Start recording when stream starts
- Start recording automatically when stream starts
- Record multiple stream at same time
- Fix broken recording caused by broken bilibili stream server
- Toolbox mode to fix broken bilibili stream recording recorded by other software*
- Pure C#, no native dependency like ffmpeg
- Open source!
## Develop & Getting Started
*Only unprocessed flv file downloaded directly from stream servers can be fixed. If the file is downloaded or processed by FFmpeg it no longer can be fixed, FFmpeg will fvck up the already broken recording even further.
**Visual Studio 2017 / 2019 with .NET Core** and **PowerShell** is required.
## Develop & Build
Some file are generated by [PreComplie Script](./CI/patch_buildinfo.ps1). Build project to clear errors shown by Visual Studio.
Visual Studio 2019 with .NET 5 is recommended, though any other IDE should work too.
Project | Type | Note
:---:|:---:|:---
BililiveRecorder.WPF | .NET Framework 4.6.2
BililiveRecorder.Core | .NET Standard 2.0
BililiveRecorder.FlvProcessor | .NET Standard 2.0
BililiveRecorder.Server | .NET Core 2.0 | TODO
Project | Target | Note
:---:|:---:|:---:
BililiveRecorder.WPF | .NET Framework 4.7.2 | Windows only GUI
BililiveRecorder.Cli | .NET 5 | Cross-platform
BililiveRecorder.ToolBox | .NET Standard 2.0 | library used by WPF & Cli
BililiveRecorder.Core | .NET Standard 2.0 | Main recording logic
BililiveRecorder.Flv | .NET Standard 2.0 | Data processing logic
## Reference & Acknowledgements
- [Adobe Flash Video File Format Specification 10.1.2.01.pdf](https://www.adobe.com/content/dam/acom/en/devnet/flv/video_file_format_spec_v10_1.pdf)
- [coreyauger/flv-streamer-2-file](https://github.com/coreyauger/flv-streamer-2-file)
- [coreyauger/flv-streamer-2-file](https://github.com/coreyauger/flv-streamer-2-file) Used as a reference in the early stages of development
- [zyzsdy/biliroku](https://github.com/zyzsdy/biliroku) - (probably) first BiliBili stream recording tool.

View File

@ -2,8 +2,6 @@
[![编译状态](https://ci.appveyor.com/api/projects/status/1n4822yitgtu7ht7?svg=true)](https://ci.appveyor.com/project/Genteure/bililiverecorder)
[![当前版本](https://img.shields.io/github/tag/Bililive/BililiveRecorder.svg?label=当前版本)](#)
[![需要帮助的 issue](https://img.shields.io/github/issues/Bililive/BililiveRecorder/help%20wanted.svg?label=需要帮助的%20issue)](https://github.com/Bililive/BililiveRecorder/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)
[![Pull Request Welcome](https://img.shields.io/badge/Pull%20request-欢迎-brightgreen.svg)](#)
[![开源协议](https://img.shields.io/github/license/Bililive/BililiveRecorder.svg?label=开源协议)](#)
[![QQ群 689636812](https://img.shields.io/badge/QQ%E7%BE%A4-689636812-success)](https://jq.qq.com/?_wv=1027&k=5zVwEyf)
[![Crowdin](https://badges.crowdin.net/bililiverecorder/localized.svg)](https://crowdin.com/project/bililiverecorder)
@ -15,43 +13,29 @@
## 功能
- 使用简单
- 使录出的文件时间戳从 0 开始
- 录制结束后自动写入总时长信息
- 可以主播开播后自动录制
- 可以同时录制多个直播间
- 主播开播后自动开始录制
- 同时录制多个直播间
- 自动修复B站直播服务器导致的各种问题
- 工具箱模式,用于修复旧版录播姬或其他软件录的视频文件*
- 纯 C# 实现,无 ffmpeg 等 native 依赖
- 开源!
## 入门 & 开发
*仅限未经处理的直接从直播服务器下载的原始FLV文件。 如果录播是用 FFmpeg 录制的或处理过的就无法修复了FFmpeg 会进一步损坏有问题的文件。
开发之前,你需要
## 开发 & 编译
- Visual Studio 2017 / 2019 并安装 .NET Core 开发环境
- PowerShell
推荐使用选配了 .NET 5 开发的 Visual Studio 2019不过其他 IDE 应该也可以。
项目中有两个文件是由 [编译前脚本](./CI/patch_buildinfo.ps1) 生成的,打开项目后先编译整个项目(执行脚本)可以消除 Visual Studio 给出的错误提醒。
项目 | 类型 | 备注
:---:|:---:|:---
BililiveRecorder.WPF | .NET Framework 4.6.2
BililiveRecorder.Core | .NET Standard 2.0
BililiveRecorder.FlvProcessor | .NET Standard 2.0
BililiveRecorder.Server | .NET Core 2.0 | 预留坑,将来填(咕咕咕)
如果你想研究这个项目的源代码,或修改功能的话:
- WPF 界面建议从 `BililiveRecorder.WPF/MainWindow.xaml` 开始看
- 录制逻辑建议从 `BililiveRecorder.Core/Recorder.cs` 开始看
- FLV数据处理建议从 `BililiveRecorder.FlvProcessor/FlvStreamProcessor.cs` 开始看
## Server 版说明
本项目核心逻辑均与 WPF 界面分离,使用 .NET Standard 2.0 而不是 .NET Framework可以较轻松地改出可在 Linux 上运行的 .NET Core 版本,但因为本人没时间等原因一直没有做。
如果有有能人士有在 Linux 上运行本项目的需求的话可以自行 fork 修改(但我大概不会 merge 回来)
项目 | 平台 | 备注
:---:|:---:|:---:
BililiveRecorder.WPF | .NET Framework 4.7.2 | Windows only GUI
BililiveRecorder.Cli | .NET 5 | 跨平台命令行
BililiveRecorder.ToolBox | .NET Standard 2.0 | WPF 和 Cli 使用的库
BililiveRecorder.Core | .NET Standard 2.0 | 核心录制逻辑
BililiveRecorder.Flv | .NET Standard 2.0 | 数据处理逻辑
## 参考资料 & 鸣谢
- [Adobe Flash Video File Format Specification 10.1.2.01.pdf](https://www.adobe.com/content/dam/acom/en/devnet/flv/video_file_format_spec_v10_1.pdf)
- [coreyauger/flv-streamer-2-file](https://github.com/coreyauger/flv-streamer-2-file)
- [coreyauger/flv-streamer-2-file](https://github.com/coreyauger/flv-streamer-2-file) 曾在本项目开发早期作为参考
- [zyzsdy/biliroku](https://github.com/zyzsdy/biliroku): (大概是)第一个B站直播录播工具