Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[教程分享] 如何在腾讯云上面开一台机器跑 blrec 并且把视频文件下载到本地。 #59

Open
1c7 opened this issue May 7, 2022 · 14 comments

Comments

@1c7
Copy link

1c7 commented May 7, 2022

预计阅读全文所需时间:10分钟。

写给什么读者?

这篇文章主要是写给有一定编程基础的人(会用命令行,知道云服务器是什么,大概知道 Docker 是什么,知道浏览器里 URL 的端口是什么)
谁能看懂?:新手程序员+有基础英语能力。
谁看不懂?:完全没有编程经验的人。

介绍(对读者有什么用)

这篇教程讲的是如何在腾讯云上面开一台机器(腾讯云上的正式名字叫 云服务器(Cloud Virtual Machine,CVM))
在服务器上跑 blrec,录完之后把视频下载到自己的电脑。

image

反正国内的云服务商只有阿里云/腾讯云不错。
我选腾讯云是随便选的,没有什么特别的理由。

原因(为什么要在服务器上跑 blrec)

blrec 也好,bililive 也好(一个命令行录制 B 站直播的工具),
你不可能24小时运行自己的笔记本(比如我只有一台 MacBook Pro 工作用,没有台式也没有其他闲置的机器)
所以用服务器 24x7 全天候录制,然后自己隔几天把视频文件下载下来,是最好的。

步骤大纲

  1. 在腾讯云新建一台云服务器,在快速配置里最便宜的机器是:2核2GB + 硬盘50G + 宽带 1Mbps + 时长1个月,费用共 65.50 元(我选的是南京区,因为看到后面有一个"惠"字,应该是优惠的意思)
  2. 登录这台云服务器,安装 Docker,并且把 blrec 的 Docker 镜像下载下来。
  3. 运行 blrec 的 docker 镜像。
  4. 此时可以通过 IP 地址比如 http://118.195.185.203:2233/ 访问了。
  5. 录制完成后,视频已经存在服务器上了,那么用 coscli 把整个目录传输到 COS(注意,CVM 和 COS 要在同一个 region,比如我的机器是南京区,那么 COS 的那个存储桶也必须在南京区,内网的上传速度极快,如果是不同区域,就会被 1Mbps 的小水管卡住。上传文件到 COS 这一步的意义是如果你直接从 CVM 下载文件,因为公网带宽是 1Mbps,那么下载速度极慢,大概 200 KB/S。传到 COS 是为了给下载加速。
  6. 别忘了给存储桶开启 CDN,通过 CDN 下载的话,流量费用会便宜一点。
  7. 可以用 COS Browser 这样的工具,把一整个文件夹下载到你本机,省事。

费用大纲

  1. 一台最便宜的机器 65.5 元一个月。
  2. COS 如果直接下载是 0.5元/GB,开了 CDN 之后一个月下来估计也就几十块钱吧,具体请使用价格计算器:https://buy.cloud.tencent.com/price/cdn/calculator

费用结论

一个月下来,费用是 65.5 元 + 你下载视频的流量费用,一般来说如果你随便录一点,应该能控制在一个月100元以内。

@1c7
Copy link
Author

1c7 commented May 7, 2022

正文(详细步骤,包含了给你复制黏贴运行的命令)

(这里假设你已经在腾讯云上购买了一台服务器)

比如这样:

image

第一步我们先登录进去这台机器

image

点击"登录"会进入这个页面,你只需要填密码就行

image

服务器的密码在站内信里获取

image

登录成功长这样

image

注意这里是 Ubuntu 20.04。如果你的操作系统不同,那么后续的命令也会有明显不同。

@1c7
Copy link
Author

1c7 commented May 7, 2022

第二步:安装 Docker 并获取 blrec 的 Docker Image。

# 更新
sudo apt update

# 安装 Docker
sudo apt install docker.io

# 启动 Docker
sudo systemctl start docker

# 获取镜像
sudo docker pull acgnhiki/blrec

@1c7
Copy link
Author

1c7 commented May 7, 2022

第三步:运行 blrec 的镜像

sudo docker run \
    -v /etc/blrec:/cfg -v /var/log/blrec:/log -v ~/blrec:/rec \
    -dp 2233:2233 acgnhiki/blrec \
    -c /cfg/another_settings.toml \
    --api-key bili2233

重点

  1. --api-key 相当于你的登录密码。建议把 bili2233 改成其他的密码。
  2. 录制完成的视频会存储在 ~/blrec 目录,也就是你的 home 目录下的 blrec/
    比如我的是 /home/ubuntu/blrec

补充

我没用 HTTPS 因为我懒,我打算直接 IP 访问服务器。

@1c7
Copy link
Author

1c7 commented May 7, 2022

此时应该可以通过 IP 访问了
image

@1c7
Copy link
Author

1c7 commented May 7, 2022

最后一步:录制完成后怎么从服务器上取回到你的本机。

这里的思路是用腾讯云的 CVM 把文件传到 COS。然后把 COS 里面的文件下载到你的机器(你的笔记本或者台式机)。
路线是这样:CVM -> COS -> 你的电脑(下载速度快)
而不是这样:CVM -> 你的电脑(下载速度慢)
原理:CVM 的带宽很贵,买最便宜的 1Mbps 就够了,但是 1Mbps 外网下载很慢。所以通过 CVM 内网传到 COS(很快)然后 COS 下载到你电脑(很快)

先安装 COS 的 CLI

# 下载文件
wget https://cosbrowser.cloud.tencent.com/software/coscli/coscli-linux

# 文件改名
mv coscli-linux coscli

# 修改权限
chmod 755 coscli

# 显示帮助信息
./coscli --help

手动去 COS 创建一个存储桶,注意,一定要和你的 CVM Region 一致。

比如 CVM 是南京,那么 COS 也要是南京。

配置 COS CLI

./coscli config init
# 注意:如果运行第二次 init,之前的信息会被清空。

比如:
SecretId  XXX1XrIUO18VLuKsIS8zpJVQH8i333nG7Ozm
SecretKey  JxxLEqBI86lUq9j41RDk8b3mBL273qwl

Session Token 在这里不需要,我们可以不写,直接回车跳过。

Input Your Bucket's Name:
blrec-1258582250

Input Bucket's Endpoint:
cos.ap-nanjing.myqcloud.com

Input Bucket's Alias: (Input nothing will use the original name):
cos-blrec

# 显示配置
./coscli config show

注意上面这里的 config 只是示例,你当然需要改成你自己的。

把服务器上的文件传到 COS

./coscli sync /home/ubuntu/blrec/ cos://cos-blrec/ -r

@1c7
Copy link
Author

1c7 commented May 7, 2022

给 COS 的这一个 bucket 开启 CDN(目的:下载流量会便宜一点)

image

文件既然已经在 COS 上了,那么我们通过 COS Browser 把文件下载到本机。

image

image

全文完

感谢阅读

@1c7
Copy link
Author

1c7 commented May 7, 2022

结论

  1. (钱)要花多少钱?一个月在 65元~100元之间。
  2. (时间)在腾讯云上搭建 blrec 的总耗时:大约10分钟。
  3. 这样费不费劲?有点。
    1. 要开台机器
    2. 要跑大概10条命令,外加输入一些配置信息。
  4. 有没有更好的方案(无需有人专门值守的24x7全天候)来录制 B 站直播?目前暂未发现,blrec 和 bililive 是目前我知道的唯二方案(macOS 上的)(貌似 Windows 上有别的软件但是我 macOS 肯定用不了嘛)
  5. 每次想要下载新录制好的视频,都要登录到网页终端(大概2分钟),跑 ./coscli sync /home/ubuntu/blrec/ cos://cos-blrec/ -r(30秒以内完成),然后从 COS Browser 下载视频文件(耗时未知,取决于你下载多大的文件),麻不麻烦?
    1. 一共三步,是有点麻烦。
    2. 有没有更好的方案?暂时想不到。

@acgnhiki acgnhiki pinned this issue May 8, 2022
@frankcui95
Copy link
Contributor

frankcui95 commented May 11, 2022

结论

  1. (钱)要花多少钱?一个月在 65元~100元之间。

  2. (时间)在腾讯云上搭建 blrec 的总耗时:大约10分钟。

  3. 这样费不费劲?有点。

    1. 要开台机器
    2. 要跑大概10条命令,外加输入一些配置信息。
  4. 有没有更好的方案(无需有人专门值守的24x7全天候)来录制 B 站直播?目前暂未发现,blrec 和 bililive 是目前我知道的唯二方案(macOS 上的)(貌似 Windows 上有别的软件但是我 macOS 肯定用不了嘛)

  5. 每次想要下载新录制好的视频,都要登录到网页终端(大概2分钟),跑 ./coscli sync /home/ubuntu/blrec/ cos://cos-blrec/ -r(30秒以内完成),然后从 COS Browser 下载视频文件(耗时未知,取决于你下载多大的文件),麻不麻烦?

    1. 一共三步,是有点麻烦。
    2. 有没有更好的方案?暂时想不到。

不妨试试自动化思路
走webhook,写脚本自动同步到COS,然后再trigger本地的监听(push deer之类的,或者自己写),拉到本地

@1c7
Copy link
Author

1c7 commented May 11, 2022

@Maireo 我没理解你提的这个方案。

image

你的意思是把 "录制完成" 做一个 webhook。
然后发一个请求到自己的服务器,自己的服务器这边简单写几行代码,一旦收到访问。立马跑一个 coscli sync 命令 自动同步到 COS 去?

@frankcui95
Copy link
Contributor

@Maireo 我没理解你提的这个方案。

image

你的意思是把 "录制完成" 做一个 webhook。 然后发一个请求到自己的服务器,自己的服务器这边简单写几行代码,一旦收到访问。立马跑一个 coscli sync 命令 自动同步到 COS 去?

对没错!就是这样

@PiraticAshin
Copy link

PiraticAshin commented Oct 3, 2022

现在来看,这套方案怕是不可行了。
主要是默认CDN加速域名被阉了。
腾讯云的官方文档

自2022年5月9日起,对象存储(Cloud Object Storage,COS)服务将不再支持新增默认 CDN 加速域名。您已开启、或曾经开启的默认 CDN 加速域名不会受到影响,可以继续使用,但建议您使用自定义 CDN 加速域名代替默认 CDN 加速域名。

而使用自定义域名接入国内CDN需要备案,各种风险属于是懂得都懂。
只能考虑付出昂贵的COS出站流量费用了。

@frankcui95
Copy link
Contributor

frankcui95 commented Oct 3, 2022 via email

@PiraticAshin
Copy link

PiraticAshin commented Oct 4, 2022

腾讯还算好的,隔壁阿里是真的豪

@frankcui95
Copy link
Contributor

frankcui95 commented Oct 4, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants