V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
mycloudgame
V2EX  ›  分享创造

发布一个超低延时的桌面串流软件 AirGame, 请各位对 串流/远程桌面/个人云游戏 有需要的试用并反馈。

  •  
  •   mycloudgame · 89 天前 · 3264 次点击
    这是一个创建于 89 天前的主题,其中的信息可能已经有所发展或是发生改变。
    服务端(AirGameServer)需要运行在 Win10/Win11 系统上。
    客户端(AirGamePlay) 可以运行在 win7/8/10/11 的系统上。
    Andriod 版本的客户端还在早期测试中。

    AirGame 串流系统的特性:
    1. 极低延时。局域网内的服务器 /客户端的显示器对比测试, 客户端甚至可以比服务端显示更快。
    2. 支持 Windows 平台的 Intel 、AMD 、NVidia 的 h264/h265 硬件编解码 (依赖显卡自身的硬件编解码能力)
    3. 支持多种分辨率 720p-4k 。 (依赖服务端的显示器 /显卡欺骗器)
    4. 支持多种帧率 15-240 。(依赖服务端的显示器 /显卡欺骗器)
    5. 对于无法支持硬件编解码的, 也可以使用 h264 软件编解码。(编码帧率不超过 30fps)
    6. 对于需要公网连接的, 需要注册账号,否则可以直接内网使用。
    7. 支持 nat 穿越。 支持自动 upnp 。
    8. 内网可以自动搜索, 手动指定 ip 连接 (如果有公网固定 ip , 也可以直接连接)。
    9. 内网连接过的机器, 支持远程唤醒 (需主机端设置 WOL)
    10. 支持远程剪贴板操作,(目前仅支持简单文本复制粘贴)
    11. 支持多显示器切换。
    12. 支持手柄,支持震动反馈。(需要在服务器端安装 ViGEmBus)

    下载地址在 https://www.mycloudgame.com/download.html
    34 条回复    2022-06-19 19:21:49 +08:00
    LuckyTain
        1
    LuckyTain  
       89 天前 via Android
    👍正在用 parsec ,有空我尝试一下这个新软件
    timpaik
        2
    timpaik  
       89 天前 via Android
    要是这种软件客户端有 linux 就好了。(可以用瘦客户机打游戏)
    Tink
        3
    Tink  
       89 天前 via Android
    希望有 mac 的 client
    kop1989smurf
        4
    kop1989smurf  
       89 天前
    能不能说说和竞品之间( parsec )的区别与优势?
    以及能不能大体解释下“客户端甚至可以比服务端显示更快”的实现原理?
    mycloudgame
        5
    mycloudgame  
    OP
       89 天前   ❤️ 1
    @kop1989smurf parsec 应该算是目前串流软件综合素质最高的,相对 parsec 来说, 在性能方面能提升的空间不大(都是全流程的 GPU 处理,延时差别一般在一帧以内浮动)。 可提升的主要是易用性, 目标就是实现完全由客户端即可操作主机端, 包括但不限于远程开机,UAC 支持, 远程剪贴板等这些远程桌面相关的功能。
    客户端比服务端显示快, 这个 parsec 也一样可以做到, 原因也很简单, 就是显示是有缓冲的,比如一个普通窗口,显示的画面会先通过 DWM 合成, 再由 DWM 合成后按屏幕刷新频率输出,而如果我们处理这个的流程实际上是很快的,pc 上普通的 1080p 编码一般不超过 4 毫秒, 解码也一样, 局域网内有线网络延时都是一毫秒以下, 再加上放缩等处理流程, 实际上一帧从主机端到客户端不会超过 10 毫秒, 普通的 60fps , 一帧就是 16.7 毫秒, 那么如果你最终的显示队列降低, 客户端显示就会更快了。
    mycloudgame
        6
    mycloudgame  
    OP
       89 天前   ❤️ 1
    @LuckyTain 谢谢使用。

    @timpaik Linux 端也是必须有的, 快的话在一个月以内会出测试版。

    @Tink Mac 端也是会有的, 估计的两个月以后了。
    kop1989smurf
        7
    kop1989smurf  
       89 天前
    @mycloudgame #5 感谢回复,仅凭此楼的介绍与解答,一定会试用的。
    xiaoxx97
        8
    xiaoxx97  
       89 天前   ❤️ 2
    之前用的一直是 Moonlight Game Streaming ,延迟也不高,但是它的问题是要有实体的显示器才可以,也就是说我在外面连接家里的主机,主机的显示器得是开着的,而且串流的图像就是显示器显示的图像。也就造成了一个新的问题:我如果用 rdp 连过主机,就不能再用 Moonlight 连,因为电脑的画面不再是通过显卡输出了,我得先用向日葵连一下我的主机,才能用 Moonlight 再连。
    然后我的问题来了:AirGame 也需要依赖实体显示器吗?
    Greenm
        9
    Greenm  
       89 天前
    使用 moonlight 可以在 IPAD 接手柄串流 PC ,OP 的产品也准备支持 IOS 系列吗
    FightPig
        10
    FightPig  
       89 天前
    等个 mac 版
    mycloudgame
        11
    mycloudgame  
    OP
       89 天前
    @xiaoxx97 也需要实体显示器 , 但是你可以买一个显卡欺骗器,淘宝上有很多, 1080p/60fps 的非常便宜, 几块钱到十块钱就可以. 如果要高 fps 或者高分辨率的会贵些。

    微软的远程桌面现在暂时不能兼容, 因为不是运行在同一个 session 上, AirGameServer 的主程序是运行在普通的 session 上, 远程桌面会另外新开一个 session,并且切换过去.
    v2tudnew
        12
    v2tudnew  
       89 天前
    Parsec 很好了,但它缺少对无法 NAT 穿越设备的中继传输,也许以后火了可以试试这个收费服务(不过中继延迟毕竟是高了)。
    Damn
        13
    Damn  
       89 天前
    可以考虑一下发送和接收文件的功能。
    mycloudgame
        14
    mycloudgame  
    OP
       89 天前
    @Greenm 短期内无法原生支持 iOS 版本, 会有通过 webrtc 支持的 web 版本。
    @FightPig 等出 mac 版本了一定通知你。
    @v2tudnew parsec 基本上算是串流软件里面综合实力最强的了,moonlight 要稍差一些(只支持 N 卡,第三方支持 A 卡太弱, 为了跨平台用的是平台的解码框架,在延时控制上会有一些不可控)。nat 如果使用中继传输, 延时会有一定增加。而且目前按国内的发展趋势, 直接支持 ipv6 是更好的选择。
    @Damn 嗯,后续会加上点对点的文件传输能力。
    hackpro
        15
    hackpro  
       89 天前
    支持 OP && 感谢
    希望增加 macOS 以及 iOS 支持
    LoveMyself546
        16
    LoveMyself546  
       89 天前
    这个可以像 parsec 一样远程串流玩游戏吗?就是服务端和客户端同时操作
    jdjingdian
        17
    jdjingdian  
       88 天前
    同希望增加 macOS 以及 iOS 支持
    能在内网免登录连接,这点就比 parsec 好了,因为是用 mac 还没体验,是否是可以直接通过输入 ip 连接呢?那这样的话就不仅限于内网了,自己有 vpn 连回家,输入 ip 连也很方便了
    hronro
        18
    hronro  
       88 天前
    老实说我不相信这个能达到 Parsec 的效果。

    Parsec 为了能提升串流效果,是自己从头实现了硬件编码的算法(毕竟 Parsec 拿了那么多投资也有钱去做这个),我很难相信你们这个也能做到同样的地步。
    sengxian
        19
    sengxian  
       88 天前
    感谢,期待一个 WebRTC 版!
    Damn
        20
    Damn  
       88 天前
    @hronro 你下一个安装包就会发现它包含了 ffmpeg.dll 。。。ffmpeg 支持啥它就支持啥。
    hronro
        21
    hronro  
       88 天前
    @Damn #20 你是说哪个包含 ffmpeg? Parsec 还是楼主发的这个 AirGame ?
    另外话说如果用了 ffmpeg 这个 GPLv3 授权的开源代码,是不是意味本身也得开源?
    mycloudgame
        22
    mycloudgame  
    OP
       88 天前
    @LoveMyself546 就是类似 parse 一样的串流软件.

    @jdjingdian 可以直接 ip 连接.

    @hronro 你可以自己测试一下, parsec 只是自己做了网络部分的协议, 编解码还是 264/265.

    @Damn @hronro 客户端带了 ffmpeg 的解码库, 仅包含 h264 解码库. N/A/I 三种显卡的 硬解编解码库 均是基于三家的 sdk 独立封装的, 并没有使用到 ffmpeg , 原因也很简单, 使用第三方框架封装的库, 很可能带来额外的延时。

    关于 ffmpeg 的使用说明一下, 我使用的是动态库, 按 lgpl 协议, 只需要给出使用的 ffmpeg 库代码即可, 并不需要公开调用动态库的应用程序源代码。ffmpeg 库的版本是 ffmpeg-20150627-git-7728d23. 服务器端使用的编码库是 openh264, 比 x264 差很多, 不用 x264 做 cpu 编码也是因为 gpl 协议的问题。目前还没有时间来整理,后续会按各开源协议要求补上相关的说明及代码。

    @sengxian webrtc 的支持在计划中,具体实现要等一段时间, 毕竟分身乏术。
    qq249418187
        23
    qq249418187  
       88 天前
    可自搭建吗? 不玩游戏的测试一下,也许可以用来替代远程工具
    mycloudgame
        24
    mycloudgame  
    OP
       87 天前
    @qq249418187 可以自己搭建服务器 /客户端, 局域网 /自有公网 IP/自有 VPN 都无需登录 . 可以替代远程桌面的大部分功能, 对带宽要求较高, 低延时,低 CPU 占用率.
    mycloudgame
        25
    mycloudgame  
    OP
       87 天前
    @hronro 简单录制了一个与 parsec 同屏对比的视频 , 放在 B 站 https://www.bilibili.com/video/BV1mR4y1c7kv/
    原视频是 240fps , 上传后帧率被压缩了。前面的窗口是 Parsec, 后面的是 AirGamePlay. 串流源是左边的显示器,1080p/60, 右边的显示器是 2560/59.951. AirGamePlay 的窗口是自动适配了 1080p, Parsec 是做了拉伸。

    这里只是做一个大家最关心的画面延时简单比较。
    ragnaroks
        26
    ragnaroks  
       87 天前
    带宽占用如何?
    RDP 远程写代码、配置服务器的话 1M 都够用
    hronro
        27
    hronro  
       87 天前
    @mycloudgame #25 谢谢回复。但如果支持局域网内部传输的话没多大意义,建议能出一个在公网下(有一定丢包)下的对比。
    zsxzy
        28
    zsxzy  
       87 天前
    @mycloudgame 试用了一下, 确实不错
    能说说传输音视频的协议是啥吗, 是 rtp over udp ?
    LuckyTain
        29
    LuckyTain  
       87 天前 via Android
    对了,请问支持像 rdp 那样自动调整系统设置的缩放吗
    因为我的客户端是 surface go 且分辨率为 1800x1200 ,而且因为屏幕比较小,系统设置里面设置了缩放 150%
    而我的服务端显示器不支持这个分辨率,服务端是 1920x1080
    在用 parsec 时发现如果把分辨率改为 1800x1200 时,encode/decode 的时间增加了很多,所以一直都是调成 1920x1080 用,但是使用时上下会有黑框,而且不会自动调整系统设置的缩放,眼睛很累
    rdp 就有自动调整系统缩放的功能
    mycloudgame
        30
    mycloudgame  
    OP
       87 天前
    @ragnaroks 带宽占用比 RDP 高,编码是 h264/h265, 分辨率 /码率 /帧率这些都是可以设置的, 远程写代码的这种场景,实际码率会比设置的码率低不少,因为画面变化慢且变化不大。

    @zsxzy 底层用的 UDP , 再上面是私有协议封装。

    @LuckyTain 不能支持自动缩放。RDP 是新建立了一个 remote session, 并虚拟了一块显卡。然后会设置成与客户端同样的分辨率, 刷新率不一定。parsec 是修改服务器端的分辨率 /刷新率这些设置的, 但是正常来说分辨率修改不会导致编解码时间增加很多, 上下有黑框是 parsec 缺省是保持原始宽高比例。AirGame 目前也没有处理高 dpi 的问题, 但是可以设置服务器端的编码输出大小, 你可以强制设成客户端的 1800x1200 , 但是这样会有变形(不变形就会有黑边,如同 parsec)。 原因是服务器端的显卡+显示器, 无法输出 surface go 的 1800x1200 。 这个问题要解决, 要么做虚拟显卡驱动(类似 RDP), 要么买个显卡欺骗器, 找商家刷 edid 适配你这个分辨率(一般的应该都没有这个分辨率支持)。 还有刷新率也很重要, 如果两端不匹配, 会出现跳帧导致卡顿的感觉。
    happy61
        31
    happy61  
       83 天前
    支持从 rdp 切换回去么?现在 rdp 每次链接后,都必须用向日葵链接一下才能用 parsec ,要不都会黑屏
    mycloudgame
        32
    mycloudgame  
    OP
       82 天前
    @happy61 目前是不支持的,rdp 连接后,当前系统还是远程桌面的 session, 捕获不到画面。 要支持远程桌面这种, 需要每个 session 里面都有独立的进程。
    happy61
        33
    happy61  
       75 天前
    @mycloudgame 可以直接在远程执行断开所有链接,再让他登录就可以了,我平时也是用脚本执行,让 rdp 断开就可以了,或者用向日葵远程一下也行。tscon xxx /dest:console
    YoritaYoshino
        34
    YoritaYoshino  
       55 天前
    你好,安卓客户端无法安装,显示解析软件包出现问题。手机系统版本是安卓 12
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1051 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 21:17 · PVG 05:17 · LAX 14:17 · JFK 17:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.