使用 Steam Headless 来搭建一个游戏串流专用服务器

44 天前
 ihainan

前段时间网上冲浪时,发现有人已经成功解锁了 30/40 系显卡的 vGPU ,但是相关驱动和方案尚未公开,在搜索细节的时候又偶遇了 Steam Headless 这个容器项目,集成了 Xfce 、VNC 、Steam 客户端和 Sunshine ,简单折腾一番,搭了一个能够随时保存状态和恢复,方便自己玩独立游戏的专用游戏串流服务器。

我的软硬件环境:零刻 GTi 12 Ultra + 显卡坞( PCIe 直连,非雷电或者 Oculink ),4060 Ti 透传 Debian 12 VM 。

在 Debian VM 里面启动 Steam Headless 容器并配置好 Steam 与 Sunshine ,编写了一个脚本能够 使用 docker pause/unpause 快速冻结/恢复容器服务,接入到 Home Assistant 和 HomeKit ,最终实现效果如下面两个视频:

演示移动端串流以及快速暂停/恢复串流服务: https://www.bilibili.com/video/BV1j6gWzzEMn

演示脚本与暂停之后的功耗: https://www.bilibili.com/video/BV1GegLzrEke


这套方案的一些优点:

一些缺点:

踩的一些坑:


我编写的容器启动脚本(里面暂停之前会杀掉 Sunshine 释放资源): https://gist.github.com/ihainan/16f8089dcbe18061c5b22b38d975517c

我使用的容器 .env 文件: https://gist.github.com/ihainan/791bdf1980c2d89fba7156e81c80bb04

我使用的 Home Assistant 配置:

command_line:
  - switch:
      name: 串流开关
      command_on: >-
        ssh -i /config/.ssh/id_ed25519
        -o UserKnownHostsFile=/config/.ssh/known_hosts
        -o StrictHostKeyChecking=yes
        ihainan@192.168.100.129
        'bash /home/ihainan/extend/docker/Steam/docker-compose-manager.sh unpause'
      command_off: >-
        ssh -i /config/.ssh/id_ed25519
        -o UserKnownHostsFile=/config/.ssh/known_hosts
        -o StrictHostKeyChecking=yes
        ihainan@192.168.100.129
        'bash /home/ihainan/extend/docker/Steam/docker-compose-manager.sh pause'
      command_state: >-
        ssh -i /config/.ssh/id_ed25519
        -o UserKnownHostsFile=/config/.ssh/known_hosts
        -o StrictHostKeyChecking=yes
        ihainan@192.168.100.129
        'bash /home/ihainan/extend/docker/Steam/docker-compose-manager.sh check'
      value_template: "{{ value.strip() == 'No' }}"

最后再推荐我正在用的一个拉伸手柄,小鸡 X5Lite ,虽然相比中高端拉伸手柄(同品牌的 G8/G8+,雷蛇骑仕系列等),它的做工很一般,但是抖音常年 60 不到的价格(天天裸手柄扔背包里面不心疼),极其极其轻的重量,以及最重要的,闲鱼有人卖 3D 打印握把( 20 元左右),能够极大程度提升手柄的握持体验,让它反倒成为诸多使用过的拉伸手柄里面,我最喜欢的一个。

唯一不能忍的缺点,连接 iOS 并进行串流,Home 按钮不能映射为 Guide Button ( Xbox/PS Button ),很多 Steam 手柄快捷键无法使用。Android 则没有这个问题。

863 次点击
所在节点    分享发现
1 条回复
ihainan
42 天前
哦对,顺便提醒,容器里面的 Steam 默认没有开启 GPU 加速,所以一开始使用时候会有些卡,设置里面开启 GPU 加速即可。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1147308

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX