CameraFileCopy:为什么用手机摄像头传文件,可以比想象中更简单?
CameraFileCopy为什么用手机摄像头传文件可以比想象中更简单【免费下载链接】cfcDemo/test android app for libcimbar. Copy files over the cell phone camera!项目地址: https://gitcode.com/gh_mirrors/cfc/cfc核心关键词手机摄像头文件传输长尾关键词飞行模式传文件、无网络文件传输安卓应用、libcimbar 编码、手机屏幕传输文件、开源安卓传输工具、相机扫描传输文件、离线文件共享、安卓摄像头接收文件上个月出差我在高铁上需要把一个 30MB 的会议纪要 PDF 传给邻座的同事。手机里 Wi-Fi 开着蓝牙开着但两个人折腾了十分钟——他手机开了热点我连不上我试了隔空投送安卓和 iPhone 之间根本不认识最后只能加微信而那个隧道多到令人绝望的线路让进度条纹丝不动。最后是旁边一位大哥看不过去掏出一台旧安卓机让我把 PDF 在手机屏幕上打开然后他用那台旧手机的摄像头对着我的屏幕扫了一会儿。大约两分钟后文件到了。全程没有任何网络、蓝牙或 USB两个人就完成了传输。那台旧安卓机里装的就是这个叫CameraFileCopyCFC的开源应用。如果你想实现手机摄像头文件传输它可能是目前最值得尝试的答案之一。一眼看懂这个项目到底是什么CameraFileCopy 是 libcimbar 的一个安卓演示应用。用一句话说清楚它让你的手机变成相机扫码接收器通过摄像头读屏幕上的动态彩色条码把文件传过来全程不碰任何天线Wi-Fi、蓝牙、NFC 都不需要。它解决的是两个设备之间没有任何网络也要能传文件这个具体问题。飞行模式照样工作。它的四个核心卖点零网络依赖摄像头是唯一的数据通道飞行模式下表现和平时一样好免配对免安装对端发送端不需要装任何 App用浏览器打开网页就能当发件人自动纠错与容错画面抖动、反光、丢帧都能扛文件照收不误开源可查Android 应用本体 MIT 协议核心算法 libcimbar 是 MPL 2.0代码全部可见三分钟上手从装好到收到第一个文件先说清楚一件事CameraFileCopy 负责收发送端是另一回事。好在发送端特别简单——打开一个网页就行。第 1 步安装接收端F-Droid搜索 CameraFileCopy直接安装Google Play搜索同名应用自己构建把仓库https://gitcode.com/gh_mirrors/cfc/cfcclone 下来用 Android Studio 打开即可见文末小提示目前官方只保证 arm64-v8a 架构主流安卓手机基本都是这个旧设备可能需要自己编译。第 2 步准备发送端发送端有两种玩法任选其一方式操作适合谁网页版在另一台设备的浏览器打开 cimbar.org选择文件屏幕开始播放动画条码临时传一次、不想装任何东西命令行版用 libcimbar 的cimbar_send工具生成条码并全屏播放电脑端长期使用、批量传输第 3 步第一次传输打开 CameraFileCopy点击中间的Tap to start!启动相机取景把摄像头对准发送端的屏幕让彩色条码占满取景框保持手机不动等画面上的条码转完传输完成后应用会弹出保存位置选个目录搞定启动界面只有一句话Tap to start! 没有多余设置打开就能用。取景框里的彩色噪点就是正在被识别的条码图案四角定位框帮你确认框没框准。如果你愿意再多花一分钟那个参数设置界面值得看两眼它藏着这个项目全部的可调项。模式选择和帧率调节都在这一个菜单里新手保持默认即可。功能拆解四个按钮背后分别是什么你可能已经注意到参数界面里有B、Bm、Bu、4C四种模式。它们不是玄学是四种不同的条码长相。把它们想成四档变速器就行——档位不同速度、稳定性和兼容性各有取舍。模式全称定位关键参数B8x8 四色官方默认推荐4 色ECC 30/155速度最均衡Bm8x8 四色改进版低速但更稳针对运动模糊做了优化Bu8x8 四色实验版尝试中的新格式仍在调整兼容性有限4C8x8 四色老版本向后兼容保留老用户/老场景才需要说白了绝大多数人从头到尾用默认的B模式就够了。你不需要记住这些参数——App 默认是自动模式它会轮流尝试四种格式谁被成功识别就锁定谁。这就像手机自动对焦你只管把镜头对准剩下的交给算法。除了模式选择还有几个看不见的功能值得一提自动模式锁定传文件时它会记住当前用的模式下次直接沿用不用重新调屏幕常亮传输期间屏幕不会自动熄灭防止传一半黑屏文件类型识别收到文件后会按扩展名匹配 MIME 类型保存时用对的格式硬核亮点它凭什么比扫一屏二维码更快如果你用过那种把文件拆成一屏屏二维码、让你一屏屏去扫的传输方案你会立刻理解 CameraFileCopy 的不同。二维码是一张图装完一个文件而 cimbar 是一帧图装一个数据块连续播放——就像看电影和看连环画的区别。几个关键设计我用生活化的话解释给你听它用颜色多塞了一倍数据。二维码的格子只有黑白两态cimbar 的格子有 4 种颜色每种颜色还能再编码 2~3 个比特。相当于同一个停车位别人只能停一辆车它把车停成了两层。一张 1024x1024 的 cimbar 图理论容量高达 9300 字节。它丢了几帧也无所谓。传输是动画摄像头可能漏帧、画面可能抖掉几帧。cimbar 用了喷泉码fountain code数据被打散成大量水滴接收端只要集满足够多的水滴就能拼回原文件不要求顺序正确也不要求一帧不丢。就像拼图少几块没关系只要关键块够多图照样完整。它知道哪块拼图是可信的。每一块图案在解码时都会得到一个信心分App 总是优先处理信心高的块再用它们的位置去推算周围模糊块的偏移。你可以理解成一个近视眼先看清字大清楚的段落再靠上下文猜出模糊的段落。它出厂就带三层保险。数据先 zstd 压缩再套 Reed Solomon 纠错默认 30/155即每 125 字节带 30 字节冗余最后才编码成图案。官方的实测数据来自一台骁龙 625 的老机型实测持续速度mode B 约 852 kbit/s也就是大约 106 KB/s。一块 4.7MB 的文件约 44 秒传完。更新款的手机跑解码只会更快——因为瓶颈通常不在 CPU而在摄像头。需要给你一个心理预期这个速度没法跟 USB 比但它换来的是任何两台有屏幕和摄像头的设备之间都能传的通用性。一次传 33MB 以内的文件体验最好这是喷泉码的单流上限更大的文件将来可以靠分块方案突破。取景框里的彩色条码带色彩校准标识光线不同时算法会自动修正颜色判断。社区与常见问题新手最容易卡住的 5 个问题这个项目欢迎任何人参与。你可以做的贡献包括在仓库提 issue报告你在某台手机上的实测表现尤其是非 arm64 设备参与 libcimbar 的测试帮验证 Bm 这类实验模式完善文档、翻译 README项目里已经有中文和俄文版本自己 fork 一份做定制MIT/MPL 协议都很宽松下面是新手问得最多的几个问题Q1发送端一定要装 App 吗不用。发送端用浏览器打开 cimbar.org 选个文件就行接收端用 CameraFileCopy。反过来CameraFileCopy 也内置了一个 WebView 发送页往上一划就能从接收模式切到发送模式两台手机就能互相传。Q2飞行模式真的能传吗真的能。它压根不启用任何无线模块摄像头读取的是屏幕上的光信号飞行模式只是没用上网络而已。Q3为什么我扫了半天没反应九成是姿势问题。官方文档给了三个检查项屏幕亮度调高、让条码尽量占满取景框相信四角定位框、手机和屏幕保持平行。环境光充足比屏幕亮更重要别逆光。Q4传大文件行不行单流上限约 33MB压缩后传几十 MB 的文件体验最好。社区里已有 cimbar-bigfile 这类项目通过分块 校验把上限推到 100MB 以上但这属于进阶玩法。Q5这速度是不是太慢了看场景。106 KB/s 传一份文档、一张照片绰绰有余它的价值不在速度而在没网也能传这个可能性上。最后说一句CameraFileCopy 最大的价值是让没有网络的传输从一句口号变成了你手机上真实可用的功能——不需要配对不需要权限申请两台设备只要有屏幕和摄像头数据就能流动。现在就可以试用你手边任意两台设备一台打开 cimbar.org 当发送端另一台装好 CameraFileCopy 对准屏幕一分钟内你就能亲眼看到第一个文件飞过镜头。想深入研究的去 clone 一下https://gitcode.com/gh_mirrors/cfc/cfc源码和测试都在里面等着你。【免费下载链接】cfcDemo/test android app for libcimbar. Copy files over the cell phone camera!项目地址: https://gitcode.com/gh_mirrors/cfc/cfc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考