iOSCast 用户使用手册
Windows 平台 IOS设备 USB 有线多设备投屏控制与异地 P2P 远程控制软件——本地多机监看、触控回传、批量管理,以及媒体不经中转的点对点远程。
01产品简介
iOSCast 是一款运行在 Windows 电脑上的 IOS设备 多设备投屏控制软件。它通过 USB 线获取 IOS设备 屏幕画面,使用显卡硬件解码并直接上屏,支持多台设备同时监看与操作;在此基础上,还提供异地点对点(P2P)远程能力,让另一台电脑在异地查看并操控现场的手机。
软件包含两类典型用法:
- 本地多设备控制:一台 Windows 电脑通过 USB Hub 连接多台 IOS设备,在“窗口视图”一屏监看全部画面,双击进入大窗点击 / 滑动,可批量开始结束投屏、USB 重置、重启,并按分组管理。
- 异地远程:现场端导出密钥,异地操控端导入后建立点对点连接,远程查看小窗、双击开大窗操作,画面与触控在两台电脑之间直连传输,不经过服务器中转。
本手册按“先跑起来、再深入功能、最后排障”的顺序编写。第一次使用建议从 第 4 章 安装与首次启动 开始;只关心异地远程可直接阅读 第 10 章。
02功能一览
| 分类 | 能力 |
|---|---|
| 投屏与画面 | USB 有线取流(H.264);D3D11 / D3D12VA 硬件解码、GPU 零拷贝上屏;多台设备小窗监看墙;双击进入独立大窗;横屏 / 竖屏切换;息屏可投、解锁自动恢复;热插拔自动刷新;批量投屏内部串行启动防崩。 |
| 操作与自动化 | 大窗点击 / 滑动回传(需配合触控硬件);快速连点不漏判;键盘映射与 Ctrl 组合键;自定义快捷按钮;触控动作录制与循环回放;一键截图;HTTP API 供脚本调用;进阶的 AI 视觉自动化。 |
| 设备管理 | 读取设备名称 / 型号 / iOS / 序列号 / UDID;基于真实握手的信任状态检测;备注、分组、硬件 IP / 端口持久化;投屏驱动内置一键安装 / 卸载 / 检查;批量 USB 重置与重启。 |
| 异地远程 | 一机一密钥导入导出;现场端远程开关与密钥轮换;操控端按需连接;远程视图小窗预览、双击开大窗操作;远程开始 / 结束投屏、USB 重置、重启;媒体点对点直连、不经服务器中转;连接状态可视化。 |
03系统要求与准备
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows 10 / Windows 11,64 位。 |
| 显卡 / 解码 | 支持 D3D11 / D3D12VA 硬件解码的核显或独立显卡,近年的集成显卡一般即可满足。 |
| USB 连接 | 建议 USB 3.0 接口;连接多台设备时建议使用带独立供电的 USB Hub,并使用可传数据的 USB 线(非纯充电线)。 |
| Apple 设备识别 | 需要 Apple Mobile Device 支持(安装 iTunes 或“Apple Devices”应用即可),用于设备枚举、配对与“信任此电脑”。 |
| 投屏驱动 | 随包内置 libusb0 投屏过滤驱动(libusb0.sys,数字签名有效),在软件内一键安装,需管理员权限。 |
| VC 运行库 | 所需 VC++ 运行库 DLL 已随程序目录分发,正常情况下解压即用、无需另装。 |
| 触控回传 | 需要配套触控硬件,并在设备管理中填写其 IP 与端口(每台手机一路)。仅查看投屏画面不需要触控硬件。 |
| 异地远程 | 现场端与操控端均运行本软件并能访问互联网;建议允许 UDP 出站用于 P2P / STUN。无需公网 IP。 |
| 手机机型 | 支持通过 USB 输出 QuickTime 视频的 IOS设备。已实测 IOS设备 X / XS(XS Max)、iOS 16.7.x;其他机型与 iOS 版本请以实测为准。 |
两点前提请先了解:① 点击 / 滑动回传依赖配套触控硬件;② 异地远程为纯点对点方案,在对称 NAT、严格企业防火墙下可能打洞失败,详见 第 10 章“连接边界”。
04安装与首次启动
iOSCast 为绿色免安装软件,不写安装向导、不强制装运行库;投屏环境在软件启动时自动配置,无需手动安装驱动。第一次使用按下面顺序。
4.1 解压软件包
- 把整个压缩包完整解压到同一个文件夹(例如
D:\iOSCast\),主程序、drivers\、redist\等目录必须在一起。 - 不要在压缩包预览窗口里直接双击 exe——那样只有主程序被临时释放,旁边的 DLL 不会一起出来,会报“缺少 DLL”。
- 右键目录中的主程序
iOSCast.exe,选择“以管理员身份运行”启动。
若 360、电脑管家、Windows Defender 等把 DLL 或 exe 隔离,请在“隔离区 / 恢复区”恢复并加入信任白名单,再重新完整解压。
4.2 投屏环境自动配置
USB 视频取流依赖随包内置的 libusb0 组件(libusb0.sys,数字签名有效,适用于 Windows 10 / 11 x64)。软件以管理员身份启动时会自动把 libusb0.sys 落地到系统驱动目录、注册按需启动的内核服务,无需手动安装,也不需要预装爱思助手 / iTunes 的过滤器。
- 右键
iOSCast.exe以管理员身份运行(首次配置需要管理员)。 - 日志出现“投屏环境已就绪”即完成;组件只在取流时临时加载,不会开机常驻。
4.3 VC 运行库(一般可跳过)
所需的 msvcp140.dll、msvcp140_1.dll、vcruntime140.dll、vcruntime140_1.dll 已放在程序目录,正常电脑解压即用。仅当启动时出现以下情况才需要安装随包运行库:
- 提示找不到
MSVCP140_1.dll/VCRUNTIME140_1.dll; - 提示“应用程序无法正常启动(0xc0000142)”。
此时双击 redist\vc_redist.x64.exe 安装;或右键 redist\install_quiet_run_as_admin.bat 以管理员身份静默安装,完成后重新打开软件。
4.4 连接 IOS设备 并建立信任
- 用数据线把 IOS设备 接到电脑(多机请用带独立供电的 USB Hub)。
- IOS设备 弹出“是否信任此电脑”时点“信任”,并输入锁屏密码确认。
- 设备识别依赖 Apple Mobile Device 支持;若电脑完全识别不到设备,请安装 iTunes 或“Apple Devices”应用。
- 在软件顶部点“刷新设备”或“USB 重置”,设备管理中出现设备名称、型号、iOS 版本与“已信任”状态。
启动后若设备名称 / 型号一度空白,软件会在短时间内自动静默补读,无需立刻手动 USB 重置;长时间仍空白再手动刷新。
4.5 验证第一次投屏
在“窗口视图”右键设备小窗选“开始投屏”,或在“设备管理”选中设备后点顶部“开始投屏”。状态依次进入“连接中”,随后出现实时画面即表示成功。
05界面总览
5.1 左侧导航
主导航自上而下为六个页面,其下方是独立的“分组管理”区(默认含“未分组”)。各导航项完整可见、无需上下滚动。
| 页面 | 用途 |
|---|---|
| 窗口视图 | 所有已连接设备的小窗预览网格,双击小窗进入大窗。 |
| 设备管理 | 设备信息表、远程开关、备注 / 分组 / 硬件地址编辑。 |
| 设置 | 触控判定、鼠标采样、坐标规格、键盘映射、解码与帧率等参数。 |
| AI 助手 | 进阶的 AI 视觉自动化:配置豆包、自然语言生成脚本、运行与日志。 |
| 远程管理 | (操控端)导入密钥、连接控制、远程投屏 / 重置 / 重启。 |
| 远程视图 | (操控端)远端设备小窗预览,双击弹出远程控制大窗。 |
| 分组管理 | 创建 / 重命名 / 删除分组,把设备分配到分组;点分组可筛选窗口视图。 |
5.2 顶部工具栏
| 按钮 | 作用 |
|---|---|
| 刷新设备 | 重新获取选中设备的信任状态与设备信息。 |
| 开始投屏 / 结束投屏 | 对选中的一台或多台设备批量开始 / 结束投屏。 |
| 重启 | 远程重启选中的 IOS设备(会真实重启)。 |
| USB 重置 | 对已连接 IOS设备 执行 USB 重置,效果近似拔插数据线。 |
| 异地远程 | 打开手动 SDP 连接窗口,作为自动打洞失败时的手动兜底。 |
| 导出密钥 | (现场端)为已开启远程的设备导出 .ickey 密钥文件。 |
5.3 窗口视图与小窗
每台设备一个小窗卡片,显示设备名称、型号、iOS 版本、投屏状态与实时预览。小窗采用硬件解码、默认仅刷新关键帧以降低 CPU 占用。右键菜单包括:
开始投屏、结束投屏、大窗口、重启手机、编辑备注、触控调试。
5.4 大窗口
双击小窗或右键选“大窗口”打开,画面铺满显示,支持横 / 竖屏。右侧工具栏依次为:截图、录制、播放、横屏切换、启用键盘、自定义快捷按钮(默认含唤醒、上滑、下滑、左滑、右滑,可编辑 / 新建);底部状态栏实时显示触控坐标。关闭大窗即结束该设备投屏。
5.5 设备管理页
顶部工具条提供“全选 / 取消全选 / 已选择 N 台设备”,以及“开启远程 / 关闭远程”(可多选批量)。设备表共 16 列:
| 列 | 含义 |
|---|---|
| 设备ID | 设备 UDID(24 位显示大写、40 位显示小写)。 |
| 设备名称 | IOS设备 上设置的名称。 |
| 备注 | 自定义备注,可直接双击编辑、自动保存。 |
| 分组 | 设备所属分组。 |
| 硬件地址 / 硬件端口 | 触控硬件的 TCP IP 与端口;端口按 USB 口位自动填默认值、也可手动改,立即生效。 |
| 序列号 / 产品名称 / 产品型号 / 产品版本 | 设备序列号、营销名、内部型号标识、iOS 版本。 |
| 上架编号 / 上架状态 | 用于现场机位管理的自定义字段,可编辑,不参与投屏逻辑。 |
| 信任状态 | 通过真实连接握手验证(不靠配对文件是否存在判断);投屏过程中不检测。 |
| 投屏状态 | 未投屏 / 连接中 / 正在投屏 / 大窗口 / 投屏失败。 |
| 远程 | 是否对该设备开启异地远程(默认关闭)。 |
| 远程状态 | 未被远程 / 远程中(N),显示当前是否正被操控端连接。 |
5.6 远程管理页(操控端)
工具按钮:导入密钥、删除设备、开始连接、关闭连接、开始投屏、结束投屏、USB 重置、重启,右侧显示“远程设备 N 台”。表格共 8 列:
设备名称、型号、iOS、UDID、在线、授权、连接、投屏。其中“在线”表示现场端是否在线,“授权”表示密钥是否有效,“连接”表示 P2P 连接状态,“投屏”表示现场端是否正在投屏。表格按行多选、不可直接编辑。
06软件页面
本章收录 iOSCast 主要页面的实机截图,可与第 5 章“界面总览”对照阅读。软件持续迭代,个别文字、布局与列项以最新版本为准。
07本地投屏
7.1 开始投屏
- 单台:右键小窗 →“开始投屏”,或在设备管理选中后点顶部“开始投屏”。
- 多台:在设备管理勾选多台后批量开始。软件内部会逐台串行启动,避免多设备同时握手导致崩溃,因此批量开始时画面是依次出现的。
- 启用 USB 隐藏视频配置时,设备会短暂重连约 1.5 秒,属正常现象,无需拔线。
7.2 投屏状态含义
| 状态 | 含义 |
|---|---|
| 未投屏 | 设备空闲,尚未开始投屏。 |
| 连接中 | 正在建立 USB 视频连接。 |
| 锁屏中 | 开始投屏后约 5 秒无画面帧,判定设备锁屏、整行标红;解锁后自动出画面。 |
| 正在投屏 | 视频通道已建立,小窗实时显示画面。 |
| 大窗口 | 该设备正以独立大窗显示。 |
| 投屏失败 | 握手未完成,常见于驱动、信任或 USB 连接问题,见 第 16 章。 |
| 需要重启 | 能收到 PING 但 CWPA 超时,手机端停止镜像、会话卡死且 USB 无法复位,重启该手机即可。 |
7.3 分辨率与画面
软件向设备请求 576×1024,IOS设备 实际输出分辨率由机型决定(例如 IOS设备 X 为 1125×2436,IOS设备 8 / SE 第三代为 750×1334),软件自动适配,无需手动设置。画面经 D3D11 / D3D12VA 硬件解码并以 GPU 零拷贝方式上屏。
7.4 结束投屏
右键 →“结束投屏”,或直接关闭大窗口。正常结束后手机退出投屏模式,小窗恢复为无画面状态。
7.5 息屏投屏与解锁恢复
IOS设备 息屏 / 锁屏时也能开始投屏:约 5 秒收不到画面帧即自动判定“锁屏中”、整行标红;解锁后设备自动推 IDR,画面自动恢复,无需重新投屏。
7.6 横屏 / 竖屏
大窗右侧“横屏切换”可把画面旋转 90° 显示,触控坐标会随旋转同步换算,横屏下点按位置仍然准确。
7.7 热插拔、USB 重置与重启
- 插拔设备时软件会自动静默刷新设备列表(带冷却,避免抖动)。
- “USB 重置”按“停锁屏订阅→临时加载组件→重置→恢复→重启锁屏订阅”执行,模拟拔插;不判断成败、只提示“已执行”,常用于识别异常、信任卡住时恢复。
- “重启”会通过设备服务真实重启选中 IOS设备,请确认后再操作。
7.8 小窗解码模式与帧率
为降低多机 CPU 占用,小窗默认只解码并刷新关键帧;可在设置中切换“全帧 / 关键帧后连续解 10 帧 / 仅关键帧”,并设置 NEED 发送间隔(30FPS 约 33fps、全速为每帧立即回复)。大窗口按完整画面渲染。详见 第 13 章。
08触控 · 键盘 · 录制回放 · 截图
本章的点击 / 滑动 / 键盘回传,都依赖配套触控硬件:需在设备管理确认每台手机触控硬件的 IP 与端口(端口按口位自动填、可手改),并已开始投屏。仅查看画面不受此限制。
8.1 鼠标点击与滑动
- 触控坐标原点在左下角,X 向右、Y 向上;采用全局鼠标位置采样,精度不受窗口大小影响。
- 单击:鼠标按下后在“单击检测时间”(默认 130ms)内松开,发送一次按下 + 松开;快速连点不会漏判。
- 滑动 / 长按:按下超过 130ms 即进入滑动,按“鼠标采样间隔”(默认 10ms)持续采样发送,按下指令尾段为
0101、松开为0000,不做插值补帧(由手机端处理)。 - 触控坐标规格默认 1248×2680,应与触控硬件的虚拟坐标系一致。
8.2 点击位置不准
在设置中把“触控坐标规格”改为设备实际触控分辨率(例如 IOS设备 X 可设为 1125×2436),并确认大窗为竖 / 横屏的正确方向;横屏坐标由软件按渲染变换自动换算。
8.3 键盘映射
- 在大窗右侧点“启用键盘”接管键盘输入;同一时间只允许一个大窗启用(互斥),关闭大窗自动取消,不影响电脑其他操作。
- 普通键支持 A–Z、空格、回车、退格、Tab、CapsLock、Ctrl,每个键可自定义十六进制触控指令。
- Ctrl 键:短按(200ms 内松开)发送一次;长按在 200ms 时发送一次、松开时再发送一次。
- 组合键支持 Ctrl+0~9、Ctrl+A~Z,与普通键独立;默认配置 15 个常用组合键,组合键之间有冲突检测。
- 键盘配置全局生效、所有大窗共享。
8.4 自定义快捷按钮
大窗右侧默认提供唤醒、上滑、下滑、左滑、右滑;右键按钮可编辑名称与触控指令,也可新建自定义按钮。配置全局共享并自动持久化。
8.5 录制与回放
- 点大窗右侧“录制”,1:1 记录所有点击 / 滑动及精确时间戳,保存为 JSON(位于程序目录)。
- 点“播放”选择录制文件,按原始时间间隔自动执行。
- 可设置播放次数或无限循环;播放前请确认触控硬件已连接、设备已投屏。
8.6 截图
点大窗右侧“截图”,图片直接保存到程序目录的 screenshots\,命名为 screenshot_{UDID后8位}_{时间戳}.png,不弹保存对话框。
8.7 触控调试
小窗右键“触控调试”用于排查触控硬件连接与指令;未配置硬件 IP / 端口时会提示先在设备管理填写。
8.8 多设备同步控制
- 在“窗口视图”按住 Ctrl 逐个点击小窗可多选,被选中设备的名称 / 备注变为红色。
- 选中后,在任意一台上的触控操作会完全同步发送给所有被选设备,包括大窗右侧工具栏中所有向硬件发送的自定义触控按钮。
- 顶部“取消同步控制”可一键解除全部同步;按住 Ctrl 再次点击某小窗可单独取消该台。
09设备管理与分组
9.1 设备信息
软件通过 libimobiledevice 从设备 Lockdown 读取名称、型号、iOS 版本、序列号与 UDID,比命令行 ideviceinfo 更稳定。设备信息带有缓存:某次读取失败时显示上次缓存,完全无缓存时仅显示 UDID。
9.2 信任状态(实时检测,不被缓存影响)
“信任状态”通过与设备进行真实连接握手来判定,不依赖配对记录文件是否存在,也不使用设备信息缓存,因此能反映当前真实的信任关系:
- 未信任时提示“未信任,请 USB 重置试试”,请在手机上重新“信任此电脑”后刷新或 USB 重置。
- 正在投屏的设备不重复检测信任,避免打断视频会话。
- 掉信任常见于结束投屏流程尚未完成就立即重新投屏,建议等上一次结束流程走完再开始。
9.3 编辑备注、硬件地址与分组
在设备管理表中双击“备注 / 分组 / 硬件地址 / 硬件端口”等单元格即可编辑,保存后立即生效、自动持久化,无需重启软件。硬件地址与端口即该手机对应触控硬件的 TCP 地址。
9.4 分组管理
- 可创建、重命名、删除分组,默认存在“未分组”;设备可多选分配到分组。
- 点击左侧某个分组,窗口视图只显示该分组内的设备;删除分组后其设备回到“未分组”。
9.5 配置保存与换机
设备的硬件 IP / 端口、备注等持久化在程序目录的 device_config.json,同时界面配置通过 QSettings 写入注册表 HKEY_CURRENT_USER\Software\iOSCast\iOSCast(以 UDID 为键)。换机时最简单的做法是把整个程序目录一起拷贝;必要时再导出 / 导入上述注册表项。
9.6 运行 / 停止脚本
- 顶部“运行脚本”可选择 JSON 脚本文件,对选中设备执行;“停止脚本”终止运行。
- 设备表“脚本名称”列仅显示正在运行的脚本名称,未运行时为空。
9.7 长按开机键
顶部“长按开机键”用于尚未开机的 IOS设备,可自定义硬件 IP 与端口,触控指令固定为 494E5431504F5745524F4E,不依赖设备列表中的设备。
9.8 信任证书备份与校验
- 软件会把
C:\ProgramData\Apple\Lockdown下在线设备的 plist 信任证书备份到备份文件夹;配对失效时可用备份证书重新配对。 - 顶部“证书校验”可校验全部备份证书,失效的自动删除;该操作要求所有设备均处于未投屏状态。仅对在线设备操作,不在线设备不会被触碰。
10异地 P2P 远程
10.1 工作方式
异地远程区分两个角色:
- 现场端(host):连接并投屏 IOS设备 的电脑,掌握密钥授权。
- 操控端(controller):异地的另一台电脑,可以不连手机。
建立连接时,信令服务器只负责双方的握手信息交换与 STUN 打洞协助;连接打通后,画面与触控指令在两台电脑之间点对点直传,服务器不转发、不缓存媒体。客户端已内置服务器地址,一般无需任何配置,两端也都不需要公网 IP。
10.2 现场端:开启远程并导出密钥
- 连接 IOS设备、装好投屏驱动并“开始投屏”,确认本地画面正常。
- 在设备管理勾选要授权设备的“远程”列,或选中设备后点“开启远程”(默认关闭,可多选批量)。
- 点顶部“导出密钥”,勾选设备(可多选 / 批量,仅导出已开启远程的设备),把生成的
.ickey文件发给操控端。 - 保持程序运行即作为现场端在线;“远程状态”列显示“未被远程”或“远程中(N)”。
10.3 操控端:导入、连接与远程操作
- 在“远程管理”点“导入密钥”,选择收到的 .ickey(可多选批量)。导入后不会自动连接。
- 选中一台或多台,点“开始连接”(可批量),按电脑性能按需开几路;“连接”列变为“已连接”。
- 切到“远程视图”,小窗出现实时画面(仅预览、不可直接触控);双击小窗弹出“远程控制”大窗,在大窗内点击图标、按住滑动来操控手机。
- 关闭大窗不会断开连接;再次双击同一设备只会前置已开大窗,不会重复开窗。
- “关闭连接”断开选中设备(对应大窗自动关闭);“删除设备”只删除本机保存的密钥。
远程大窗右侧提供四个按钮:横屏 / 竖屏显示(坐标随旋转换算)、屏幕截图(保存到 remote_screenshots\ 并提示路径)、复制信息(复制该设备 UDID)、重启设备(二次确认后真实重启)。
在远程管理还可对现场端发起反向操作:开始投屏、结束投屏、USB 重置、重启,这些都会真实作用于现场手机,请谨慎使用。
若现场端尚未投屏,操控端点“开始连接”会提示“请先开始投屏”,软件不会替你自动投屏;请由现场端先投屏后再连接。大窗首次出画面时会向现场端请求一次关键帧,属正常现象。
10.4 安全模型
- 一机一密钥:每台手机一个独立的 .ickey 访问凭证,请通过可信渠道发送、不要公开外传。
- 默认关闭:设备默认不允许远程;现场端不开启,即使持有密钥也无法连接。
- 密钥轮换:现场端“关闭再开启”远程会自动生成新密钥,旧 .ickey 立即失效(重新导入显“已失效”,已在列表显“不可连接”),并断开该设备已有远程连接。
- 连接状态约每 5 秒刷新一次,并在本地缓存,便于离线时查看最近状态。
10.5 连接边界:为什么有时停在“连接中”
iOSCast 异地远程是纯点对点方案,不提供中继(TURN)。多数家庭 / 普通办公网络可通过 STUN 打洞直连;但在对称 NAT、严格企业防火墙等网络下可能无法打洞,状态长时间停在“连接中”。这是纯 P2P 的固有取舍,而非故障。
遇到连不上时可:① 让任一端更换网络环境(如手机热点)后重试;② 使用顶部“异地远程”打开的手动 SDP 窗口作为兜底对照(一方生成并复制邀请码、另一方提交应答码);③ 确认现场端确实已投屏、密钥未被轮换失效。
10.6 远程与本地的功能差异
远程视图复用本地的小窗与大窗画面内核,但为保证稳定,以下能力当前仅在本地端使用,未迁移到远程大窗:AI 带教、视觉测试、启用键盘、触控录制 / 播放、用户自定义触控按钮。远程大窗保留画面显示、横竖屏、截图、复制信息与重启。
11AI 视觉自动化(进阶可选)
该模块为进阶功能、持续迭代中,需要自备豆包 API Key;配置仅保存在本机,不会随软件上传。AI 带教与视觉测试仅在本地端提供,不随异地远程迁移。
11.1 能做什么
- 用一句自然语言描述任务(例如“打开某 App 并点击某按钮”),自动生成可编辑的自动化脚本。
- 脚本基于本地视觉:OCR 文字识别、UI 锚点与找图点击(findandtap);当画面卡住时,可由豆包查看当前截图进行云端兜底判断。
- “AI 带教”在第一遍逐步确认后引导操作;“视觉测试”用于界面识别验证。
11.2 使用步骤
- 进入“AI 助手”页,在“豆包连接配置”填入 API Key、Endpoint、文本模型与视觉模型,点“保存并应用”。
- 选择目标设备并刷新设备画面。
- 用自然语言描述任务,点“生成脚本”;可在脚本区直接查看 / 修改 JSON。
- 点“运行”执行,“停止”中断;运行日志、AI 介入记录与本次会话 token 消耗在页面下方查看。
12HTTP 接口
软件启动后自动在本机 8080 端口开启 HTTP 接口服务,便于脚本 / 自动化平台调用。若启动日志提示端口问题,请确认 8080 未被其他程序占用。
| 方法 | 路径 | 说明 / 参数 |
|---|---|---|
| GET | /api/devices | 获取当前设备列表与状态。 |
| POST | /api/cast/start | 开始投屏,JSON 体 {"udid":"设备UDID"}。 |
| POST | /api/cast/stop | 结束投屏,JSON 体 {"udid":"设备UDID"}。 |
| GET | /api/cast/status | 查询投屏状态。 |
| POST | /api/screenshot | 触发截图。 |
| POST | /api/usb_reset | USB 重置;JSON 体给 udid 针对单台,省略则对全部设备。 |
| POST | /api/reboot | 重启设备(会真实重启)。 |
调用示例
# 查看设备列表
curl http://127.0.0.1:8080/api/devices
# 对指定设备开始投屏
curl -X POST http://127.0.0.1:8080/api/cast/start ^
-H "Content-Type: application/json" ^
-d "{\"udid\":\"你的设备UDID\"}"
PowerShell 中也可使用 Invoke-RestMethod 发起同样的请求。
13设置项参考
| 设置项 | 默认值 | 说明 |
|---|---|---|
| 单击检测时间 | 130 ms | 按下后在此时间内松开判为单击,超过则判为滑动 / 长按;保证快速连点不漏。 |
| 鼠标采样间隔 | 10 ms | 滑动过程中采样并发送触控点的间隔。 |
| 触控坐标规格 | 1248 × 2680 | 触控硬件虚拟坐标系的宽 × 高,原点在左下角;应与硬件一致,机型不同可调整。 |
| Ctrl 长按判定 | 200 ms | Ctrl 短按发送一次,长按在按下 200ms 与松开时各发送一次。 |
| 小窗解码模式 | 仅关键帧 | 全帧 / 关键帧后连续解 10 帧 / 仅关键帧,多机时用仅关键帧最省 CPU。 |
| NEED 发送间隔 | 30FPS(约 33fps) | 向设备请求视频帧的间隔;“全速”为每帧立即回复,画质 / CPU 占用更高。 |
设置项调整后即时生效并自动保存,无需重启软件。
14文件与数据目录
| 路径 / 位置 | 内容 |
|---|---|
drivers\ | 随包内置的 libusb0 投屏驱动文件。 |
redist\ | VC++ 运行库安装包与静默安装脚本。 |
models\、vision_templates\ | OCR 模型与视觉模板(AI 视觉功能使用)。 |
screenshots\ | 本地大窗截图输出目录。 |
remote_screenshots\ | 远程大窗截图输出目录。 |
device_config.json | 设备硬件 IP / 端口、备注等持久配置。 |
ai_settings.json | 豆包 API 配置,仅保存在本机。 |
录制 .json | 触控录制动作文件,保存在程序目录。 |
ioscast_debug.log | 运行日志,排障时提供给技术支持。 |
注册表 HKEY_CURRENT_USER\Software\iOSCast\iOSCast | 界面与参数配置(QSettings,以 UDID 为键)。 |
.ickey 密钥、ai_settings.json、device_config.json 与运行日志包含访问凭证或环境信息,请勿随软件包外发或公开分享。
15常见问题
异地远程一定能连上吗?
不一定。iOSCast 是纯点对点方案、不提供中继,对称 NAT 或严格企业防火墙可能打洞失败,状态会停在“连接中”。可换网络重试,或用顶部“异地远程”的手动 SDP 窗口兜底对照。
远程能看到画面,但点不动?
远程视图的小窗仅用于预览、不可触控,请双击小窗弹出“远程控制”大窗后再操作。点击指令经 P2P 回到现场端,由现场端连接的触控硬件执行,因此现场端仍需正确配置触控硬件 IP / 端口。
手机识别不到,或显示“未信任”?
确认使用数据线而非纯充电线、已安装 iTunes 或 Apple Devices;在手机上重新点“信任此电脑”并输入锁屏密码,再在软件中刷新或 USB 重置。信任状态为实时握手检测,不受设备信息缓存影响。
启动报缺少 DLL 或 0xc0000142?
先确认把压缩包完整解压到同一文件夹、未在压缩包预览中运行;仍报错则安装 redist\vc_redist.x64.exe(或管理员运行静默安装脚本)。
点击位置不准、滑动正常但点击不灵?
核对设置中的“触控坐标规格”是否与设备 / 触控硬件一致,确认大窗处于正确的竖 / 横屏方向;显示缩放比例不同时,软件按全局坐标采样一般不受影响。
投屏失败或一直“连接中”?
检查投屏驱动是否已装、设备是否已信任;息屏开始投屏会停在连接中,解锁即恢复;批量开始时设备串行启动,请稍候;必要时 USB 重置后重试。
导入的密钥显示“已失效 / 不可连接”?
现场端“关闭再开启”远程会轮换密钥,旧 .ickey 立即失效;请让现场端重新导出新密钥。
多台设备时电脑卡顿?
小窗设为“仅关键帧”、使用 USB 3.0 与带独立供电的 Hub;异地远程按需“开始连接”,不必一次打开全部设备。
支持哪些 IOS设备 / iOS?
支持可通过 USB 输出 QuickTime 视频的 IOS设备;已实测 IOS设备 X / XS(XS Max)、iOS 16.7.x,其他机型与版本请以实测为准。
软件会上传我的数据吗?
本地投屏不经过网络;异地远程媒体点对点直传、不经服务器中转或录制;AI 的 API Key 与配置仅保存在本机。软件获取与授权方式以官网公布为准。
16故障排查与日志
程序目录下的 ioscast_debug.log 记录设备枚举、握手、投屏解码、触控、远程连接等调试信息。遇到问题时,连同设备型号 / iOS 版本、问题现象、发生在本地还是远程,一并提供可快速定位。
| 现象 | 排查方向 |
|---|---|
| 缺少 MSVCP140_1.dll / VCRUNTIME140_1.dll,或 0xc0000142 | 完整解压到同一文件夹;安装 redist 运行库;恢复被杀软隔离的文件并加白。 |
| 设备列表为空 | 换数据线 / USB 口;安装 iTunes 或 Apple Devices;设备管理器确认 Apple Mobile Device;USB 重置。 |
| 显示未信任 | 手机重新“信任此电脑”并输锁屏密码;刷新或 USB 重置;避免在结束投屏未完成时立即重投。 |
| 投屏失败 / 长时连接中 | 安装 / 检查投屏驱动;确认已信任;息屏先解锁;批量时等待串行启动;查看日志握手段。 |
| 触控无响应 | 设备管理核对触控硬件 IP / 端口;确认已开始投屏;右键“触控调试”查看连接。 |
| 点击位置偏移 | 校对触控坐标规格与横竖屏方向;必要时按机型修改坐标。 |
| 远程连不上 / 停在连接中 | 对称 NAT 可能打不通;换网络重试;用手动 SDP 窗口对照;确认现场端已投屏、密钥有效。 |
| 远程已连接但无画面 | 确认现场端画面正常;大窗首次打开会请求关键帧,稍候;必要时关闭连接后重连。 |
| HTTP 接口不可用 | 确认 8080 端口未被其他程序占用。 |
17安全与隐私
- 本地投屏画面不经过网络;异地远程的画面与触控在两端之间点对点直传,服务器只协调握手、不中转或录制媒体。
- 远程授权以一机一密钥(.ickey)为凭证,设备默认关闭远程;现场端关闭再开启即轮换密钥,旧密钥立即失效。
- AI 功能的 API Key、Endpoint 等配置仅保存在本机
ai_settings.json,不上传;设备配置保存在本机文件与注册表。 - 重启、USB 重置、远程开始 / 结束投屏等会真实作用于手机的操作,均需用户主动点击触发。
- 请通过官网公布的正规渠道获取软件,不要使用来源不明的安装包或他人提供的密钥。
18卸载
- 结束全部投屏并关闭软件。
- (可选)在设备管理点“卸载投屏驱动”,移除设备上的过滤绑定。
- 删除整个程序文件夹即可(截图、录制、配置会一并删除,需要留存请先备份)。
- (可选)删除注册表项
HKEY_CURRENT_USER\Software\iOSCast\iOSCast。
iTunes / Apple Devices(Apple Mobile Device 支持)为独立软件,不由 iOSCast 卸载,请按需自行处理。
A术语表
| 术语 | 解释 |
|---|---|
| UDID | iOS 设备的唯一标识,iOSCast 以此区分不同手机。 |
| Apple Mobile Device / usbmuxd | Apple 提供的设备枚举与配对通信服务,随 iTunes 或 Apple Devices 安装,用于识别设备与“信任”。 |
| libusb0 投屏驱动 | 随包内置的 USB 过滤驱动(libusb0.sys),让软件能取到 IOS设备 的 USB 视频流。 |
| QuickTime Video Hack | 通过 USB 启用 IOS设备 隐藏视频配置、获取 H.264 实时画面所使用的协议方式。 |
| D3D11 / D3D12VA、零拷贝 | 显卡硬件解码与直接上屏技术,解码后的画面留在 GPU 显存中直接渲染,降低 CPU 与延迟。 |
| P2P | 点对点连接,数据在两台电脑之间直接传输,不经过中心服务器转发。 |
| STUN / srflx | STUN 帮助设备获知自己在公网上的映射地址(srflx 候选),用于 NAT 打洞。 |
| NAT / 对称 NAT | 路由器的地址转换机制;对称 NAT 对不同目标分配不同映射,打洞难度高,是纯 P2P 失败的主要原因。 |
| ICE / ICE-TCP | 连接建立框架,会尝试本地、服务器反身等多种候选地址;ICE-TCP 额外允许 TCP 候选,在 UDP 受限时提高成功率。 |
| TURN | 中继服务器方案,当 P2P 打不通时由服务器转发媒体;iOSCast 为坚持直连与隐私,不提供 TURN。 |
| SDP / 邀请码 / 应答码 | SDP 是连接会话描述;手动模式下一方生成邀请码(offer)、另一方回传应答码(answer)来完成协商。 |
| .ickey | iOSCast 的一机一设备远程访问密钥文件。 |
| 关键帧(IDR / SPS / PPS) | 解码器起播所需的自包含帧与参数集;远程大窗首次打开时会请求一次关键帧以立即出画面。 |