upload successful

最近闲着无聊经常刷 B 站看直播,我就想着自己能不能也弄一个直播间玩玩,老实说,我个人对直播是没有任何的兴趣的,只是单纯的想知道在 Linux 平台直播会遇到哪些困难

# 环境介绍

该教程的直播平台为 B 站,我自己的电脑目前安装的操作系统是 Ubuntu 22.04,为了验证 Linux 是否能够满足大多数人的直播需求,我会尽可能的给直播间添加各种常用插件和效果

另外,我自己还有一些数码设备,例如 Switch 和手机平板等, 顺便一起测试是否能够进行外设主机的直播

为了录制某些 数码设备 的画面,那么就需要购买一个采集卡设备,但是市面上支持 Linux 的采集卡设备并不是很多,通过一段时间的摸索了解,我最终选择了免驱动安装的 九音九视 UX20 这个采集卡设备,这个采集卡有点小贵,心在滴血

如果是 Windows 的话,应该 200 块左右的采集卡就可以拿下了吧 ☹️

# 软件安装

废话不多说,下面直接安装软件吧

# OBS

首先安装推流软件 OBS

l
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt update
sudo apt install ffmpeg obs-studio

安装完后运行 OBS 查看是否正常

upload successful

# 采集卡硬件测试

OBS 运行正常,现在测试一下采集卡跟数码设备是否能正常工作,将采集卡连接好电脑和数码设备

  1. Switch

中添加视频捕获设备

upload successful

设备选择你的采集卡,如果设备连接正常的话,此时便可以看到 Switch 的画面

upload successful

  1. Apple TV

以同样的方式连接 Apple TV

upload successful

  1. Android

upload successful

  1. IPAD

IPAD 我并没有使用采集卡,因为我不想浪费钱购买一条数据线,我选择了安装 UXPLAY, 直接通过屏幕镜像投屏到电脑,然后在 OBS 上添加窗口捕获

upload successful

  1. iPhone

iPhone IPAD 一样通过 UXPLAY 投屏

upload successful

# Vtude Studio

这个人比较内向,并不打算露脸,所以我打算随便弄个数字人应付一下观众,这里我选择 Vtude Studi

Vtude Studi 是一个可以跟随网络摄像头和控制 Live2D 模型的软件,该软件可以通过 Steam 免费下载,首先安装大家最喜欢的 Steam 游戏平台

l
wget https://cdn.cloudflare.steamstatic.com/client/installer/steam.deb
sudo dpkg -i ./steam.deb

安装完后运行 Steam 进行更新,出现提示按 回车Y 确定即可

upload successful

整个更新过程大约 20 分钟左右,更新完后登陆 Steam ,搜索 Vtube Studio 并下载

下载完后,选中 Vtube Studio 右键菜单选择属性,在兼容性勾选强制使用 Steam Play 工具

upload successful

Steam Play 是由 V 社 (Valve Corpotation) 基于开源 Wine 项目开发的一个分支项目,它允许原先仅在 Windows 操作系统上运行的游戏,不需要任何修改就能在 Linux 操作系统上运行

如果 Vtube Studio 没有运行报错,那么就可以进入正常显示的界面
upload successful

# OpenSeeFace

如果你希望你的虚拟形象可以根据摄像头捕获自己的面容动作并追随(例如眨眼、说话、头部摆动),那么可以安装 OpenSeeFace 这个软件实现

首先安装 python 环境并克隆项目到本地

l
sudo apt-get install python3 python3-pip python3-virtualenv git
git clone https://github.com/emilianavt/OpenSeeFace

upload 4uccessful

切换到项目根目录,创建 python 虚拟环境,并安装必要的库

l
cd OpenSeeFace
virtualenv -p python3 env
source env/bin/activate
pip3 install onnxruntime opencv-python pillow numpy

upload successful

创建一个启动脚本

l
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

upload successful

给脚本添加执行权限并运行,此时摄像头开始工作,如果摄像头检测到人脸,会在终端显示 detect 字样
upload successful

Vtube Studio 中启用面部捕抓,即可测试 OpenSeeFace 是否正常工作
upload successful

关于 Vtube StudioOpenSeeFace 这两块内容,我主要是参考 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 这个项目实现

  1. 先克隆项目到本地,由于使用了 git 子模块,clone 时需要加上 --recursive 参数:

git clone --recursive https://github.com/xfgryujk/blivechat.git

  1. 编译前端和安装必要的模块(需要提前安装好 Node.js):
l
cd blivechat/frontend
npm i && npm run build
pip3 install -r requirements.txt
  1. 运行服务并指定 host 和端口号:

python3 main.py --host 127.0.0.1 --port 12345

成功运行后用浏览器打开 http://localhost:12345 进行访问

首页 -- 常规 -- 房间输入身份码
upload successful

可以通过登陆 https://play-live.bilibili.com/ 查看自己的身份码
upload successful

填入身份码后会自动生成房间 URL
upload successful

OBS 场景来源添加浏览器,并在 URL 中输入你的房间 URL 就可添加弹幕,如果需要更改弹幕样式,则通过样式生成器调整

upload successful

最终直播间效果如下

upload successful

# 进阶玩法

前面的教程已经可以满足普通用户的日常直播了,但是我前面也说过,我个人对直播是没有任何兴趣的,所以我想弄一个不需要真人参与的直播间,于是我又研究了一下 AI 直播间,并找到一个目前功能各方面都比较完善的开源 AI 虚拟主播项目 AI Vtuber

简单看一下 AI Vtuber 的架构

upload successful

# AI Vtuber

克隆项目到本地

git clone https://github.com/Ikaros-521/AI-Vtuber.git

克隆完毕后,切换到 AI-Vtuber 根目录,安装必要的模块库,整个过程大约一小时左右

pip3 install -r requirements.txt

upload successful

安装 AI Vtuber 会遇到一堆的模块下载安装报错和版本兼容性的问题,这个需要根据实际的报错排除

upload successful

upload successful

解决完依赖问题后,运行 python3 webui.py 启动项目,此时应该还是会提示找不到 xxx 模块,还是根据具体情况安装缺少的模块,直至正常启动

upload successful

正常启动后,可以通过浏览器输入 http://localhost:8081 访问控制台
upload successful

进入控制台后就可以对大语言模型、文本转语音、虚拟身体、聊天这些主要功能进行配置了

配置完后,点击一键启动,此时可以从控制台日志看到一条报错信息 "main.py: 1: python: not found"

upload successful

查看 webui.py 代码,定位到 258 行,找到下面这段代码

upload successful

更改成 process = subprocess.Popen(["python3", f"main.py"], shell=False)

这样一键启动后就可以正常运行 main.py,但是依然会有一堆模块报错问题

upload successful

尽可能的安装对应的模块版本,有些模块不支持 linux 的话,可以把相关代码注释掉,老实说,在 linux 下体验非常差,如果真的想玩这个项目,还是选择 Windows 操作系统吧

AI Vtuber 是一个非常庞大的开源项目集合,有些最新版的模块名、API 和方法都已经有所变化,所以才会有一堆兼容性和报错的问题,我目前也只还停留在摸索阶段,没办法教大家如何使用,建议大家直接查看作者的在线文档和视频学习

在线文档:https://luna.docs.ie.cx/
视频教程:https://space.bilibili.com/3709626/channel/collectiondetail?sid=1422512

# 总结

这篇文档总结了我自己对网络直播所知道的所有知识点,总体来说在 Linux 平台下进行直播并没有太大问题,但是 Winodws 直播的可玩性和扩展性肯定会更好,我自己也尝试直播了两天,实在是感觉没啥意思,后续应该不会再研究了这块内容了吧

此文章已被阅读次数:正在加载...Edited on

Give me a cup of [coffee]~( ̄▽ ̄)~*

Bob WeChat Pay

WeChat Pay

Bob PayPal

PayPal

Bob Alipay

Alipay