screen的一些常用命令和快捷键

1 安装screen

在linux上安装screen时候

apt-get install screen

报错:

E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
看来需要更高的sudo权限。

因此使用

sudo apt-get install screen

输入密码,然后就可以顺利安装了。

$ sudo apt-get install screen
[sudo] password for LIST_2080Ti:
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages were automatically installed and are no longer required:
dctrl-tools dkms libatomic1:i386 libbsd0:i386 libdrm-amdgpu1:i386 libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libdrm2:i386 libedit2:i386 libelf1:i386
libexpat1:i386 libffi7:i386 libgl1:i386 libgl1-mesa-dri:i386 libglapi-mesa:i386 libglvnd0:i386 libglx-mesa0:i386 libglx0:i386 libllvm12:i386 libnvidia-cfg1-515-server
libnvidia-compute-515-server libnvidia-compute-515-server:i386 libnvidia-decode-515-server libnvidia-decode-515-server:i386 libnvidia-encode-515-server
libnvidia-encode-515-server:i386 libnvidia-extra-515-server libnvidia-fbc1-515-server libnvidia-fbc1-515-server:i386 libpciaccess0:i386 libsensors5:i386 libstdc++6:i386
libvulkan1:i386 libwayland-client0:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386 libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386
libxcb-randr0:i386 libxcb-shm0:i386 libxcb-sync1:i386 libxcb-xfixes0:i386 libxcb1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386 libxshmfence1:i386 libxxf86vm1:i386
mesa-vulkan-drivers:i386 nvidia-compute-utils-515-server nvidia-dkms-515-server nvidia-kernel-common-515-server nvidia-kernel-source-515-server nvidia-utils-515-server
xserver-xorg-video-nvidia-515-server
Use ‘sudo apt autoremove’ to remove them.
The following additional packages will be installed:
libutempter0
Suggested packages:
byobu | screenie | iselect
The following NEW packages will be installed:
libutempter0 screen
0 upgraded, 2 newly installed, 0 to remove and 16 not upgraded.
Need to get 586 kB of archives.
After this operation, 1,073 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal/main amd64 libutempter0 amd64 1.1.6-4 [8,256 B]
Get:2 https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates/main amd64 screen amd64 4.8.0-1ubuntu0.1 [577 kB]
Fetched 586 kB in 0s (1,777 kB/s)
Selecting previously unselected package libutempter0:amd64.
(Reading database … 197917 files and directories currently installed.)
Preparing to unpack …/libutempter0_1.1.6-4_amd64.deb …
Unpacking libutempter0:amd64 (1.1.6-4) …
Selecting previously unselected package screen.
Preparing to unpack …/screen_4.8.0-1ubuntu0.1_amd64.deb …
Unpacking screen (4.8.0-1ubuntu0.1) …
Setting up libutempter0:amd64 (1.1.6-4) …
Setting up screen (4.8.0-1ubuntu0.1) …
Processing triggers for man-db (2.9.1-1) …
Processing triggers for install-info (6.7.0.dfsg.2-5) …
Processing triggers for libc-bin (2.31-0ubuntu9.9) …
/sbin/ldconfig.real: /lib/i386-linux-gnu/libGL.so.1 is not a symbolic link

/sbin/ldconfig.real: /lib/x86_64-linux-gnu/libstdc++.so.6 is not a symbolic link

Processing triggers for systemd (245.4-4ubuntu3.19) …
如上所示,screen就安装成功了。
2 创建-查询-进入-退出-删除

创建窗口并命名
screen -S start1
查询所有窗口名字
screen -ls
退出当前窗口,快捷键:Ctrl+A+D

重新进入窗口
screen -r start1
这就是我创建的两个窗口名字:

(base) LIST_2080Ti@ubuntu-SYS-7049GP-TRT:/2080/CHB-MIT-DATA/epilepsy_eeg_classification$ screen -ls
There are screens on:
2076618.start1 (02/05/2023 11:07:16 PM) (Attached)
2073921.train (02/05/2023 10:53:28 PM) (Attached)
2 Sockets in /run/screen/S-LIST_2080Ti.
(base) LIST_2080Ti@ubuntu-SYS-7049GP-TRT:
/2080/CHB-MIT-DATA/epilepsy_eeg_classification$
右上角显示你创立的窗口。

如果有事离开关闭电脑,可以用快捷键 Ctrl+a d(即按住 Ctrl,依次再按 a,d),而会话中的程序不会关闭,仍在运行。

删除窗口

screen -X -S 2076618.start1 quit

screen -X -S 2073921.train quit
3 screen常用快捷键

快捷键
ctrl a ctrl a,最近使用的两个窗口之间切换
ctrl a + 数字,切换到某个窗口
ctrl a + d,detach
ctrl a + k,关闭当前窗口
ctrl a + :,进入命令行模式
ctrl a a,screen的快捷键的prefix默认是ctrl+a,这与bash中的快捷键(ctrl+a,回到命令开头)冲突,在screen要先按ctrl + a,再按a就可以了,注意不要和窗口切换的快捷键弄混
ctrl a + [,进入复制模式,这个我用来翻屏
ctrl a + A,修改当前窗口的名称

4 如何使用screen运行程序

步骤1:创建screen
screen -S screen_name
步骤2:激活虚拟环境
conda activate conda_name
步骤3:在你的项目文件夹下运行
python run.py
步骤4:退出服务器该运行界面
Ctrl+A+D
步骤5:恢复screen界面查看程序运行情况
screen -r screen_name
步骤6:执行完程序,关闭窗口
screen -X -S screen_name quit

如果不记得screen的名字,可以查询你所创建的所有窗口
screen -ls

自建在线网页代理

一、前言

本篇的在线网页代理是匿名浏览网页工具,与上篇 自建远程浏览器 不同的地方在于

  • neko远程浏览器是服务器解码 传输画面给客户端,而在线匿名浏览器代理类似于转发工具 对服务器配置要求较低
  • neko可多人协同,而在线匿名浏览器代理每个用户是独立的

在线网页代理的程序很多,以下为我知道的

我个人感觉 hnet 和 croxyproxy 支持的应用比较完善

大家可以体验我搭建的hnet演示站:https://web.tanglu.me

该演示站持续维护,任何人都可以使用,有需要的小伙伴可以加个收藏夹

本文以Debian11系统的vps来演示安装hnet 1H1G即可

二、安装node和npm

node版本需要16以上,推荐18

apt/yum安装的版本过低,所以需要手动安装

|

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#下载node包
wget https://nodejs.org/dist/v18.15.0/node-v18.15.0-linux-x64.tar.xz

#解压
tar -xvf node-v18.15.0-linux-x64.tar.xz

#重命名文件夹
mv node-v18.15.0-linux-x64 nodejs

#将npm和node通过软连接放入环境变量
ln -sf /root/nodejs/bin/npm /usr/local/bin/npm
ln -sf /root/nodejs/bin/node /usr/local/bin/node

#查看是否有效 node版本需要16以上
node --version
npm --version

image

三、下载hnet文件

hnet也支持cloudflare workers配置,但是有一定可能封号,程序占用不大 建议在vps安装

|

1
2
3
4
5
6
7
8
9
10
11
12
13
###安装git lsof
apt install lsof git -y

#下载文件
cd /root
git clone -b v2 https://github.com/Hideipnetwork/hideipnetwork-web.git

#进入hnet文件夹
cd hideipnetwork-web

#启动hnet
npm install
npm run start

这样就代表启动成功,但是需要在本机反代 56559端口,并且必须通过https访问

image

四、安装pm2配置后台运行

第三节中只要ssh断开 程序就会退出,这里通过pm2管理hnet在后台进程

|

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#安装pm2
npm i pm2 -g

#通过软链接添加到环境变量
ln -s /root/nodejs/bin/pm2 /usr/local/bin/

#查看是否可用
pm2 --version

#进入hnet文件夹
cd /root/hideipnetwork-web

#启动hnet
npm install
pm2 start index.mjs --name HNet

#查看hnet是否正常启动运行
lsof -i:56559

#pm2设置开机自启已启动的程序
pm2 save
pm2 startup

image

image

image

五、通过域名访问

HNet官方强制只能通过https访问,http无法访问,且必须本机反代 56559 端口,不能用其他机器反代

我这里用安装了nginx的宝塔演示

|

1
2
3
4
5
6
7
8
9
10
11
12
13
14
location / {
# proxy_busy_buffers_size 512k;
# proxy_buffers 4 512k;
# proxy_buffer_size 256k;
proxy_pass http://127.0.0.1:56559;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'Upgrade';
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}

|

1
2
3
4
5
6
7
8
9
10
11
12
13
14
宝塔/aapanel需要删除/注释掉这些配置,否则打开是白屏
# location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
# {
# expires 30d;
# error_log /dev/null;
# access_log off;
# }

# location ~ .*\.(js|css)?$
# {
# expires 12h;
# error_log /dev/null;
# access_log off;
# }

image

image

image

六、配置代理

服务器IP可能不适合看流媒体等,这里用 wanhebin 大佬的 clash-for-linux 实现使用机场节点作代理,即linux使用clash-for-linux

你也可以自己搭建socks5或者购买socks5代理,这样就不用安装clash直接编辑HNet文件夹下 proxy/socks5.txt 和 .env 两个文件
无验证的socks5格式为 ‘ip:port’
有用户名密码的socks5格式为 ‘usr:passwd@ip:port’
需要注意的一点是socks5是明文的,过墙很容易被ban

|

1
2
3
4
5
6
7
8
9
10
11
#下载clash-for-linux
cd /root
git clone https://github.com/wanhebin/clash-for-linux.git

#进入到项目目录,编辑.env文件,修改变量CLASH_URL的值
cd clash-for-linux
vim .env

#启动程序
sudo bash ./start.sh

image

访问 http://ip:9090/ui 填入 http://ip:9090 和 secret 即可

image

image

在config里面查看socks5端口,我这里的端口为7891

查看socks5端口是否被clash监听,有输出即正常

|

1
lsof -i:7891

image

image

clash全局模式对HNet并不起作用,因此这里只能为HNet配置socks5代理

修改Hnet /proxy/socks5.txt.env 两个文件

|

1
2
3
4
5
6
7
8
9
10
11
12
#进入HNet目录
cd /root/hideipnetwork-web

#改Hnet proxy/socks5.txt 和 .env 两个文件
#vim proxy/socks5.txt
127.0.0.1:7891 #这里换为你自己的socks5监听端口

#vim .env
PORT = 56559
HOST = "0.0.0.0"
WEBDIR ="/"
MODO = "socks5"

image

这样就让HNet走了代理,但是本机并未开启系统代理,因此其他程序并不会走代理

如果需要其他程序也走机场代理 可以按照如下进行设置

通过 curl ip.gs -4 查看IP 可以发现还是本机IP

查看http环境变量可以知道 并未配置系统代理

|

1
env | grep -E 'http_proxy|https_proxy'

需要执行以下两条命令 启用系统代理

|

1
2
3
source /etc/profile.d/clash.sh

proxy_on

可以通过以下命令查看http环境变量看流量是否走代理端口 可以知道这时其他程序已经使用了代理

|

1
env | grep -E 'http_proxy|https_proxy'

image

作者GitHub项目中写的很详细,剩余命令可以直接参考官方

9090和7890等默认端口都可以订阅文件中修改,TUN模式自行研究,更新订阅可以通过定时脚本

有任何问题可以留言评论 有需要的话可以后期单独出一节linux使用clash的教程

七、屏蔽某些网站

你可以用iptables的字符串屏蔽功能,但是我不是很懂iptables

作者说后续会添加,这里先空着

八、添加快捷方式

image

九、用例展示

1、Google搜索 Google账号登录

image

2、访问youtube

image

3、访问twitter

image

4、访问telegram

image

5、观看netflix等流媒体

image

十、杂谈

HNet暂时无法访问的网站:套了CF5秒盾的网站,chatgpt 等,但是相较其他在线代理工具还是挺不错的,作者后续会继续优化

首页无法调出开发者模式,但其他页面正常,首页也不需要用到F12

Docker命令

docker常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#info|version
docker info #显示docker的系统信息,包括镜像和容器的数量
docker version #显示docker的版本信息。
#帮助命令
docker 命令 --help #帮助命令
#镜像命令
docker images #查看所有本地主机上的镜像 可以使用docker image ls代替
docker search #搜索镜像
docker pull #下载镜像 docker image pull
docker rmi #删除镜像 docker image rm
#容器命令
docker run 镜像id #新建容器并启动
docker ps 列出所有运行的容器 docker container list
docker rm 容器id #删除指定容器
#删除所有容器
docker rm -f $(docker ps -aq) #删除所有的容器
docker ps -a -q|xargs docker rm #删除所有的容器
#启动和停止容器
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器
#退出容器
exit #容器直接退出
ctrl +P +Q #容器不停止退出 ---注意:这个很有用的操作
#其他常用命令
docker run -d 镜像名 #后台启动命令
docker logs #查看日志
docker top 容器id #查看容器中进程信息ps
docker inspect 容器id #查看镜像的元数据
docker exec #进入当前容器后开启一个新的终端,可以在里面操作。(常用)
docker attach # 进入容器正在执行的终端
docker cp 容器id:容器内路径 主机目的路径 #从容器内拷贝到主机上

用PS怎样把图片的白色背景变为透明

方法/步骤

  1. 打开PS软件,点击文件–打开。打开一张图片到画布中。

    用PS怎样把图片的白色背景变为透明

    用PS怎样把图片的白色背景变为透明

  2. 在图层面板的背景图层小锁上双击。然后,在弹出的窗口中直接点击确定,给图层解锁。

    用PS怎样把图片的白色背景变为透明

  3. 在图层面板的下方,点击“fx”小图标。在弹出的列表中点击“混合选项”。

    用PS怎样把图片的白色背景变为透明

  4. 混合选项面板中提供了一些由我们调整的属性和参数。

    用PS怎样把图片的白色背景变为透明

  5. 混合颜色带选择灰色,并把本图层色带右边的小三角向左滑动。在滑动的过程中,可以看到背景逐渐变为透明。

    用PS怎样把图片的白色背景变为透明

    总结

  6. 1、打开PS软件,点击文件–打开。打开一张图片到画布中。

    2、在图层面板的背景图层小锁上双击。然后,在弹出的窗口中直接点击确定,给图层解锁。

    3、在图层面板的下方,点击“fx”小图标。在弹出的列表中点击“混合选项”。

    4、混合选项面板中提供了一些属性和参数。我们在混合颜色带选择灰色,并把本图层色带右边的小三角向左滑动。在滑动的过程中,可以看到背景逐渐变为透明。

    注意事项

  • 此方法适合处理背景为纯色且对比比较明显的图片。
  • 我这里使用的软件版本是PS CC 2014。

【AI画图】stable-diffusion_webui on colab

| | stable-diffusion不再解释,当下火热的AI画图项目

Colab 是谷歌提供的一种托管式 Jupyter 笔记本服务,只需要知道可以白piao他家的gpu即可。

准备工作

Windows+chromium内核浏览器
因为是谷歌的服务,所以自行配置好网络环境,保正能上谷歌即可。
【注意】断开后Colab将不能运行

提前登录谷歌账号;GitHub账号;GoogleDrive
提前下载
https://huggingface.co/stabilityai/sd-vae-ft-mse-original/blob/main/vae-ft-mse-840000-ema-pruned.ckpt
将其上传至GoogleDrive根目录(最好复制一份作为备份)

收藏并以GitHub登录https://civitai.com/
以便后续使用(开启NSFW,找提示词等)

stable-diffusion_webui使用的是这个项目【以下简称SDwebui】
https://github.com/camenduru/stable-diffusion-webui-colab
个人现在使用的是这个
https://colab.research.google.com/github/camenduru/stable-diffusion-webui-colab/blob/main/stable/stable\_diffusion\_v2\_1\_webui\_colab.ipynb


准备工作完毕,开始搭建环境
打开colab(上面的那个链接)和civitai


此时应该是这样的,不要着急运行,点左边的文件夹打开


接着点上面的装载谷歌云端硬盘


将滑块(有两层,最外层)拉到最下方,点上移单元格,然后执行

执行后会弹出一个验证,连接到谷歌云盘。

验证后点文件下面的刷新按钮(不是刷新网页)
等待片刻,就会出现drive的目录,将开始上传的VAE拖拽到SD的VAE目录(移动)


最后点击运行这个单元格开始安装相关依赖和程序


经过漫长的等待,最后会生成几个网址,指向本次搭的SD服务

[当然是建议https]

开始使用

点开刚生成的任意一个链接(不建议多人使用)

[搭建成功应该是这样]

先加载SD VAE,刚我们从谷歌盘拉过来的那个。

【注意】没有的话点旁边的刷新

接着我们打开civitai,找个喜欢的模型,比如ChilloutMix,如果你看不到说明没有登录,里面含有NSFW内容,默认是不给显示的。
复制这个名称回到SDwebui,在Civitai按照图示依次完成搜索到下载,注意中间有进度条要等待,开始下载后在colab后台能看到进度。

(这个模型看你自己需要来决定是否备份到谷歌云盘,停止程序后可以使用copy命令完成备份,在我看来谷歌盘要快得多)

又是经过漫长的等待,回到SDwebui的主界面,与配置SD VAE一样,载入下载好的主模型(checkpoint)

如此一来就可以开始我们的绘图之旅

开始绘图

先熟悉主界面的几个功能

txt2img 文生图
img2img 图生图,好处是有一定的可控性,比如色彩比如构图
image Browser 图片浏览(已经完成的图片)
Extras 通常执行批量ai放大
————————————————————————————————————————————————————————————-
CivitAi 模型站
Hugging Face 需要token,可以直接从上面下开头那个VAE
————————————————————————————————————————————————————————————-
Setting 设置
Extensions 插件
Train 训练

流程:
打开CivitAi找喜欢的模型,载入到SDwebui中,紧接着在模型下方的展示页面里,物色几张好看的图,点入右下角找提示词
将刚刚的Prompt和Negative Prompt填入框中,Prompt为想要的关键词,Negative Prompt为不想要的关键词。


根据需要选择适当的method,steps,CFG以及尺寸。

这里注意尺寸越大速度越慢,并且后续会执行ai放大,建议设置为1500以内,需要快速出图的,请设置在1000以内,并控制步数在20左右。
最后点击generate生成就可以了

同样的,可以在colab后台看到进度


完成后,继续点击send to img2img进行放大


依次在底部script选择SD upscale,根据需要调整下方的Scale Factor(2即为两倍放大)
Upscaler建议勾选R-ESRGAN 4x+,其余参数请自行尝试。

上方的Denoising strength建议根据模型调整至适当的值,有说法值越高,程序参与改动越多,比如破图。
最后点击生成,等待结果

【非常重要】过高的尺寸将大幅提升计算时间,甚至造成绘图失败

Lora的使用

简单解释下,一般几种模型可以这么理解:checkpoint为主模型,决定整张图的艺术风格,VAE相当于配色影响图片质感。而Lora则可以当作辅助模型,它可以是雷电将军,也可以是八重樱,可以是奥特曼,也可以是孙悟空,记录了素材的特征,根据这些特征以checkpoint的艺术风格生成图片。
并且Lora是可以自己训练的,难度不高。

同样,我们需要去CivitAi找喜欢的Lora模型,复制名称回到SDwebui,和checkpoint一样,务必在搜索之前勾选Lora


回到主界面,在下方点开Additional Networks,刷新模型,直接第一个模型下拉找到刚下好的Lora(没有说明你没下好),选中后务必勾选Enable。

如法炮制,仅供参考
|
| —————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————- |

Vercel 配置

VERCEL_TOKEN

您的 Vercel 账户密钥 在 此处 生成

1
xxxxxxxxxxxxxxxxxxxxxxxx

PROJECT_ID

您 Qexo 部署所在项目的 ID 位于 Project Settings -> General -> Project ID

1
prj_xxxxxxx

打造全自动B站录播机

前言

随着B站虚拟主播越来越多,很多主播/粉丝都有录播的需求。当然不是粉丝也可以做录播。现在录播基本上都是在服务器上实时监测,监测到主播开播之后就会自动开始录播。就我个人而言,录播可能是防止错过关注的主播直播,或者是没时间看,就看看录播。还有就是看看有没有好玩的地方可以做成切片素材,这样可以做成切片上传到B站,也可以获得一定的收益(聊胜于无,但可以用来支付服务器开销)。

这种全自动的录播机也可以帮你赚到钱,前提是你自己能去主动找主播推荐自己的切片服务。你可以收取技术指导费,然后教主播怎么弄。也可以直接提供全自动录播上传一条龙服务,然后主播按月付费这种形式。推荐找几万粉的小虚拟主播谈这个,因为粉丝多了自然会有人自发去做这个。几万粉的小主播有一定的直播收入来源,忠实粉丝相对较少,不一定有能且愿意的人。商业化的方向请自行探索。这里提到的只供参考。

工具选择

我这里介绍两个工具,他们各自都有各自的特点。看你自己喜欢哪一个

1、BililiveRecorder 又名B站录播姬

源码:BililiveRecorder

特点:

  • 使用简单
  • 主播开播后自动开始录制
  • 同时录制多个直播间
  • 自动修复B站直播服务器导致的各种问题
  • 工具箱模式,用于修复旧版录播姬或其他软件录的视频文件
  • 纯 C# 实现,无 ffmpeg 等 native 依赖

拥有图形化界面,操作简单。可以快速添加房号,可以在线播放,存储弹幕信息。支持webhook

缺点:无法进行投稿。可以使用其他B站投稿程序进行投稿。如**auto-bilibili-recorder**

界面:

webui

房间列表

文件管理器

设置

日志

file/文件浏览器

播放页:

2、biliup

  • 支持自动录制各大主流直播平台实时直播流,包括但不限于acfun,afreecaTV,哔哩哔哩,斗鱼,抖音,虎牙,网易CC,猫耳FM,Twitch,YY直播等,并于录制结束后上传到哔哩哔哩视频网站。
  • 支持YouTube,twitch直播回放列表自动搬运至b站,如链接https://www.twitch.tv/xxxx/videos?filter=archives&sort=time
  • 自动选择上传线路,保证国内外vps上传质量和速度
  • 可分别控制下载与上传并发量
  • 支持 cos-internal,腾讯云上海内网上传,免流 + 大幅提速
  • 实验性功能:
    • 防止录制花屏
    • 启动时加入--http选项并访问localhost:19159可使用webUI (建议使用toml配置文件)

缺点就是配置较为繁琐,其他都还行。

请根据自己的需求选择上面的程序。

教程

1、服务器选择与购买

服务器我选择的是腾讯云的轻量云,地域是上海。主要是B站上传投稿有一条线路是COS内网。选择上海的轻量服务器,可以直接走内网上传到COS,速度肯定是拉满的。其次是B站的直播分发主要还是国内,所以能选国内服务器尽量还是选择国内服务器。

轻量服务器应用专场:活动地址

最低配置:2C2G4M 50GB SSD

推荐配置:4C8G12M 180GB SSD

推荐选择4C8G12M的服务器。主要是硬盘不能太小,不然录制原画画质的情况下15分钟左右文件大小就有1GB了,遇上高强度直播的主播,硬盘太小可能撑不到一场直播结束就塞满了。

正常主播推流的画质大约在3-8000的码率,可以根据你需要录播的主播平常时长和推流码率来选择服务器硬盘大小。如果你有在线播放的需求,还得看服务器带宽,最好不低于6M,推荐8M及以上。

另外就是如果有长时间存储的需求,可以考虑购买COS存储资源包,和额外的云硬盘。

你可以挂载额外的云硬盘来同时录播多位主播,根据你自己的业务需求来就行。然后设置个定时脚本每天白天或者凌晨上传前一天的录播文件到COS桶里。(不推荐直接设置挂载COS桶的路径为录播文件存储路径。会造成大量的读写操作还容易损坏文件。)

地域一定要选择上海,镜像选择宝塔面板即可,后面也可以在控制台进行更换。

云硬盘设置:直接轻量服务器控制台——云硬盘——地域(上海)——更多——挂载到服务器即可

初始化云硬盘可以参照腾讯云官方文档进行操作。

服务器防火墙:可以直接开放全部端口,也可以开放指定端口如2356.

如果用的宝塔面板,后续也需要在面板的安全选项里进行开发端口

2、软件安装及使用

2.1 B站录播姬安装及使用

项目地址:https://github.com/BililiveRecorder/BililiveRecorder

2.1.1 安装
  1. mkdir brec

  2. cd brec

  3. # wget 下载链接

  4. unzip BililiveRecorder-CLI-linux-x64.zip

进入GitHub release页面下载最新的linux x64命令行版本获取下载链接,国内服务器可能与github连通性不好,可以使用加速连接进行下载

  1. Github:

  2. https://github.com/BililiveRecorder/BililiveRecorder/releases/latest/download/BililiveRecorder-CLI-linux-x64.zip

  3. 加速连接:

  4. https://ghproxy.com/https://github.com/BililiveRecorder/BililiveRecorder/releases/latest/download/BililiveRecorder-CLI-linux-x64.zip

添加执行权限

  1. chmod +x BililiveRecorder.Cli

检查版本号

  1. ./BililiveRecorder.Cli --version

为了后续方便可以修改BililiveRecorder.Clibrec

  1. mv BililiveRecorder.Cli brec

2.1.2 使用

可以先创建一个工作目录,第一运行程序会自动生成一个配置文件。然后重新启动程序即可这里以file为工作目录。Ctrl+C退出

  1. mkdir file

  2. ./brec run file

**录播姬命令行版提供了 HTTP API 和管理网页,可以通过 **--bind 参数启用。需要防火墙和宝塔都开放2356端口

  1. # 侦听本机地址,只有本地可以访问

  2. ./brec run --bind "http://localhost:2356" "工作目录"

  3. # 或者所有设备都可访问,开放至公网推荐开启登陆认证

  4. ./brec run --bind "http://*:2356" "工作目录"

登录认证

  1. ./brec run --bind "http://*:2356" --http-basic-user "用户名" --http-basic-pass "密码" "工作目录"

由于录播无所谓其他用户,基本上只有自己在用,所以基本不需要用域名或者https。如果你需要的话可以直接通过宝塔自带的反向代理功能实现。

2.1.3 持久化运行

创建服务:

新建一个文件:

  1. nano /etc/systemd/system/brec.service

写入以下内容:注意根据你自己的实际情况调整ExecStart=后的文件路径和参数 nano编辑器Ctrl+O为保存,Ctrl+X为退出

  1. [Unit]

  2. Description=BililiveRecorder

  3. After=network.target

  4. [Service]

  5. ExecStart=录播姬所在位置/BililiveRecorder.Cli run --bind "http://*:2356" --http-basic-user "用户名" --http-basic-pass "密码" "录播工作目录"

  6. [Install]

  7. WantedBy=multi-user.target

然后重启服务:

  1. systemctl daemon-reload

每次修改配置都要重启一次。

启动录播姬

  1. systemctl start brec

设置开机启动

  1. systemctl enable brec

  2. systemctl disable brec #禁用开机启动

其他命令

  1. #查看运行状态

  2. systemctl status brec

  3. #运行、停止、重启

  4. systemctl start brec

  5. systemctl stop brec

  6. systemctl restart brec

  7. #查看日志

  8. journalctl -u brec.service

2.1.4 软件设置

进入webUI页面,使用方法也很简单

房间号可以直接填数字,也可以直接复制链接

比如https://live.bilibili.com/6 是LPL的赛事直播间,可以填6也可以全部填上去。

针对单一主播可以单独设置

全局设置:

如果需要上传投稿,可以搭配biliup-rs。这是下面我们要介绍的biliup的命令行版投稿工具。可以参考下面的教程。

2.2 biliup的安装及使用

项目地址:https://github.com/biliup/biliup

2.2.1 安装

不推荐使用centos,如果搭建这个项目建议还是更换系统为Debian或者Ubuntu

Debian、Ubuntu

  1. 第一步:安装python3-dev

  2. apt install python3-dev

  3. apt install python3-pip

  4. 第二步:安装ffmpeg

  5. apt install ffmpeg

  6. 第三步:安装nodejs

  7. apt install nodejs

  8. 第四步:安装biliup

  9. pip3 install biliup

2.2.2 使用

首先要创建配置文件

  1. mkdir biliup

  2. cd biliup

  3. nano config.yaml

配置文件内容根据自己情况进行修改

最小配置示例:

  1. user:

  2.   cookies:

  3.       SESSDATA: your SESSDATA

  4.       bili_jct: your bili_jct

  5.       DedeUserID__ckMd5: your ckMd5

  6.       DedeUserID: your DedeUserID

  7.   access_token: your access_key

  8. streamers:

  9.   xxx直播录像:

  10.       url:

  11.           - https://www.twitch.tv/xxx

  12.       tags: biliup

  1. #config.yaml配置文件示例

  2. user: # 在填了cookies的情况下优先使用cookies上传,如需使用用户名密码上传请注释掉cookies

  3. #   cookies:

  4. #       SESSDATA: your SESSDATA

  5. #       bili_jct: your bili_jct

  6. #       DedeUserID__ckMd5: your ckMd5

  7. #       DedeUserID: your DedeUserID

  8. #   access_token: your access_key

  9.   account:

  10.       username: your usrname

  11.       password: your password

  12. #   app_key: bca7e84c2d947ac6 # 若账号密码方式无法登录可尝试更改此值

  13. #   appsec: 60698ba2f68e01ce44738920a0ffe768 # 值可以参考 https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/other/API_auth.md

  14. # b站上传线路选择,默认为自动模式,目前可手动切换为bda2, kodo, ws, qn

  15. lines: AUTO

  16. # b站提交接口,默认自动选择,可选web,client

  17. #submit_api: client

  18. # 单文件并发上传数,未达到带宽上限时增大此值可提高上传速度

  19. threads: 3

  20. # 录像单文件大小限制,单位Byte,超过此大小分段下载

  21. file_size: 2621440000

  22. # 录像单文件时间限制,格式'00:00:00'(时分秒),超过此大小分段下载,如需使用大小分段请注释此字段

  23. #segment_time: '00:50:00'

  24. #douyucdn: tct-h5

  25. # 如遇到斗鱼录制卡顿可以尝试切换线路,tct-h5(备用线路5),ali-h5(备用线路6),akm-h5(主线路1)

  26. #huyacdn: AL

  27. # 如遇到虎牙录制卡顿可以尝试切换线路,AL(阿里),BD(百度),TX(腾讯)

  28. streamers:

  29.   星际2Stats拔本神族天梯第一视角: # 最小配置示例

  30.       url:

  31.           - https://www.twitch.tv/kimdaeyeob3

  32.   星际2INnoVation吕布卫星人族天梯第一视角: # 完整可选配置示例

  33.       url:

  34.           - https://www.twitch.tv/innovation_s2

  35.           - https://www.panda.tv/1160340

  36.       title: "星际2INnoVation吕布卫星人族天梯第一视角%Y-%m-%d" # 自定义标题的时间格式

  37.       tid: 171 # 投稿分区码,174为生活,其他分区

  38.       copyright: 2 # 1为自制

  39.       cover_path: /cover/up.jpg #设置视频封面

  40.       description: 视频简介

  41.       postprocessor: # 上传完成后,将按自定义顺序执行自定义操作

  42.           - run: echo hello! # 执行任意命令,等同于在shell中运行,视频文件路径作为标准输入传入

  43.           - mv: backup/ # 移动文件到backup目录下

  44.           #- rm # 删除文件,为默认操作

  45.       tags:

  46.           - 星际争霸2

  47.           - 电子竞技

  48.       format: mp4 # 视频保存格式

  49.       opt_args: # ffmpeg参数

  50.           - '-ss' # 跳过开始的16秒

  51.           - '00:00:16'

如果需要获取cookie,推荐Chrome商店搜索EditThisCookie插件来获取。

常用命令:

  1. #biliup常用命令

  2. # 启动

  3. python3 -m biliup start

  4. # 退出

  5. python3 -m biliup stop

  6. # 重启

  7. python3 -m biliup restart

  8. # 查看版本

  9. python3 -m biliup --version

  10. # 显示帮助以查看更多选项

  11. python3 -m biliup -h

然后我们启动它就会全自动托管了。

这个非常适合作为接单工具。毕竟商业化不讲究那些乱七八糟的,只要能投入产出比高就行。只要一开始设置好后面就基本上不用管了。

2.2.3 API调用

我们可以只把biliup当做一个库来调用。

上传

  1. from biliup.plugins.bili_webup import BiliBili, Data

  2. video = Data()

  3. video.title = '视频标题'

  4. video.desc = '视频简介'

  5. video.source = '添加转载地址说明'

  6. # 设置视频分区,默认为160 生活分区

  7. video.tid = 171

  8. video.set_tag(['星际争霸2', '电子竞技'])

  9. with BiliBili(video) as bili:

  10.   bili.login_by_password("username", "password")

  11.   for file in file_list:

  12.       video_part = bili.upload_file(file) # 上传视频

  13.       video.append(video_part) # 添加已经上传的视频

  14.   video.cover = bili.cover_up('/cover_path').replace('http:', '')

  15.   ret = bili.submit() # 提交视频

下载

  1. from biliup.downloader import download

  2. download('文件名', 'https://www.panda.tv/1150595', suffix='flv')

3、注意事项

1、项目运行初期建议大家多去腾讯云的控制台多看看服务器资源占用情况。避免服务出现中断。也方便我们根据服务器状态来开拓业务。

2、上传投稿建议用小号,不推荐使用自己的大号。

3、注意保护你的服务器及B站账号安全,避免被入侵泄露。

总结

直播录像虽然看的人不多,但是基本上有一定数量的忠实粉丝的主播都不可或缺。同时也是在记录着主播的成长。如果是转载其他平台的视频、录播到B站获取收益也是有一定的受众的。

工具其实大家都会玩,怎么用这些工具获取更多的收益(无论是金钱还是流量还是粉丝)其实都是看个人怎么运作。

之前B站出现的卧龙寺、大霓奈靠工具搬运海量搞笑视频的账号个个都是几十万粉,本质上也都是一种应用罢了。甚至是把B站当做备份的索尼音乐(17.5万个投稿)也是。

不过我还是希望大家不要滥用,合理的规划,认真的对待自己的账号才是最好的。

参考:

https://github.com/biliup/biliup

https://github.com/BililiveRecorder/BililiveRecorder

https://blog.waitsaber.org/archives/129