acgnhiki / blrec

Bilibili Live Streaming Recorder 哔哩哔哩直播录制
GNU General Public License v3.0
588 stars 40 forks source link

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

Open 1c7 opened 2 years ago

1c7 commented 2 years ago

预计阅读全文所需时间: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 commented 2 years ago

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

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

比如这样:

image

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

image

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

image

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

image

登录成功长这样

image

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

1c7 commented 2 years ago

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

# 更新
sudo apt update

# 安装 Docker
sudo apt install docker.io

# 启动 Docker
sudo systemctl start docker

# 获取镜像
sudo docker pull acgnhiki/blrec
1c7 commented 2 years ago

第三步:运行 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 commented 2 years ago

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

image
1c7 commented 2 years ago

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

这里的思路是用腾讯云的 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 commented 2 years ago

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

image

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

image image

全文完

感谢阅读

1c7 commented 2 years ago

结论

  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. 有没有更好的方案?暂时想不到。
frankcui95 commented 2 years ago

结论

  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 commented 2 years ago

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

image

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

frankcui95 commented 2 years ago

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

image

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

对没错!就是这样

PiraticAshin commented 2 years ago

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

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

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

frankcui95 commented 2 years ago

哈哈,出站流量是挺贵的。哪个平台都贵

在 2022年10月3日,23:41,pirashin @.***> 写道:

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

自2022年5月9日起,对象存储(Cloud Object Storage,COS)服务将不再支持新增默认 CDN 加速域名。

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

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.

PiraticAshin commented 2 years ago

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

frankcui95 commented 2 years ago

隔壁出网一个G三块六呗,坑爹玩意存储费也很贵

在 2022年10月4日,16:20,pirashin @.***> 写道:

 腾讯还算好的,隔壁阿里坑不死你

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.