ARTICLE DETAIL

资讯详情

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

如何用 libcimbar 实现 106 KB/s 无网络传文件:cimbar_send 与 cimbar_recv 实操

如何用 libcimbar 实现 106 KB/s 无网络传文件:cimbar_send 与 cimbar_recv 实操 如何用 libcimbar 实现 106 KB/s 无网络传文件cimbar_send 与 cimbar_recv 实操【免费下载链接】libcimbarOptimized implementation for color-icon-matrix barcodes项目地址: https://gitcode.com/GitHub_Trending/li/libcimbarlibcimbar 是一个基于彩色图标矩阵条码的文件传输库发送端屏幕上循环播放 1024×1024 的彩色矩阵接收端摄像头拍下来解码还原全程不碰网络、蓝牙和 NFC。官方基准里 mode B 可以稳定跑到 850 kilobits/s约 106 KB/s单个文件上限 33MB压缩后。下面的流程全部来自仓库源码和文档照着做即可。动手前把 cimbar_send 和 cimbar_recv 从源码构建出来两端硬件条件不对称发送端只要一块屏幕接收端要一颗摄像头。接收端程序会把摄像头设到 1920×1200 采集格式本身在 700×700 分辨率下也能解码只是性能下降。编译依赖只有 OpenCV 和 GLFW OpenGL ES 头文件Ubuntu/Debian 上sudo apt install libopencv-dev libglfw3-dev libgles2-mesa-dev git clone https://gitcode.com/GitHub_Trending/li/libcimbar cd libcimbar cmake . make -j7 make install产物默认装在./dist/bin/下后面用到的是其中的cimbar_send和cimbar_recv两个可执行文件。第一次发送文件怎么操作两端最简命令组合# 发送端 ./dist/bin/cimbar_send /path/to/file.pdf # 接收端另一台设备 ./dist/bin/cimbar_recv 0 ./receivedsend 的输入文件是位置参数也可用-i写多个recv 的两个位置参数分别是视频源和输出目录0指默认摄像头。跑起来后两端各弹一个窗口发送端显示滚动的彩色矩阵接收端显示摄像头画面。确认成功的信号在接收端终端出现got some bytes 数量表示这一帧解出了数据随后每帧打印各文件的恢复百分比百分比到 100% 后./received目录里会出现还原好的原始文件。第一次别动任何参数两端默认都是 mode B直接兼容。怎么调参数提传输速度帧率、压缩和模式分别动哪里参数解析逻辑见 send.cpp 和 recv.cpp按目的来调想快动帧率。send 的-f默认 15recv 的-f默认 30。把发送端 fps 拉高单位时间就多几帧矩阵接收端-f建议不低于发送端否则帧被丢掉。想省流量动-zzstd 压缩级别0 为关默认 16取自 Config.h。传文本、代码越高越划算传图片、视频这类已压缩数据就-z 0重复压缩只浪费编码时间。想稳动-m。默认 B 是官方认为最可靠的配置环境差、速率抖的时候试-m 4C0.5.x 老配置PERFORMANCE.md 里说它在某些场景下速度更一致。-m Bm/Bu是 1024×720、736×637 的小规格配置定义在 GridConf.h。唯一铁律-m两端必须一致。recv 的-c颜色位0-3和-eECC 字节数默认跟随所选模式mode B 为 2 色位、ecc 30/155除非你同时改了两端对应的编码配置否则不要碰。进阶玩法多文件轮播、视频离线解码和 HTML 网页发送多文件轮播cimbar_send -i a.pdf b.zip屏幕上按顺序轮流播放两个文件的码流接收端自动把各自的数据分流、落盘成独立文件。离线解码-i给视频文件也行。先用手机录下发送端屏幕之后任意时间、任意设备对录像跑cimbar_recv两端不必同时在线。HTML 网页发送运行 package-cimbar-html.py 会把 JS 全部内联进web/cimbar_js.html一个文件丢到浏览器里就是图形化发送端不需要装任何东西web/目录下另有浏览器接收页可配合使用。摄像头解不出来怎么办模式不匹配与捕获失败的排查现象进度百分比一直不动got some bytes很少 →原因两端-m不一致或单边改了-c/-e→对策两边统一模式颜色位和 ECC 恢复默认。现象刚启动就打印failed to open video device→原因摄像头编号不对或视频文件路径不存在 →对策换-i的编号或检查文件能否被 OpenCV 打开。现象有字节进来但速率低、经常解失败 →原因光照、反光、手抖、斜角度。官方把 glare 和 shaky hands 明确列为减分项 →对策调环境光环境光比单纯调高屏幕亮度更有效、用白色背景、让矩阵占满视野、摄像头尽量正对屏幕。现象发送端打印failed to read file/failed to create window→原因文件路径权限问题或图形环境异常报错都出在 send.cpp 的主循环里按提示改即可。下一步看哪里基准里还有个 beta 的 mode S5x5 小格已经稳稳超过 1 Mbit/s只是需要特殊构建多帧联合解码、4:3 网格、更强的纠错都在仓库的 TODO 清单里关注 TODO.md 就能拿到最新动态。【免费下载链接】libcimbarOptimized implementation for color-icon-matrix barcodes项目地址: https://gitcode.com/GitHub_Trending/li/libcimbar创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表