zanjie1999
V2EX  ›  macOS

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

  •  2
     
  •   zanjie1999 · Oct 8, 2024 · 6376 views
    This topic created in 757 days ago, the information mentioned may be changed or developed.

    咩 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

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

    adb reverse tcp:65532 tcp:65532

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

    如果能把手机做副屏还是很实用
    zanjie1999
    zanjie1999
    OP
    Oct 15, 2024
    30
    @laris 随便用一个,免费的功能就完全够用,或者自己插个 hdmi 诱骗器,我比较偏向于诱骗器,因为 BetterDummy 会影响待机,后续考虑自己实现一下虚拟显示器的事情,不过目前没有任何头绪,想做很久了,现在这个屏幕采集的方法还是写的那天晚上突然想到的,这程序就是这样弄了一晚写出来的
    yangyp2
    yangyp2
    May 15, 2025
    31
    测试了下 mac 自带的屏幕镜像(mac mini m4,雷电 4 连接到 imac 24,4K 镜像),手机拍摄延迟秒表大概在四十多毫秒,感觉就像 60 刷新率切换到 30 刷新率,用这个项目本地起服务,本地浏览器打开大概在 100 多,期待后续优化,(udp)会不会改善,询问 gpt,Http 的延迟挺大的
    zanjie1999
    zanjie1999
    OP
    Nov 3, 2025
    32
    @yangyp2 超强的兼容性与极致的性能不可兼得(比如能支持 kindle 自带浏览器,或是 mjpg 模式能兼容上古 ie),目前最大的延迟在于 mac 的屏幕采集,ffmpeg 调用的也是系统的屏幕采集 api ,分辨率越大,采集速度越慢,延迟也越高,压缩和传输到是挺快的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5034 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 70ms · UTC 01:43 · PVG 09:43 · LAX 17:43 · JFK 20:43
    ♥ Do have faith in what you're doing.