公司动态
MirrorCaster 投屏实战:USB 一插,60FPS 低延迟把手机搬上电脑
MirrorCaster 投屏实战USB 一插60FPS 低延迟把手机搬上电脑【免费下载链接】MirrorCaster开源、高效、低延迟的Android投屏工具项目地址: https://gitcode.com/gh_mirrors/mi/MirrorCasterMirrorCaster 是一款开源 Android 投屏工具手机连上电脑桌面立刻同步出完整画面延迟低到拖动、点击几乎无感。它基于 C# WinForms 开发GPLv3 协议adb 与 mpv 直接内置在 lib 目录里不用你额外装任何环境。它凭什么打动你延迟实测到毫秒级。作者用高速摄影逐帧比对手机与电脑画面USB 连接下三台手机的平均显示延迟Xiaomi MIX 3骁龙 84560FPS28.42msXiaomi MIX 2骁龙 83560FPS41.66msGoogle Pixel 3 XL骁龙 84560FPS57.38ms满帧不降级。1080p 分辨率下轻松跑到 60FPS滑动桌面、玩游戏都不拖影。开箱即用的全家桶。adb 工具链和 mpv 播放器都放在lib/目录随程序一起分发编译完就能直接跑不存在装了这个还缺那个的依赖地狱。参数全部摆在明面上。投屏码率、硬件解码、垂直同步、四档延迟策略全是界面里的勾选项改完即时生效。从零跑起来环境要求很朴素Windows 系统、.NET Framework 4.5 以上、一台开启了 USB 调试的安卓手机。克隆仓库到本地git clone https://gitcode.com/gh_mirrors/mi/MirrorCaster在手机上打开开发者选项启用 USB 调试用数据线连接电脑并允许调试授权。打开MirrorCaster.sln用 Visual Studio 或 dotnet 工具链编译 Release。运行编译出的 MirrorCaster.exe。点开始投屏在弹出的输入框填入码率默认 30Mbps点确定。看到主窗口里手机桌面实时刷新、顶部显示投屏状态再按一下窗口上的返回键手机真的退回上一屏——恭喜链路通了。核心功能拆解桌面内嵌投屏横竖屏自动跟着切点开始投屏后画面直接嵌进主窗口的显示区域不弹额外窗口。程序每 2 秒轮询一次手机屏幕状态你旋转手机它就自动断开重连并切换分辨率不用手动干预。独立窗口模式给 OBS 抓屏准备的点独立窗口投屏会弹出单独的 mpv 播放器窗口窗口标题固定为 Mirror Caster SourceOBS 用游戏捕获指向它即可。这个模式牺牲了部分可控性——旋转和分辨率自适应被禁用所以建议先把手机固定成横屏再点确定。不用拿手机桌面遥控器代按投屏中主窗口下方一排按钮通过 ADB 把按键事件发到手机电源、返回、Home、多任务、音量加减。演示时点 PPT 翻页、演示程序里切页面全程不用碰手机。码率不是玄学输入框里有说明书开始投屏前的码率输入框自带分档建议小于 10Mbps 适合走互联网小于 30Mbps 适合 USB100Mbps 以内适合百兆局域网的旗舰机200Mbps 封顶。程序只允许 0~200 之间的合法值防止手滑。延迟四档 硬解开关按网络情况选下拉框提供超低延迟 / 均衡偏延迟 / 均衡偏稳定 / 稳定四档策略配合硬件解码和垂直同步两个开关。弱网或老显卡就先求稳追极限延迟就全开。它是怎么做到的整条链路其实就三步。第一步adb 在手机上拉起screenrecord用 H.264 编码屏幕内容输出写到标准输出流码率由--bit-rate参数决定也就是你刚才填的那个数字。第二步StreamPipe.cs 用一个 4KB 缓冲区的异步读写任务把 adb 吐出来的字节流原封不动地接到 mpv 的标准输入。它刻意不缓存多一个字节都不多存这是低延迟的第一道保障。第三步mpv 以低延迟档位解码走 Direct3D11 硬件加速再配合--cacheno、--video-latency-hacksyes等参数把渲染链路压到最短。内嵌模式下程序通过 Win32 API 把 mpv 窗口收养进主窗口的显示区域所以你看到的是一个窗口里的手机而不是两个窗口。编码、转发、解码三段零缓存串起来几十毫秒的延迟就成立了。想动手改看这里三个入口文件值得先看MainForm.cs所有投屏逻辑的集散地起进程、拼参数、收按键、管定时器都在这StreamPipe.cs流转发管道只有几十个字符的缓冲区大小可以调DeviceInfoData.cs从 adb 探测到的屏幕分辨率与刷新率想加自定义延迟档位在 MainForm.cs 顶部的 profileList 字典里追加一条 mpv 参数即可想加新虚拟按键照ADBSentKey的写法换个 keycode。踩坑与优化提示more than one device投不了屏—— 电脑同时连着多台开调试的手机adb 不知道服务谁。拔掉多余的线或在别的设备上关掉 USB 调试。USB 投屏画面卡、有马赛克—— 码率给高了USB 2.0 带宽喂不饱。先降到 16Mbps 左右试局域网传输建议 10Mbps 以下。延迟比预期高—— 先切到超低延迟模式并确认硬件解码是开着的老 CPU 上硬解收益尤其明显。独立窗口模式下画面方向不对—— 该模式禁用了旋转自适应这是设计使然。开始前先把手机手动设成目标方向。投屏中设备被拔掉进程残留—— 不用手动清。心跳定时器发现设备消失后会弹窗提示并自动停止投屏、杀掉两个子进程。给直播、演示、投屏性能研究的朋友代码全开源去仓库看看顺手可以提个 Issue。【免费下载链接】MirrorCaster开源、高效、低延迟的Android投屏工具项目地址: https://gitcode.com/gh_mirrors/mi/MirrorCaster创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考