最近闲着无聊经常刷 B 站看直播,我就想着自己能不能也弄一个直播间玩玩,老实说,我个人对直播是没有任何的兴趣的,只是单纯的想知道在 Linux 平台直播会遇到哪些困难
# 环境介绍
该教程的直播平台为 B 站,我自己的电脑目前安装的操作系统是 Ubuntu 22.04,为了验证 Linux 是否能够满足大多数人的直播需求,我会尽可能的给直播间添加各种常用插件和效果
另外,我自己还有一些数码设备,例如 Switch 和手机平板等, 顺便一起测试是否能够进行外设主机的直播
为了录制某些 数码设备 的画面,那么就需要购买一个采集卡设备,但是市面上支持 Linux 的采集卡设备并不是很多,通过一段时间的摸索了解,我最终选择了免驱动安装的 九音九视 UX20 这个采集卡设备,这个采集卡有点小贵,心在滴血
如果是 Windows 的话,应该 200 块左右的采集卡就可以拿下了吧 ☹️
# 软件安装
废话不多说,下面直接安装软件吧
# OBS
首先安装推流软件 OBS
sudo add-apt-repository ppa:obsproject/obs-studio | |
sudo apt update | |
sudo apt install ffmpeg obs-studio |
安装完后运行 OBS
查看是否正常
# 采集卡硬件测试
OBS 运行正常,现在测试一下采集卡跟数码设备是否能正常工作,将采集卡连接好电脑和数码设备
- Switch
在源中添加视频捕获设备
设备选择你的采集卡,如果设备连接正常的话,此时便可以看到 Switch 的画面
- Apple TV
以同样的方式连接 Apple TV
- Android
- IPAD
IPAD 我并没有使用采集卡,因为我不想浪费钱购买一条数据线,我选择了安装 UXPLAY, 直接通过屏幕镜像投屏到电脑,然后在 OBS 上添加窗口捕获
- iPhone
iPhone 和 IPAD 一样通过 UXPLAY 投屏
# Vtude Studio
这个人比较内向,并不打算露脸,所以我打算随便弄个数字人应付一下观众,这里我选择 Vtude Studi
Vtude Studi
是一个可以跟随网络摄像头和控制 Live2D 模型的软件,该软件可以通过 Steam
免费下载,首先安装大家最喜欢的 Steam
游戏平台
wget https://cdn.cloudflare.steamstatic.com/client/installer/steam.deb | |
sudo dpkg -i ./steam.deb |
安装完后运行 Steam
进行更新,出现提示按 回车 或 Y 确定即可
整个更新过程大约 20 分钟左右,更新完后登陆 Steam
,搜索 Vtube Studio
并下载
下载完后,选中 Vtube Studio
右键菜单选择属性,在兼容性勾选强制使用 Steam Play 工具
Steam Play 是由 V 社 (Valve Corpotation) 基于开源 Wine 项目开发的一个分支项目,它允许原先仅在 Windows 操作系统上运行的游戏,不需要任何修改就能在 Linux 操作系统上运行
如果 Vtube Studio
没有运行报错,那么就可以进入正常显示的界面
# OpenSeeFace
如果你希望你的虚拟形象可以根据摄像头捕获自己的面容动作并追随(例如眨眼、说话、头部摆动),那么可以安装 OpenSeeFace
这个软件实现
首先安装 python
环境并克隆项目到本地
sudo apt-get install python3 python3-pip python3-virtualenv git | |
git clone https://github.com/emilianavt/OpenSeeFace |
切换到项目根目录,创建 python
虚拟环境,并安装必要的库
cd OpenSeeFace | |
virtualenv -p python3 env | |
source env/bin/activate | |
pip3 install onnxruntime opencv-python pillow numpy |
创建一个启动脚本
python facetracker.py -c 0 -W 1280 -H 720 --discard-after 0 --scan-every 0 --no-3d-adapt 1 --max-feature-updates 900 --ip 127.0.0.1 --port 11573 |
给脚本添加执行权限并运行,此时摄像头开始工作,如果摄像头检测到人脸,会在终端显示 detect
字样
在 Vtube Studio
中启用面部捕抓,即可测试 OpenSeeFace
是否正常工作
关于 Vtube Studio 和 OpenSeeFace 这两块内容,我主要是参考 dollars0427 大佬的文档,大佬的文档比我详细多了,如果对这两块内容感兴趣的小伙伴建议直接到下面文档查看 https://sardo.work/2023/10/30/%E5%9C%A8linux%E4%B8%8A%E6%88%90%E7%82%BAvtuber%E5%90%A7%EF%BC%81vtube-studio%EF%BC%89/
# Blivechat
如果想在直播间显示弹幕,可以用 blivechat
这个项目实现
- 先克隆项目到本地,由于使用了 git 子模块,clone 时需要加上 --recursive 参数:
git clone --recursive https://github.com/xfgryujk/blivechat.git
- 编译前端和安装必要的模块(需要提前安装好 Node.js):
cd blivechat/frontend | |
npm i && npm run build | |
pip3 install -r requirements.txt |
- 运行服务并指定 host 和端口号:
python3 main.py --host 127.0.0.1 --port 12345
成功运行后用浏览器打开 http://localhost:12345
进行访问
在首页 -- 常规 -- 房间输入身份码
可以通过登陆 https://play-live.bilibili.com/
查看自己的身份码
填入身份码后会自动生成房间 URL
在 OBS 场景来源添加浏览器,并在 URL 中输入你的房间 URL 就可添加弹幕,如果需要更改弹幕样式,则通过样式生成器调整
最终直播间效果如下
# 进阶玩法
前面的教程已经可以满足普通用户的日常直播了,但是我前面也说过,我个人对直播是没有任何兴趣的,所以我想弄一个不需要真人参与的直播间,于是我又研究了一下 AI 直播间,并找到一个目前功能各方面都比较完善的开源 AI 虚拟主播项目 AI Vtuber
简单看一下 AI Vtuber
的架构
# AI Vtuber
克隆项目到本地
git clone https://github.com/Ikaros-521/AI-Vtuber.git
克隆完毕后,切换到 AI-Vtuber 根目录,安装必要的模块库,整个过程大约一小时左右
pip3 install -r requirements.txt
安装 AI Vtuber
会遇到一堆的模块下载安装报错和版本兼容性的问题,这个需要根据实际的报错排除
解决完依赖问题后,运行 python3 webui.py
启动项目,此时应该还是会提示找不到 xxx 模块,还是根据具体情况安装缺少的模块,直至正常启动
正常启动后,可以通过浏览器输入 http://localhost:8081 访问控制台
进入控制台后就可以对大语言模型、文本转语音、虚拟身体、聊天这些主要功能进行配置了
配置完后,点击一键启动,此时可以从控制台日志看到一条报错信息 "main.py: 1: python: not found"
查看 webui.py 代码,定位到 258 行,找到下面这段代码
更改成 process = subprocess.Popen(["python3", f"main.py"], shell=False)
这样一键启动后就可以正常运行 main.py,但是依然会有一堆模块报错问题
尽可能的安装对应的模块版本,有些模块不支持 linux 的话,可以把相关代码注释掉,老实说,在 linux 下体验非常差,如果真的想玩这个项目,还是选择 Windows 操作系统吧
AI Vtuber
是一个非常庞大的开源项目集合,有些最新版的模块名、API 和方法都已经有所变化,所以才会有一堆兼容性和报错的问题,我目前也只还停留在摸索阶段,没办法教大家如何使用,建议大家直接查看作者的在线文档和视频学习
在线文档:https://luna.docs.ie.cx/
视频教程:https://space.bilibili.com/3709626/channel/collectiondetail?sid=1422512
# 总结
这篇文档总结了我自己对网络直播所知道的所有知识点,总体来说在 Linux 平台下进行直播并没有太大问题,但是 Winodws 直播的可玩性和扩展性肯定会更好,我自己也尝试直播了两天,实在是感觉没啥意思,后续应该不会再研究了这块内容了吧