news 2026/1/21 4:41:13

iOS 有线投屏开源了:Windows 直连采集 iPhone 屏幕与音频的完整方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
iOS 有线投屏开源了:Windows 直连采集 iPhone 屏幕与音频的完整方案

一、前言

过去在 Windows 上想要录制或展示 iPhone 屏幕,几乎只能依靠 AirPlay 或无线方案,这不仅存在延迟高、画质压缩严重的问题,还容易受到网络环境影响。

现在,这个问题有了开源解决方案——quicktime_video_hack_windows 项目正式发布。

它可以让 Windows 电脑直接通过数据线采集 iOS 设备的视频和音频流,真正实现低延迟的有线投屏。

这意味着,你可以:

实现有线低延迟投屏

将 iPhone 画面推流到 OBS、VLC、直播软件

用于 QA 自动化测试、应用演示、录屏分析等场景

二、项目简介

quicktime_video_hack_windows 是一个基于 QuickTime 协议逆向实现的 C++ 版 iOS 视频捕获工具。

项目参考了 Daniel Paulus 的 quicktime_video_hack(Go 语言实现),并针对 Windows 环境重写了 USB 通信与协议解析逻辑。

仓库提供:

命令行工具(用于快速验证)

Qt 图形界面程序(可实时预览)

完整源码,便于二次开发和自定义集成

image

三、主要功能

通过 Lightning / Type-C 数据线获取 iOS 屏幕内容

支持音视频双流采集

提供回调接口,可直接整合进你的项目

支持多设备同时采集

带 Qt 界面,可实时预览画面

开源协议为 MIT,可自由修改和分发

四、快速上手

以下步骤 5 分钟即可上手测试:

克隆仓库

git clone https://github.com/chotgpt/quicktime_video_hack_windows.git

安装驱动

安装 libusb 驱动;

注意:会与 Apple 官方驱动冲突,需要卸载 Apple Mobile Device Support;

连接 iPhone 后,首次需在手机上点击 “信任此电脑”。

启动 USB 服务

tool\usbmuxd.exe

该服务会监听 37015 端口,检测到设备后自动启用 QuickTime 模式。

运行示例程序

命令行版:release\test_x64Debug.exe

Qt 界面版:release\qt_ios_line_cast_screen.exe

开始投屏

如果一切正常,窗口会出现 iPhone 实时画面,延迟非常低。

五、效果展示

Qt 示例版支持直接显示来自 iOS 的实时视频流。

(示例截图链接:https://i.hd-r.cn/bdf8336f-a24c-4f30-bddf-89287f76e3db.jpg)

六、应用场景与扩展方向

quicktime_video_hack_windows 不仅是投屏工具,更是一套完整的 iOS 音视频采集底层方案。

你可以:

集成到 OBS / FFmpeg 实现有线直播采集;

应用于自动化 UI 测试、性能录制;

构建自定义录制器、屏幕同步系统;

在企业 QA 环境中实现多机并行录制,效率极高。

如果你熟悉多媒体开发,还可以进一步扩展:

增加 H.264 / AAC 硬件解码;

接入 WebRTC、RTMP、或本地播放器;

改写成 Unity、Qt、C# 插件使用;

做成本地控制台或后台录屏服务。

七、开源协议与致谢

开源协议:MIT

原始参考项目:danielpaulus/quicktime_video_hack

C++ 实现与 Windows 适配:chotgpt/quicktime_video_hack_windows

感谢原作者对 QuickTime 协议的研究,为 Windows 平台提供了可靠的有线采集方案。

八、总结

这款工具让 iOS 有线投屏在 Windows 上成为现实。

不再依赖 Wi-Fi、不再卡顿,稳定、低延迟、开源自由。

如果你正在寻找一款能让 iPhone “插上线就能显示”的解决方案,

那它几乎是当前最轻量、最灵活的选择之一。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/22 17:47:35

23、PHP编程与相关技术全解析

PHP编程与相关技术全解析 1. PHP基础操作与数据获取 在PHP编程中,对于日志条目的操作是一个常见场景。首先,会将日志条目的ID号存储在 $id 变量中。接着,会进行条件判断,如果存在ID号且该ID号大于0,程序会执行一系列操作。具体步骤如下: 1. 连接到服务器。 2. 选择…

作者头像 李华
网站建设 2026/1/10 18:15:59

46、使用容器更新和管理 SQL Server:全面指南

使用容器更新和管理 SQL Server:全面指南 1. 使用容器更新 SQL Server 在 RHEL 上更新 Linux 版 SQL Server 到新的累积更新时,通常会运行 sudo yum update mssql-server 命令。此命令会下载最新累积更新,关闭 SQL Server,应用新二进制文件,然后重新启动 SQL Server。…

作者头像 李华
网站建设 2026/1/19 0:08:46

k8s-应用部署和组件及常用命令(2)

、相关组件介绍:node是k8s的集群节点,和实际的机器对应pod是应用容器,不同的应用部署在不同的pod中,k8s协调资源,将pod部署到集群中的node节点上(非master节点)。同时pod又是挂在namespace下面的…

作者头像 李华
网站建设 2026/1/16 3:37:49

【后端】【Java】一文深入理解 Spring Boot RESTful 风格接口开发

深入理解 Spring Boot RESTful 风格接口开发一、什么是 RESTful?RESTful 是一种基于 REST(Representational State Transfer,表述性状态转移) 架构风格的 Web 接口设计规范。在 RESTful 风格中:一切皆资源通过 URL 表示…

作者头像 李华
网站建设 2026/1/15 6:02:30

52、Samba与分布式文件系统(DFS)全解析

Samba与分布式文件系统(DFS)全解析 1. Samba连接与文件操作 Samba是一种强大的工具,可让Linux服务器与Windows网络集成。我们可以尝试连接之前创建的共享(samba - share),以clientB主机为例,使用smbclient工具连接到serverA上的共享。 - 连接共享 :使用 smbclien…

作者头像 李华