feat:优化bililive-recorder
This commit is contained in:
parent
c28a87c3a4
commit
7f139f488e
|
|
@ -0,0 +1,8 @@
|
||||||
|
CONTAINER_NAME="bililive-recorder"
|
||||||
|
PANEL_APP_PORT_HTTP=40278
|
||||||
|
PGID=1000
|
||||||
|
PUID=1000
|
||||||
|
UMASK=22
|
||||||
|
USER_NAME="admin"
|
||||||
|
USER_PASSWORD="admin"
|
||||||
|
WORK_SPACE_PATH="./data"
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
formFields:
|
formFields:
|
||||||
- default: 2356
|
- default: "40278"
|
||||||
edit: true
|
edit: true
|
||||||
envKey: PANEL_APP_PORT_HTTP
|
envKey: PANEL_APP_PORT_HTTP
|
||||||
labelEn: Port
|
labelEn: Port
|
||||||
|
|
@ -9,12 +9,14 @@ additionalProperties:
|
||||||
rule: paramPort
|
rule: paramPort
|
||||||
type: number
|
type: number
|
||||||
- default: admin
|
- default: admin
|
||||||
|
edit: true
|
||||||
envKey: USER_NAME
|
envKey: USER_NAME
|
||||||
labelEn: WebUI Username
|
labelEn: WebUI Username
|
||||||
labelZh: WebUI 的用户名
|
labelZh: WebUI 的用户名
|
||||||
required: true
|
required: true
|
||||||
type: text
|
type: text
|
||||||
- default: admin
|
- default: admin
|
||||||
|
edit: true
|
||||||
envKey: USER_PASSWORD
|
envKey: USER_PASSWORD
|
||||||
labelEn: WebUI access password
|
labelEn: WebUI access password
|
||||||
labelZh: WebUI 的访问密码
|
labelZh: WebUI 的访问密码
|
||||||
|
|
@ -22,10 +24,32 @@ additionalProperties:
|
||||||
required: true
|
required: true
|
||||||
rule: paramComplexity
|
rule: paramComplexity
|
||||||
type: password
|
type: password
|
||||||
- default: ./rec
|
- default: "./data"
|
||||||
edit: true
|
edit: true
|
||||||
envKey: WORK_SPACE_PATH
|
envKey: WORK_SPACE_PATH
|
||||||
labelEn: work space path
|
labelEn: work space path (Pay attention to folder permissions)
|
||||||
labelZh: 工作目录路径
|
labelZh: 工作目录路径 (注意文件夹权限)
|
||||||
required: true
|
required: true
|
||||||
type: text
|
type: text
|
||||||
|
- default: "022"
|
||||||
|
edit: true
|
||||||
|
envKey: UMASK
|
||||||
|
labelEn: UMASK
|
||||||
|
labelZh: 文件权限掩码
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: "1000"
|
||||||
|
edit: true
|
||||||
|
envKey: PUID
|
||||||
|
labelEn: User ID
|
||||||
|
labelZh: 用户 ID
|
||||||
|
required: true
|
||||||
|
type: number
|
||||||
|
- default: "1000"
|
||||||
|
edit: true
|
||||||
|
envKey: PGID
|
||||||
|
labelEn: Group ID
|
||||||
|
labelZh: 用户组 ID
|
||||||
|
required: true
|
||||||
|
type: number
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
services:
|
services:
|
||||||
recorder:
|
recorder:
|
||||||
image: bililive/recorder:2.12.0
|
image: "bililive/recorder:2.12.0"
|
||||||
container_name: ${CONTAINER_NAME}
|
container_name: ${CONTAINER_NAME}
|
||||||
restart: always
|
restart: always
|
||||||
networks:
|
networks:
|
||||||
|
|
@ -12,9 +12,12 @@ services:
|
||||||
environment:
|
environment:
|
||||||
- BREC_HTTP_BASIC_USER=${USER_NAME}
|
- BREC_HTTP_BASIC_USER=${USER_NAME}
|
||||||
- BREC_HTTP_BASIC_PASS=${USER_PASSWORD}
|
- BREC_HTTP_BASIC_PASS=${USER_PASSWORD}
|
||||||
- UMASK=022
|
- UMASK=${UMASK}
|
||||||
- PUID=1000
|
- PUID=${PUID}
|
||||||
- PGID=1000
|
- PGID=${PGID}
|
||||||
|
labels:
|
||||||
|
createdBy: "Apps"
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
1panel-network:
|
1panel-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
chown -R 1000:1000 data
|
||||||
|
|
@ -1,85 +1,11 @@
|
||||||
|
<div style="text-align:center">
|
||||||
|
<img width="20%" src="https://github.com/BililiveRecorder/BililiveRecorder/raw/dev/.github/assets/logo.svg">
|
||||||
|
|
||||||
# mikufans录播姬
|
# mikufans录播姬
|
||||||
|
|
||||||
## 安装
|
[](https://github.com/BililiveRecorder/BililiveRecorder/actions/workflows/build.yml)
|
||||||
|
[](#)
|
||||||
|
[](#)
|
||||||
|
[](https://crowdin.com/project/bililiverecorder)
|
||||||
|
|
||||||
在 [rec.danmuji.org](https://rec.danmuji.org) 提供了有自动更新功能的安装包。
|
</div>
|
||||||
|
|
||||||
或者也可以在 [releases](https://github.com/BililiveRecorder/BililiveRecorder/releases) 页面下载 “绿色版” 压缩包,没有版本检查和更新功能。你可以 watch 本仓库的新版本发布(点击 “Watch” 、点击 “Custom”、勾选 “Releases”)。
|
|
||||||
|
|
||||||
命令行版可执行文件可以在 [releases](https://github.com/BililiveRecorder/BililiveRecorder/releases) 页面下载,支持 Linux、 macOS 和 Windows 系统。
|
|
||||||
|
|
||||||
可以在 [Docker Hub `bililive/recorder`](https://hub.docker.com/r/bililive/recorder) 或 [`ghcr.io/bililiverecorder/bililiverecorder`](https://github.com/bililiverecorder/BililiveRecorder/pkgs/container/bililiverecorder) 拉取 Docker 镜像。
|
|
||||||
|
|
||||||
安装使用教程在 [rec.danmuji.org/user/install](https://rec.danmuji.org/user/install)。
|
|
||||||
|
|
||||||
## 功能
|
|
||||||
|
|
||||||
- 使用简单
|
|
||||||
- 主播开播后自动开始录制
|
|
||||||
- 同时录制多个直播间
|
|
||||||
- 自动修复mikufans直播服务器导致的各种问题
|
|
||||||
- 工具箱模式,用于修复旧版录播姬或其他软件录的视频文件<sup>1</sup>
|
|
||||||
- 纯 C# 实现,无 ffmpeg 等 native 依赖<sup>2</sup>
|
|
||||||
- 开源!
|
|
||||||
|
|
||||||
<sup>1</sup>:仅限未经处理的直接从直播服务器下载的原始FLV文件。 如果录播是用 FFmpeg 录制的或处理过的就无法修复了,FFmpeg 会进一步损坏有问题的文件。
|
|
||||||
<sup>2</sup>:录播姬桌面版内含了一个 mini 版 FFmpeg 用于工具箱内的转封装功能。
|
|
||||||
|
|
||||||
## 版本号
|
|
||||||
|
|
||||||
本项目从 2.0.0 开始使用 Semantic Versioning。
|
|
||||||
|
|
||||||
请注意各个项目(比如 `BililiveRecorder.Flv`)的 .NET API 就算是 public 的也属于内部实现,所以不保证任何版本之间源代码接口的兼容性。
|
|
||||||
|
|
||||||
## 编译
|
|
||||||
|
|
||||||
注意:需要有完整的 git 历史才能生成版本号。
|
|
||||||
|
|
||||||
WPF 版:
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
cd BililiveRecorder.WPF
|
|
||||||
msbuild -t:restore
|
|
||||||
msbuild
|
|
||||||
```
|
|
||||||
|
|
||||||
命令行版:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
# Build WebUI, optional
|
|
||||||
git submodule update --init --recursive
|
|
||||||
./webui/build.sh
|
|
||||||
# For building on Windows:
|
|
||||||
# ./webui/build.ps1
|
|
||||||
|
|
||||||
dotnet build BililiveRecorder.Cli
|
|
||||||
```
|
|
||||||
|
|
||||||
## 项目结构
|
|
||||||
|
|
||||||
Project | Target |
|
|
||||||
:--- |:--- |
|
|
||||||
BililiveRecorder.Flv | .NET Standard 2.0 |
|
|
||||||
BililiveRecorder.Core | .NET Standard 2.0 |
|
|
||||||
BililiveRecorder.Toolbox | .NET Standard 2.0 |
|
|
||||||
BililiveRecorder.WPF | .NET Framework 4.7.2 |
|
|
||||||
BililiveRecorder.Web | .NET 6 |
|
|
||||||
BililiveRecorder.Cli | .NET 6 |
|
|
||||||
|
|
||||||
```mermaid
|
|
||||||
graph BT
|
|
||||||
toolbox(BililiveRecorder.Toolbox) --> flv(BililiveRecorder.Flv)
|
|
||||||
core(BililiveRecorder.Core) --> flv
|
|
||||||
wpf(BililiveRecorder.WPF) --> core
|
|
||||||
wpf --> toolbox
|
|
||||||
cli(BililiveRecorder.Cli) --> toolbox
|
|
||||||
cli ---> core
|
|
||||||
web(BililiveRecorder.Web) --> core
|
|
||||||
cli --> web
|
|
||||||
```
|
|
||||||
|
|
||||||
## 参考资料 & 鸣谢
|
|
||||||
|
|
||||||
- [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) 曾在本项目开发早期作为参考
|
|
||||||
- [zyzsdy/biliroku](https://github.com/zyzsdy/biliroku): (大概是)第一个mikufans直播录播工具
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,19 @@
|
||||||
|
name: BililiveRecorder
|
||||||
|
tags:
|
||||||
|
- 实用工具
|
||||||
|
title: 哔哩哔哩直播录制工具
|
||||||
|
description: 哔哩哔哩直播录制工具
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
key: BililiveRecorder #应用的 key ,仅限英文,用于在 Linux 创建文件夹
|
key: bililive-recorder
|
||||||
name: mikufans录播姬 #应用名称
|
name: BililiveRecorder
|
||||||
tags:
|
tags:
|
||||||
- Tool
|
- Tool
|
||||||
- Local #应用标签,可以有多个,请参照下方的标签列表
|
shortDescZh: 哔哩哔哩直播录制工具
|
||||||
shortDescZh: 一个简单好用免费开源的直播录制工具 #应用中文描述,不要超过30个字
|
shortDescEn: Bilibili live stream recording tool
|
||||||
shortDescEn: A simple and easy-to-use free and open-source live streaming recording tool #应用英文描述
|
type: tool
|
||||||
type: tool #应用类型,区别于应用分类,只能有一个,请参照下方的类型列表
|
crossVersionUpdate: true
|
||||||
crossVersionUpdate: true #是否可以跨大版本升级
|
limit: 0
|
||||||
limit: 0 #应用安装数量限制,0 代表无限制
|
recommend: 0
|
||||||
website: https://rec.danmuji.org/ #官网地址
|
website: https://rec.danmuji.org
|
||||||
github: https://github.com/BililiveRecorder/BililiveRecorder #github 地址
|
github: https://github.com/BililiveRecorder/BililiveRecorder
|
||||||
document: https://rec.danmuji.org/install/versions/ #文档地址
|
document: https://rec.danmuji.org/install/versions/
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
CONTAINER_NAME="bililive-recorder"
|
||||||
|
PANEL_APP_PORT_HTTP=40278
|
||||||
|
PGID=1000
|
||||||
|
PUID=1000
|
||||||
|
UMASK=22
|
||||||
|
USER_NAME="admin"
|
||||||
|
USER_PASSWORD="admin"
|
||||||
|
WORK_SPACE_PATH="./data"
|
||||||
|
|
@ -0,0 +1,55 @@
|
||||||
|
additionalProperties:
|
||||||
|
formFields:
|
||||||
|
- default: "40278"
|
||||||
|
edit: true
|
||||||
|
envKey: PANEL_APP_PORT_HTTP
|
||||||
|
labelEn: Port
|
||||||
|
labelZh: 端口
|
||||||
|
required: true
|
||||||
|
rule: paramPort
|
||||||
|
type: number
|
||||||
|
- default: admin
|
||||||
|
edit: true
|
||||||
|
envKey: USER_NAME
|
||||||
|
labelEn: WebUI Username
|
||||||
|
labelZh: WebUI 的用户名
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: admin
|
||||||
|
edit: true
|
||||||
|
envKey: USER_PASSWORD
|
||||||
|
labelEn: WebUI access password
|
||||||
|
labelZh: WebUI 的访问密码
|
||||||
|
random: true
|
||||||
|
required: true
|
||||||
|
rule: paramComplexity
|
||||||
|
type: password
|
||||||
|
- default: "./data"
|
||||||
|
edit: true
|
||||||
|
envKey: WORK_SPACE_PATH
|
||||||
|
labelEn: work space path (Pay attention to folder permissions)
|
||||||
|
labelZh: 工作目录路径 (注意文件夹权限)
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: "022"
|
||||||
|
edit: true
|
||||||
|
envKey: UMASK
|
||||||
|
labelEn: UMASK
|
||||||
|
labelZh: 文件权限掩码
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: "1000"
|
||||||
|
edit: true
|
||||||
|
envKey: PUID
|
||||||
|
labelEn: User ID
|
||||||
|
labelZh: 用户 ID
|
||||||
|
required: true
|
||||||
|
type: number
|
||||||
|
- default: "1000"
|
||||||
|
edit: true
|
||||||
|
envKey: PGID
|
||||||
|
labelEn: Group ID
|
||||||
|
labelZh: 用户组 ID
|
||||||
|
required: true
|
||||||
|
type: number
|
||||||
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
services:
|
||||||
|
recorder:
|
||||||
|
image: "bililive/recorder:latest"
|
||||||
|
container_name: ${CONTAINER_NAME}
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- 1panel-network
|
||||||
|
volumes:
|
||||||
|
- "${WORK_SPACE_PATH}:/rec"
|
||||||
|
ports:
|
||||||
|
- "${PANEL_APP_PORT_HTTP}:2356"
|
||||||
|
environment:
|
||||||
|
- BREC_HTTP_BASIC_USER=${USER_NAME}
|
||||||
|
- BREC_HTTP_BASIC_PASS=${USER_PASSWORD}
|
||||||
|
- UMASK=${UMASK}
|
||||||
|
- PUID=${PUID}
|
||||||
|
- PGID=${PGID}
|
||||||
|
labels:
|
||||||
|
createdBy: "Apps"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
1panel-network:
|
||||||
|
external: true
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
chown -R 1000:1000 data
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 3.2 KiB |
Loading…
Reference in New Issue