HCC2D Streamer 1.1 tutorial
How to use HCC2D Streamer and HCC2D Decoder to transfer files
This article explains the complete transfer, from installing the apps to choosing the fastest settings that remain reliable with your particular screen and phone camera.
What the two apps do
HCC2D Streamer runs on the sending computer and turns a file into a repeating sequence of color barcodes on its screen. HCC2D Decoder runs on the receiving phone, reads that sequence through the camera, and reconstructs the original file. The transfer itself uses no network, account, cable, or pairing.
On the Mac, Windows, or Linux computer
HCC2D Streamer 1.1: Mac App Store · Microsoft Store
HCC2D CLI Streamer for Linux: APT Repository · GitHub source
On the iPhone or Android device
HCC2D Decoder: App Store · Google Play · Huawei AppGallery
Compatibility: HCC2D Streamer 1.0 remains compatible with earlier versions of HCC2D Decoder. HCC2D Streamer 1.1 and HCC2D CLI Streamer require HCC2D Decoder 1.2.4 or later; the current Decoder release is 1.2.5.
Transfer a file
Choose a file in Streamer
Drop it into the window or select Choose File. Streamer 1.1 supports files up to 2 MiB; files of a few hundred kilobytes take less time.
Select 8 or 4 colors
Start with 8 colors for greater capacity. If your screen, camera, or lighting cannot distinguish the colors reliably, use 4 colors.
Start streaming
Select Start Streaming. Keep the streaming window large and fully visible.
Open Decoder and frame the symbol
Point the phone camera at the screen. Keep the complete HCC2D symbol inside the camera view and hold the phone steady.
Wait for completion
Decoder collects the required symbols and reconstructs the file automatically. Stop the stream after the transfer has completed.
Before using very dense symbols, check the real camera frame resolution
A phone may have a high-resolution photo sensor but provide a lower-resolution live video feed to the app. HCC2D Decoder reports the resolution it actually receives.
- Open the scanner once so Decoder can record the live frame size.
- Open More, then Camera Info.
- A green indicator means the live frame contains at least 12 megapixels and is suitable for testing very dense symbols. Yellow means at least Full HD but below 12 MP. Red means below Full HD.
Use symbol version 40 only when Camera Info is green and the streamed symbol can be shown large on the computer screen. With a small screen or a yellow/red result, start around version 30 and lower it if decoding is not stable.
What the four settings change
There is no single maximum setting for every device. Higher throughput also asks more of the screen-to-camera connection. The live estimate in Advanced Options is useful for comparison, but only a real transfer can confirm that a setting is reliable.
Open Advanced Options from the Settings menu on macOS or from the app menu on Windows.
| Setting | Higher throughput | More reliable capture |
|---|---|---|
| Colors | 8 colors carry more data per symbol. | 4 colors are easier to separate under difficult lighting or with a less accurate screen/camera. |
| EC level | L reserves less space for error correction and gives the highest capacity. | If L is not reliable, try M, then Q, then H. Each step adds protection but reduces capacity. |
| FPS | Try 15 FPS first for more symbols per second. | If the phone cannot keep up, use 12 FPS; if it is still unstable, use 10 FPS. |
| Symbol version | A higher version carries more data, but its modules are smaller and denser. | A lower version has larger modules that are easier to focus and resolve. A large screen can support a higher version than a small screen. |
A simple way to find the fastest stable profile
For a given screen and phone, you normally need to do this tuning only once. Use the same representative test file and change one parameter at a time, so it is clear which change helped or caused instability. Once you find a reliable combination, apply it, keep it as your preferred profile, and reuse it for later transfers. Test again only if you change the screen, phone, viewing distance, or lighting.
- Check Camera Info in Decoder. If it is green and the symbol is large on screen, version 40 is worth testing. Otherwise begin around version 30.
- Try 8 colors. Keep it if transfers complete consistently; otherwise switch to 4 colors.
- Try EC level L. Keep L if it works reliably because it provides more throughput. If it does not, move to M; use Q or H only if more protection is needed.
- Try 15 FPS. If progress is intermittent or stops, reduce it to 12 FPS and then to 10 FPS if necessary.
- Raise the symbol version while transfers remain reliable. If the camera loses the code, step back to the last version that worked consistently.
- Keep the combination with the highest displayed throughput that completes the same transfer several times without stalling. This is the practical limit of that screen, camera, distance, and lighting.
Two useful starting points
Large screen and green Camera Info
8 colors · EC L · 15 FPS · version 40
The estimated throughput with EC L is about 1 Mbps. Treat this as a test, not a guarantee. Reduce one parameter if repeated transfers are not stable.
If EC L is not stable: 8 colors · EC M · 15 FPS · version 40 · about 0.83 Mbps
Small screen or camera below 12 MP
8 colors · EC L · 12 FPS · about version 30
The estimated throughput at version 30 with EC L is about 0.49 Mbps. If needed, move to 4 colors, 10 FPS, or a lower version. Change one item at a time.
If EC L is not stable: 8 colors · EC M · 12 FPS · version 30 · about 0.38 Mbps
Practical tips
- Keep the whole symbol in frame and avoid a steep camera angle.
- Increase display brightness, avoid reflections, and clean the camera lens.
- Wait for autofocus and keep the phone steady.
- Use a large streaming window, especially with high symbol versions.
- Repeat the tuning after changing the screen, phone, distance, or lighting.