动态二维码传输速率与扫码故障排查
解释有效吞吐量、相机对焦、漏帧与完整性校验,排查进度停滞、文字重生成和下载问题。
速率取决于有效识别量
实际数据速率大致取决于“每帧有效字节 × 每秒成功识别的不同帧数”,还要扣除协议、补充数据和重复播放开销。发送端设置的播放帧率不代表相机每秒能成功识别的帧数;同一帧被重复拍到也不会增加接收进度。文件和文字使用相同的传输流程。不能用网页动画帧率直接推算 100 KB/s,更不能把 bit/s 与 byte/s 混用。
接收进度不增长
先确认已经在本工具的接收页面开启相机,而不是一直使用系统相机。系统相机适合识别入口网址,并不负责拼接文件或文字。检查相机权限和 HTTPS;在微信等内置浏览器中授权或下载受限时,可以改用系统浏览器打开同一接收地址。相机被其他应用占用时,先关闭占用应用再试。
扫描不稳定的调整顺序
- 擦净镜头,提高发送屏幕亮度,但避免高亮反光。
- 把屏幕和镜头尽量保持平行,让整个二维码及其白边都在画面中。
- 先调整距离、等待自动对焦;二维码太远会看不清细格,太近可能超出焦距。
- 从快速模式切回稳定模式,或降低播放速度。二维码更少、更清楚时,有效吞吐量反而可能提高。
- 保持页面在前台并暂时延长自动锁屏时间;低电量、过热和后台运行都可能降低解码速度。
稳定模式与快速模式
稳定模式一次显示一个二维码,适合手机之间传输、小屏幕或普通摄像头,建议先使用此模式。快速模式一次显示四个二维码,适合较大的发送屏幕;只有相机能同时清晰识别四个码时,才可能提高有效速率。两种模式默认均为每秒 12 帧,可手动降低播放速度。发送设备会根据本机生成耗时限制帧率,但不会自动知道接收设备的识别速度或是否接收完成。
为什么接近完成仍需等待
接收到的帧可能重复,也可能因模糊未通过校验;最后缺少的分块仍需通过后续循环或补充帧补齐。继续扫描同一轮传输即可,不要因为等待而频繁重启。若最终完整性校验失败,重新发起传输并使用更稳定的参数,不要把未校验的内容当作完成结果。
修改文字后没有继续发送
编辑文字会停止旧内容的发送,这是为了避免接收端继续拿到修改前的数据。确认输入完成后,重新点击生成二维码,再点击开始发送。若接收端正在接收上一版内容,先重新开始接收,再扫描新的一轮。
文字复制与下载
完成接收后,原文保留换行和空格并以纯文本呈现。复制需要浏览器允许剪贴板操作;受限时可以选择文字手动复制,或下载 UTF-8 编码的 TXT。文本中的网址不会自动打开,HTML 也不会被当作页面执行。
文件、文字限制与数据处理
文件上限为 5 MiB;文字上限也为 5 MiB,但按 UTF-8 字节数计算,中文和 emoji 可能占多个字节。这是数据大小限制,并非可保证在某个时间内完成。首次没有网络且未完成离线准备时,扫码不能加载接收页;提前准备后也应检查缓存是否保留、相机是否可用。文件和文字编码、相机画面及接收重建均在当前浏览器中处理,传输内容不会上传到 FreeTool 服务器。首次加载需要网络;接收设备联网时完成离线准备后,可离线打开专用接收页。浏览器清理缓存后需要重新准备。二维码并非加密,能拍摄屏幕的人也可能接收内容。 可见二维码可能被旁观者拍摄,CRC32 和 SHA-256 都不提供保密能力。请只在可信环境展示需要传输的内容。