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

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

  •  2
     
  •   zanjie1999 · 8 天前 · 1838 次点击

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

    adb reverse tcp:65532 tcp:65532

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

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