ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

850kbps 离线文件传输:libcimbar 把屏幕和摄像头变成信道

850kbps 离线文件传输:libcimbar 把屏幕和摄像头变成信道 850kbps 离线文件传输libcimbar 把屏幕和摄像头变成信道【免费下载链接】libcimbarOptimized implementation for color-icon-matrix barcodes项目地址: https://gitcode.com/GitHub_Trending/li/libcimbarlibcimbar 是一款做离线文件传输的 C 库编码端把文件渲染成在屏幕上翻动的彩色矩阵条形码动画接收端用手机摄像头逐帧拍摄还原全程不碰网络、蓝牙和 NFC实测稳定在 850kbps约 106KB/s。发送端有命令行工具也有能在任何现代浏览器里跑的 wasm 构建接收端是 Android 应用。它到底在干什么输入是一个文件输出是一串 1024×1024 像素的彩色条码帧可以在显示器上滚动播放接收端摄像头逐帧拍摄凑够足够多的帧后重建出原文件。相当于用闪光灯发莫尔斯电码只是信道换成了屏幕光密度高了几万倍。原理拆解数据是怎么传过去的编码一格瓦片装 6 比特整张条码是 1024×1024 像素的方格阵每格画一个符号16 种符号占 4 比特再选 4 种颜色之一占 2 比特每格共 6 比特上限 9300 字节/帧。符号是 8×8 像素的手绘小图案挑选标准是任意两格的像素指纹图像哈希即把像素黑白化后得到的 64 位二进制汉明距离足够大——隔着镜头拍糊一点依然能认出最像哪一个。纠错给拍糊了预留冗余隔着镜头读屏幕天然有损模糊、曝光不足、镜头畸变都会混进来。默认用 Reed Solomon 纠错一种按块补冗余、能修掉一定数量坏字节的编码参数 30/155每 125 字节真实数据附加 30 字节纠错码所以每帧实际只承载 7500 字节。作者实测错误率低于 1%且能被完全修正纠错块还按跳 N 格交错铺满全图手指或遮挡造成的局部连片错误不会一次毁掉一整段数据。文件协议fountain 码解决无网络传大文件单帧只有 7500 字节大文件先经 zstd 压缩再用 fountain 码wirehair 库实现一种收到任意足够多分片就能拼回原件的编码切成独立编码块不挑顺序、允许缺帧乱序、损坏、丢失都能拼回原文件这也是无网络传大文件成立的根本。代价是压缩后文件上限 33.55MB因为解码端要把内容放进内存。解码先找锚点再按置信度读格解码端先找四角的方形锚点确定四个角和 QR 码定位同理做透视变换把歪斜画面拉正再逐格识别符号。它不按固定顺序硬读而是从置信度高的格子先解起并把局部形变漂移记录下来指导下一个格子——某处拍糊时错误被压到低置信度区域纠错码兜底的成功率更高。跑起来有多快离线文件传输实测 ⚡来源 PERFORMANCE.md解码端是一台老款骁龙 625 手机4 线程发送端是浏览器 wasm 构建mode B8×8 符号、4 色4,689,084 字节压缩后44 秒传完852 kbit/s≈106 KB/s每帧纠错后承载 7500 字节真实数据上限 9300 字节错误率低于 1%Reed Solomon 可完全修正见 README.md单文件上限 33.55MB压缩后格式支持低至 700×700 分辨率的拍摄画面和蓝牙、NFC 比它不需要配对也不需要近场代价是必须脸对脸——摄像头正对屏幕、环境光好、条码占满取景框实测更稳。上手路径 装什么一条 apt 装齐解码依赖解码端依赖 OpenCV 和 GLFW其余依赖都已包含在源码树里sudo apt install libopencv-dev libglfw3-dev libgles2-mesa-devapt 报告安装成功即可没有其他输出。怎么编clone 后三条命令出可执行文件git clone https://gitcode.com/GitHub_Trending/li/libcimbar cd libcimbar cmake . make -j7 make install跑完构建产物落在./dist/bin/能看到cimbar、cimbar_send等可执行文件。怎么用一次编码、解码、实时播放./cimbar --encode -i inputfile.txt -o out # 编码出一串 png ./cimbar out*.png -o /tmp # 从 png 解回文件 ./cimbar_send inputfile.pdf # 窗口里实时播放动画条码第三条会弹出窗口滚动播放动画条码用手机解码 App 对着拍即可解码out*.png后/tmp里能看到还原出来的 inputfile.txt。WindowsMSVCvcpkg尽力支持与 Android仅解码的构建差异见 README.md 和 WASM.md。气隙数据交换谁会在什么场景下真的用它 气隙机房交接运维在禁止 U 盘、断网的隔离环境里把配置文件从办公终端传到产线设备无网应急联络断网无信号场合把一段文本或联系方式从笔记本传进手机洁净区作业不想让存储介质进出洁净区的人拿摄像头当传输介质现场演示展会或课堂网络不稳时不依赖任何连接把演示文件送到观众手机离线备份给重要小文件建一份拍进手机的气隙数据交换副本项目现状与下一步当前测试覆盖 amd64linux、arm64android仅解码、emscriptenWASM仅编码Windows 为尽力支持。TODO.md 列出的近期方向包括换用更强的纠错码预期吞吐提升 6–15%、多帧联合解码以提高静态图成功率以及把方形网格改成 4:3 形状。850kbps 不算快但它的信道只是一块屏幕加一个摄像头——离线文件传输从此不需要任何线缆和协议栈。【免费下载链接】libcimbarOptimized implementation for color-icon-matrix barcodes项目地址: https://gitcode.com/GitHub_Trending/li/libcimbar创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表