屏幕对屏幕不给网线不给WiFilibcimbar 如何用相机镜头跑出 106KB/s 的文件传输【免费下载链接】libcimbarOptimized implementation for color-icon-matrix barcodes项目地址: https://gitcode.com/GitHub_Trending/li/libcimbar把摄像头对准电脑屏幕文件就能飞到手机里——这不是科幻片而是 libcimbar 正在做的事。它是一个基于彩色图标矩阵条形码的开源库全程不依赖网络、蓝牙、NFC 或任何物理线缆数据只走光这一条路。它把文件编码成不断变化的彩色格子画面用手机摄像头一帧帧拍下来最高能以约 106KB/s 的速度完成跨设备传输。这篇文章会带你从零跑通整个流程并告诉你它为什么值得一试。先别急着敲命令搞懂它到底在传什么很多人第一次看到 libcimbar 的画面会觉得这只是一堆彩色噪点。没错这堆噪点就是数据本身。它的本质是把传统二维码的黑白方块升级成了彩色图标矩阵每个格子有两种信息维度格子里画什么图标symbol 格子涂什么颜色color。前者占 4 比特后者再占 2~3 比特一个 8x8 的小格子最多能塞进 6 比特数据比二维码的黑1 白0密度高出一大截。单帧能装多少一整张 1024x1024 的码图里有 12400 个数据格子理论上限约 9300 字节/帧扣除纠错开销后实际可用约 7500 字节/帧。但单帧 7500 字节远不够传一个文件所以它用了一套快递分拣的思路文件先被 zstd 压缩切成小块再用喷泉码fountain codes打成一个个数据包每个包编码进一帧画面。接收端不需要按顺序收到全部包只要攒够足够的不重复的帧就能拼回完整文件——丢几帧、乱几帧、花屏几帧都不影响最终结果。这也是它能容忍摄像头手抖、反光、对焦迟疑的根本原因。四条路线总有一条适合你的设备组合libcimbar 的玩法很灵活按装不装软件和用不用摄像头可以分成四条路线我按推荐顺序排路线发送端接收端适用场景命令行双端cimbar_send全屏播放码图cimbar_recv摄像头解码两台电脑间直传图片接力cimbar --encode输出 PNG 序列cimbar批量解码一次编码、多次/异地解码浏览器直传打包好的 HTML 页面播放码图手机 App / Web 解码零安装、跨平台临时传输Web 全流程项目自带的web/recv.html同左浏览器对浏览器的演示其中最典型、也最值得先跑通的是电脑发、手机收这条线电脑屏幕负责播放动态码图手机摄像头对着它拍不需要两台设备有任何网络交集。五分钟跑通第一次传输Ubuntu/Debian 实测路径整套流程分三步装依赖、编译、发收。先克隆仓库git clone https://gitcode.com/GitHub_Trending/li/libcimbar cd libcimbar第一步安装系统依赖。编译只需要 OpenCV、GLFW 和 OpenGL ES 头文件其余第三方库都内置在源码树里不用手动装sudo apt install libopencv-dev libglfw3-dev libgles2-mesa-dev第二步编译并安装。构建产物默认输出到./dist/bin/里面就有cimbar_send和cimbar_recv两个核心工具cmake . make -j7 make install第三步发送端播放码图。把要传的文件交给cimbar_send屏幕上会弹出一个动态彩色矩阵窗口这就是正在广播数据的编码画面./dist/bin/cimbar_send -i 要传的文件.pdf第四步接收端摄像头解码。在另一台设备上用默认摄像头对准屏幕文件会被还原到指定目录终端会实时刷新每个文件的完成进度./dist/bin/cimbar_recv -i 0 -o ./收到的文件如果你暂时不想碰摄像头还有一条纯命令行的验证路径先用cimbar --encode把文件编码成一堆 PNG再让cimbar从这些图片里把文件解出来适合先在单机上确认编码→解码链路没问题# 编码inputfile.txt 会被拆成 outputprefix 开头的多张 PNG ./dist/bin/cimbar --encode -i inputfile.txt -o outputprefix # 解码从这批 PNG 里还原出文件 ./dist/bin/cimbar outputprefix*.png -o /tmp完全不想编译Web 版是零门槛入口libcimbar 的编码器能编译成 WASM这意味着任何带现代浏览器的设备都能直接当发送端。最省事的用法是python3 package-cimbar-html.py -i 你的文件.txt -o send_page.html生成一个独立的 HTML 页面浏览器打开它就会自动播放码图配合项目自带的web/recv.html接收页面两台设备在完全离线的状态下也能完成整条传输链路。这个方案特别适合不想在对方设备上装任何东西的临时场景。参数怎么调一张表讲清取舍cimbar_send的常用参数不多核心就四个各自有明确的权衡逻辑参数可选值调大/调高的影响我的建议-m模式B/Bm/Bu/4CB 是最新推荐格式4C 是旧版兼容格式默认 B兼容性有问题再退回 4C-f帧率默认 15 fps帧率越高码图变化越快对摄像头对焦压力越大硬件和光线好再用 30-z压缩级别0 不压缩默认 16压缩率越高传的数据越少但编码耗时略增文本类文件收益明显媒体文件可调低-p黑色边距默认 32 像素边距越大码图在屏幕上的占比越小保持默认即可别为了美观调大值得单独说的是-z 0关闭压缩后传输的就是原始字节流主要用于调试压缩是否在中间环节出了岔子这类问题。正常使用请保持默认压缩这正是它能传得比码图看起来更快的秘密之一。106KB/s 是怎么测出来的哪些因素在拖后腿官方性能文档里的基准测试相当透明这里引用三个关键数字来源项目内 PERFORMANCE.md模式规格实测速度状态B8x8 格子 4 色852 Kb/s约 106 KB/s当前推荐模式4C8x8 格子 4 色旧版838 Kb/s约 104 KB/s兼容保留8C8x8 格子 8 色943 Kb/s约 118 KB/s0.6.0 起已移除需要说明的是这个数字是压缩后数据过线速度测速环境是 cimbar.org 的 WASM 发送端 CFC 安卓接收 App4 线程、骁龙 625 手机。换算成体感1MB 文件大约 10 秒左右能传完10MB 约两分钟单次传输上限是压缩后 33MB。真正决定你实际速度的往往不是算法而是这几件事按影响排序环境光优于屏幕亮度接收端用自动曝光时充足的环境光能稳定画质屏幕亮度再高也弥补不了环境光不足。码图占满屏幕让码图尽量填满显示区域对准四个角的定位锚点anchor来取景格式最低能抗 700x700 的分辨率但越小越容易出错。保持正对、避免反光摄像头倾斜会让画面远端部分变形出错光源直射屏幕造成的反光会成片毁掉格子。传不动、传得慢按这个顺序排查如果第一次传输就翻车别急着怀疑工具九成是使用姿势问题成功率低 → 先检查取景。确认四个角都完整出现在画面里距离约 30~50cm背景尽量用纯色白底效果最好这也是官方发送端坚持白背景的原因。速度上不去 → 降低帧率试试。手机摄像头在自动对焦/自动曝光时吞吐有限-f 30在高帧率下反而可能因为糊帧变慢退回 15fps 往往更稳。画面畸变明显 → 打开去畸变。解码时加--undistort参数能减轻广角摄像头带来的边缘变形。色彩偏得离谱 → 开启颜色校正。--color-correct支持完整、简单、关闭三档默认完整模式2在喷泉码解码下会自动生成校正矩阵。什么场景下它最香四个真实例子涉密环境的数据摆渡实验室、生产网等严格物理隔离的场景里任何网络通道都违规但屏幕摄像头这条路天然绕开了所有协议——它传的不是网络包是光。两台电脑临时互拷没有 U 盘、不想插线、两台机器又不在同一个网段时一台放码图、一台用摄像头比翻找网线快得多。给离线设备同步配置嵌入式设备、专用终端没有网口把配置更新编码成码图序列设备端解码即可完成升级。教学演示数据通信把编码→调制→信道→解调→纠错这条链路用肉眼可见的方式呈现一节课堂就能讲完香农那一课。想深入源码这三块值得先看如果你看完想研究实现细节源码目录结构很清晰按阅读顺序推荐src/lib/cimb_translator/核心编解码逻辑符号集、颜色映射、交错interleave都在这Config.h里能看到模式与 ECC 的默认配置。src/lib/encoder/与src/lib/extractor/前者负责数据→码图含 Reed-Solomon 纠错后者负责照片→数据含锚点定位与透视矫正。src/lib/fountain/喷泉码的封装理解为什么丢帧也能还原就看这里文件大小上限 33MB 也是由它决定的。其余如性能基准、格式演进、待办方向分别记录在项目内的PERFORMANCE.md、DETAILS.md和TODO.md读完这三个文件基本就能掌握这个项目的前世今生。说在最后值得为它花一个下午吗libcimbar 最打动我的地方是它把传输这个抽象概念还原成了最原始的样子数据变成光光穿过镜头镜头再变回数据。它适合三类人——需要物理隔离传输方案的工程师、想在课堂上演示通信原理的老师以及单纯觉得屏幕对屏幕传文件很酷的折腾爱好者。我的建议是先花十分钟走一遍编码→解码的命令行验证再花五分钟让手机对准屏幕试试真·视觉传输。当你亲眼看着文件在没有任何网络连接的情况下飞进手机那种感觉和扫码付款完全不同——这是你在亲手完成一次光学通信实验。想要更多细节仓库地址在这里从克隆到跑通全过程不超过二十分钟git clone https://gitcode.com/GitHub_Trending/li/libcimbar剩下的交给光和你的摄像头。【免费下载链接】libcimbarOptimized implementation for color-icon-matrix barcodes项目地址: https://gitcode.com/GitHub_Trending/li/libcimbar创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考