feat:优化bililive-recorder

This commit is contained in:
okxlin 2024-08-04 01:02:21 +08:00
parent c28a87c3a4
commit 7f139f488e
13 changed files with 170 additions and 112 deletions

View File

@ -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"

View File

@ -1,6 +1,6 @@
additionalProperties:
formFields:
- default: 2356
- default: "40278"
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Port
@ -9,23 +9,47 @@ additionalProperties:
rule: paramPort
type: number
- default: admin
edit: true
envKey: USER_NAME
labelEn: WebUI Username
labelZh: WebUI的用户名
labelZh: WebUI 的用户名
required: true
type: text
- default: admin
edit: true
envKey: USER_PASSWORD
labelEn: WebUI access password
labelZh: WebUI的访问密码
labelZh: WebUI 的访问密码
random: true
required: true
rule: paramComplexity
type: password
- default: ./rec
- default: "./data"
edit: true
envKey: WORK_SPACE_PATH
labelEn: work space path
labelZh: 工作目录路径
labelEn: work space path (Pay attention to folder permissions)
labelZh: 工作目录路径 (注意文件夹权限)
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

View File

@ -1,10 +1,10 @@
services:
recorder:
image: bililive/recorder:2.12.0
image: "bililive/recorder:2.12.0"
container_name: ${CONTAINER_NAME}
restart: always
networks:
- 1panel-network
restart: always
networks:
- 1panel-network
volumes:
- "${WORK_SPACE_PATH}:/rec"
ports:
@ -12,9 +12,12 @@ services:
environment:
- BREC_HTTP_BASIC_USER=${USER_NAME}
- BREC_HTTP_BASIC_PASS=${USER_PASSWORD}
- UMASK=022
- PUID=1000
- PGID=1000
networks:
1panel-network:
external: true
- UMASK=${UMASK}
- PUID=${PUID}
- PGID=${PGID}
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

View File

@ -0,0 +1,3 @@
#!/bin/bash
chown -R 1000:1000 data

View File

@ -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录播姬
## 安装
[![Build and Test](https://github.com/BililiveRecorder/BililiveRecorder/actions/workflows/build.yml/badge.svg?branch=dev)](https://github.com/BililiveRecorder/BililiveRecorder/actions/workflows/build.yml)
[![Version](https://img.shields.io/github/tag/Bililive/BililiveRecorder.svg?label=Version)](#)
[![License](https://img.shields.io/github/license/Bililive/BililiveRecorder.svg)](#)
[![Crowdin](https://badges.crowdin.net/bililiverecorder/localized.svg)](https://crowdin.com/project/bililiverecorder)
在 [rec.danmuji.org](https://rec.danmuji.org) 提供了有自动更新功能的安装包。
或者也可以在 [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直播录播工具
</div>

View File

@ -1,14 +1,19 @@
name: BililiveRecorder
tags:
- 实用工具
title: 哔哩哔哩直播录制工具
description: 哔哩哔哩直播录制工具
additionalProperties:
key: BililiveRecorder #应用的 key ,仅限英文,用于在 Linux 创建文件夹
name: mikufans录播姬 #应用名称
tags:
- Tool
- Local #应用标签,可以有多个,请参照下方的标签列表
shortDescZh: 一个简单好用免费开源的直播录制工具 #应用中文描述不要超过30个字
shortDescEn: A simple and easy-to-use free and open-source live streaming recording tool #应用英文描述
type: tool #应用类型,区别于应用分类,只能有一个,请参照下方的类型列表
crossVersionUpdate: true #是否可以跨大版本升级
limit: 0 #应用安装数量限制0 代表无限制
website: https://rec.danmuji.org/ #官网地址
github: https://github.com/BililiveRecorder/BililiveRecorder #github 地址
document: https://rec.danmuji.org/install/versions/ #文档地址
key: bililive-recorder
name: BililiveRecorder
tags:
- Tool
shortDescZh: 哔哩哔哩直播录制工具
shortDescEn: Bilibili live stream recording tool
type: tool
crossVersionUpdate: true
limit: 0
recommend: 0
website: https://rec.danmuji.org
github: https://github.com/BililiveRecorder/BililiveRecorder
document: https://rec.danmuji.org/install/versions/

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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