V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zanjie1999
V2EX  ›  macOS

写了一个程序,实现了 mac 的随航自由,可以将任何设备作为 mac 的扩展屏幕/屏幕镜像

  •  2
     
  •   zanjie1999 · 44 天前 · 2272 次点击
    这是一个创建于 44 天前的主题,其中的信息可能已经有所发展或是发生改变。

    咩 Display

    不知道是不是人们都觉得用的起 macOS 的都买得起 iPad 啊,一直都没有可以在 Apple M1 系列上实现 Android 平板作为扩展屏的方案
    (咩咩买 mac 是工作需要,靠这电脑吃饭的,花了 13899 虽然非常贵但是没办法,咩咩没有钱)

    使用任何设备(只要有浏览器),作为 mac 的副屏/镜像(实现 Apple 官方随航的功能),不限制平台,黑苹果也可以用的,依赖 ffmpeg ,其他系统都自带了

    基于之前手搓的 http 服务 httpRandomMusic
    这个项目实现了实时音频转码,实现了小爱音响播放音乐的自由(可以让单片机级别配置的小爱 play 增强版播放本地 nas 音乐)

    写这东西主要是为了实现将之前买的辣鸡 Chromebook Duet 作为 mac 的副屏用,实现“将 Android 平板用作 Mac 的第二台显示器”,类似于 Windows 端 spacedesk 的功能,因为使用浏览器作为客户端,对目标设备没有限制,就算没有浏览器也可以直接使用视频播放器打开视频流

    实测 M1 Pro 在 mjpg 情况下 3k 分辨率 60hz 只有 100ms 延迟
    d4872a33dad8a1e0f383bd2c5001ff37.jpg

    目前已支持在浏览器使用 mjpg 和 vp8 串流,h264 和 hevc 浏览器兼容性问题还没调好,播放器可以正常播放

    Github 仓库: https://github.com/zanjie1999/meDisplay
    演示视频: https://www.bilibili.com/video/BV1Qf25YQEj4?p=2

    30 条回复    2024-10-15 10:23:00 +08:00
    Lowlife
        1
    Lowlife  
       44 天前 via Android
    这真不错
    ZTom
        2
    ZTom  
       44 天前
    挺好
    nenosyyan
        3
    nenosyyan  
       44 天前
    群友打卡
    wsbqdyhm
        4
    wsbqdyhm  
       44 天前
    留着备用。
    jccaipc
        5
    jccaipc  
       44 天前
    收藏
    yanyuechuixue
        6
    yanyuechuixue  
       44 天前
    感谢! 支持!
    zanjie1999
        7
    zanjie1999  
    OP
       44 天前
    喜报,浏览器的 h264 和 hevc 串流实现了,3k 60hz 下延迟有 3 秒左右,相比 vp8 的 1 秒和 mjpg 的 100ms 还有很大的优化空间,不过没有使用 js ,mjpg 模式在 kindle 的浏览器下大概也是可用的
    yanyuechuixue
        8
    yanyuechuixue  
       44 天前
    我这边似乎延迟比较高,即便是用 mjpg 延迟也在 1s 左右。没有虚拟屏幕,就是直接 stream 的 macbook m1 pro 显示器。用的已经是 5G wifi 了,请问大概是怎么回事儿呢?
    neochen13
        9
    neochen13  
       43 天前
    这么好的 app 居然是免费的,谢谢楼主分享啊
    barfi1316
        10
    barfi1316  
       43 天前
    之前有个老的 ipad 不支持随访,现在可以用起来了。
    Anna1879
        11
    Anna1879  
       43 天前
    谢谢大佬
    wxjback
        12
    wxjback  
       43 天前
    我的老 IPAD 有用武之地了?
    vorabend
        13
    vorabend  
       43 天前
    @yanyuechuixue 同 使用 mjpg 延迟很高 1s 多一点 不知道问题出在哪
    zanjie1999
        14
    zanjie1999  
    OP
       43 天前
    @yanyuechuixue 你可以尝试降低分辨率看看有没有帮助,打开 py 文件可以编辑分辨率限制,当然了路由的性能也是很重要的,我这用的 ipq6000 虽然设备是 5g wifi 的,但信号再差延迟也不会超过半秒,如果是 android 还可以用 usb 连接后用 adb 的端口转发功能实现有线传输

    adb reverse tcp:65532 tcp:65532

    这样可以直接在设备的浏览器上打开 http://127.0.0.1:65532 来访问电脑上的服务
    zanjie1999
        15
    zanjie1999  
    OP
       43 天前
    @vorabend 刚没 at 到,看上一条
    luka77
        16
    luka77  
       43 天前
    问一下副屏上没有鼠标指针是怎么回事?
    zanjie1999
        17
    zanjie1999  
    OP
       43 天前
    @luka77 如果你使用的不是最新版本,那确实有这个问题,最新版我把缺的参数加上了,因为最初我是在黑苹果上开发的,这个采集鼠标指针的参数在白的才有
    zanjie1999
        18
    zanjie1999  
    OP
       43 天前
    ![]( https://img.picui.cn/free/2024/10/09/670641a22896d.jpg)
    这是串流的 14 寸 mac 的内置 3K 屏幕,分辨率宽度限制为 1920 ,占用 12m/s 带宽,延迟 133ms
    smartruid
        19
    smartruid  
       42 天前
    挺有意思的
    zanjie1999
        20
    zanjie1999  
    OP
       42 天前
    做了一下 Windows 和 Linux(x11)的支持,可以快速在局域网进行无需客户端的屏幕镜像,比如说在开会的时候将屏幕画面镜像到没有 hdmi 输入功能的大屏触摸一体机上
    arare
        21
    arare  
       42 天前
    非常好,延迟可以接受
    bgo
        22
    bgo  
       42 天前
    打卡
    wanpp
        23
    wanpp  
       41 天前
    请问 op IMac 可以给 mbp 随航吗?
    zanjie1999
        24
    zanjie1999  
    OP
       41 天前
    @wanpp
    mac 投 mac 可以直接在显示设置的无线显示器上选吧,我黑苹果用的 intel 网卡没法 airplay ,我没试过,但 iPhone 可以 airplay 到 mbp 上
    或者你直接用这个程序也行,反正显示端只要有个浏览器或者能打开 url 的视频播放器就行
    wanpp
        25
    wanpp  
       41 天前
    @zanjie1999 #24 谢谢 op 的回复,我有空去试试。主要 mac 投 mac 只能用通用控制,同一套键鼠,但是系统还是各自独立的,我只想作为一个显示器用
    zanjie1999
        26
    zanjie1999  
    OP
       40 天前
    适配了 Safari 和 Firefox ,并且增加了自动旋转,因为发现了 ios 上的 Safari 原来不支持横屏( 6s ios15 , 就像 ipad os 不支持纵向分屏一样奇怪)
    发现一个有意思的事情,mac 可以在 60hz 的视频流中实时复制显示的内容,并且只占用 100% cpu ,也就是一个核心
    beyondgamp
        27
    beyondgamp  
       40 天前
    能拿 windows 笔记本做 mac 的副屏吗?
    zanjie1999
        28
    zanjie1999  
    OP
       40 天前
    @beyondgamp 当然可以,有浏览器就行
    我感觉 Kindle 也可以,虽然那个浏览器内核很老
    laris
        29
    laris  
       38 天前
    BetterDummy 用哪个?我看上游收费了,有几个 fork 项目
    不知道哪个 fork 项目支持自信的 macOS v15

    如果能把手机做副屏还是很实用
    zanjie1999
        30
    zanjie1999  
    OP
       37 天前
    @laris 随便用一个,免费的功能就完全够用,或者自己插个 hdmi 诱骗器,我比较偏向于诱骗器,因为 BetterDummy 会影响待机,后续考虑自己实现一下虚拟显示器的事情,不过目前没有任何头绪,想做很久了,现在这个屏幕采集的方法还是写的那天晚上突然想到的,这程序就是这样弄了一晚写出来的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3013 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 14:17 · PVG 22:17 · LAX 06:17 · JFK 09:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.