QRFerry

3个月前发布 129 00

QRFerry通过实时动画QR流将文件从一台设备传输到另一台设备。发送端和接收端完全在浏览器中运行;文件永远不会上传到应用服务器。

所在地:
美国
收录时间:
2026-08-04

在蓝牙配对繁琐、AirDrop 跨生态受限、微信传图压缩画质的今天,QRFerry 提供了一种极客且通用的解决方案:通过实时动画 QR 码流,利用屏幕和摄像头在两台设备间传输文件。

整个过程完全在浏览器中运行,无需安装 App,无需网络连接,文件数据以“光”的形式在空气中传播,且永远不会上传到任何服务器。

QRFerry

核心原理:喷泉编码与双通道优化

QRFerry 并非简单地将文件切分成静态二维码,而是采用了一套高度优化的传输协议:

  1. RaptorQ 喷泉编码:
    • 文件被编码为无数个符号(Symbols),源符号和修复符号交错排列。
    • 容错性极强:接收端可以在中途加入扫描,丢弃模糊或无效的帧,甚至无序接收。只要收集到足够多的唯一符号,即可完整重建文件。
  2. Turbo 模式提升速率:
    • Turbo 30:在 60Hz 屏幕上,将一个 V30-L 码保持两次刷新,实现稳定的 30 fps 传输。
    • Turbo 60:使用两个 V30-L 通道交替更新,每个通道在每次显示切换期间保持稳定,组合流每秒承载 60 个符号,显著提升吞吐量。
    • 1 Mbps 实验室配置:采用更密集的 V40-L 双通道设计,名义光学有效载荷可达 1.40 Mbps。
  3. 高效压缩与编码:
    • 同时尝试 Brotli (质量 11) 和 gzip (级别 9),仅保留最小的表示形式。
    • QR 帧使用原始字节模式,避免了 Base45 等扩展带来的开销。
    • 每帧携带紧凑的二进制标头、RaptorQ 符号和 CRC-32 校验。

关键特性

  • 纯本地运行:发送端和接收端均在浏览器中执行,依赖 WebAssembly 编译的 fast_qr(渲染)、ZXing-C++(扫描)和 RaptorQ(编解码)。
  • 零隐私泄露:文件数据不经过任何应用服务器,全程点对点光传输。
  • 多重校验:接收端在保存前会验证每帧 CRC、完整 RaptorQ 对象 CRC、压缩有效载荷 CRC 以及原始文件 CRC,确保数据绝对完整。
  • 跨平台兼容:只要设备有屏幕和摄像头,并能运行现代浏览器,即可实现 Android、iOS、Windows、macOS 之间的无缝互传。
  • 智能元数据处理:文件名、媒体类型等元数据位于受保护的 RaptorQ 对象内部,传输完成后自动恢复。

使用指南

  1. 发送端:在电脑或手机浏览器打开根页面,选择要传输的文件(最大支持 64 MB)。
  2. 接收端:在另一台设备上打开 /scan 页面,允许后置摄像头访问。
  3. 开始传输:启动 QR 流,将接收端手机的引导框对准发送端屏幕。
  4. 完成保存:当 RaptorQ 恢复进度和文件校验和达到 100% 时,文件即自动保存至本地。

提示:为了获得最佳性能,建议开启 Dual lane 选项,并将手机横向握持稳定且靠近发送端屏幕。

相关导航