CyanCamera
Download
First time setup
You need to grant all permsissions in order to start using the app

Main controls
You have main controls on the right
- Start/Stop recording
- Take picture
- Flip lens front/back
- Switch lense (wide/main/tele)
- Quick zoom presets
- Flashlight / Flash rim
Pinch to zoom supported as well.
And extra camera app control at the bottom:
- Main settings
- Stream settings
- Stream start / stop
- HDMI out start / stop
- 3D lut settings
- Format picker

If you control camera sensor value via RCP it will go to manual mode and turn indicator to orange. You can make it auto by taping on that value from phone app of via RCP. RCP supported controls:
- ISO
- EV
- Shutter
- Iris
- White balance + tint
- Lens
- Zoom
- Focus
RCP -> Camera -> Custom - For lens switching and starting stream
Color Shading
You can tap on left bottom corner to enter luts menu.
- You can select
.cubefile from your device - You can chain it with RCP corrections on top
- RCP Corrections toggle synced with RCP -> Camera -> Custom -> CorrOff/CorrOn

Currently supported from RCP:
- White balance RGB
- Gamma RGBM
- Black RGBM
- Master Black
- Hue/Saturation
- Multimatrix
| Mode | What is applied | Processing path | Output, HDR LUT off / on | Notes |
|---|---|---|---|---|
| Off | Nothing | Raw buffer passthrough | Source tags at 10-bit, Rec.709 at 8-bit | Log/HLG at 8-bit looks flat |
| RCP only | Lift, gamma, gain, saturation, hue, multimatrix | Core Image sRGB cube; Metal if HDR LUT on | 8-bit Rec.709 / 10-bit BT.2020 HLG | Corrections computed in scene-linear light for the active colour space |
| File LUT | The .cube only, RCP params stored but not applied | Metal two-pass on raw code values | Rec.709 at 8 or 10-bit / BT.2020 HLG at 10-bit | Typical Log to 709 conversion |
| Chain RCP → file | RCP grade, then the .cube | Composed cube (17³ into the file's size), Metal two-pass | Same as file LUT | Default whenever both are active; rebuilt on each RCP tick |
| Studio LUT | Whole Studio flow baked into one .cube | Same as file LUT, source "studio" | Same as file LUT | Re-pushed over the phone's WebSocket on each bound-grade change |
| Studio LUT + RCP | RCP grade, then the Studio cube | Chain, as above | Same as file LUT | RCP may grade twice, see below |
| Scope off for an output | Nothing on that output | Raw buffer for that output only | As "Off" | Per output: Monitor, Record, Stream |
| Source | LUT mode | Resolved | Codec | Stream tags | Look on receiver |
|---|---|---|---|---|---|
| Rec. 709 / P3 D65 | any | 8-bit | H.264 or HEVC | Rec.709 (BT.709 / 709 / 709) | SDR, correct |
| Rec. 2020 HDR (HLG) | No LUT | 10-bit | HEVC Main 10 | BT.2020 / HLG (DVB: TRC 14 + SEI 18, WCG idc 2) | HDR, correct |
| Apple Log / Log 2 | No LUT | 10-bit | HEVC Main 10 | BT.2020 primaries, transfer unspecified (WCG idc 3) | Flat log, receiver applies LUT |
| HDR or Log | LUT, HDR LUT off | 10-bit | HEVC Main 10 | Rec.709 at 10-bit (less banding) | SDR, correct |
| HDR or Log | LUT, HDR LUT on | 10-bit | HEVC Main 10 | BT.2020 / HLG (DVB: TRC 14 + SEI 18, WCG idc 2) | HDR, correct |
| HDR or Log | LUT (either switch) | 8-bit | H.264 or HEVC | Rec.709 | SDR, correct |
| HDR or Log | No LUT | 8-bit * | H.264 or HEVC | Rec.709, no tone mapping | Flat / washed out |
Streaming
Currently supported protocols: RTP & SRT
You can hold rtp/srt indicator and get into stream settings menu: To start stream you you need to tap on indicator once.

Here few server examples which require ffmpeg installed:
SRT Server + preview:
srt-live-transmit "srt://0.0.0.0:9000?mode=listener" "udp://127.0.0.1:5000" & ffplay -i "udp://127.0.0.1:5000"
SRT Sever + HDR preview:
mpv 'srt://0.0.0.0:9000?mode=listener' \
--hwdec=videotoolbox \
--vo=gpu-next \
--target-colorspace-hint=yes \
--loop-file=inf \
--keep-open=always \
--idle=yes \
--demuxer-thread=yes \
--network-timeout=0
RTP Server + preview:
ffplay -fflags nobuffer -flags low_delay -framedrop -probesize 32 -analyzeduration 0 -sync ext -protocol_whitelist file,udp,rtp -f sdp -i <(echo -e "v=0\nm=video 4444 RTP/AVP 96\nc=IN IP4 0.0.0.0\na=rtpmap:96 H264/90000")
Recording
Open Settings -> Recording. Recordings are .mov files.
Save location
- Photo Library (Gallery on Android) by default.
- External Folder: pick an SSD, iCloud Drive or any Files location. The choice survives app restarts. Recommended for ProRes.
Codec (iOS)
| Codec | Notes |
|---|---|
| HEVC | Default. Efficient, small files. |
| ProRes 422 Proxy | Edit proxy, about 45 Mbps at 1080p |
| ProRes 422 LT | About 100 Mbps at 1080p |
| ProRes 422 | Broadcast standard, about 145 Mbps at 1080p |
| ProRes 422 HQ | Highest quality, about 220 Mbps at 1080p |
ProRes needs a ProRes-capable iPhone (13 Pro or later) and a 10-bit source: set Color Space to HLG or Apple Log first. Files are much larger than HEVC.
Bit depth (iOS)
- Auto: matches the source. HLG and Apple Log record 10-bit, Rec. 709 and P3 record 8-bit.
- 8-bit: smaller files, SDR.
- 10-bit: keeps HDR and LUT gradients banding-free. Needs a 10-bit source, otherwise falls back to 8-bit.
The Resolved: line under the options shows what you will actually get, for example 10-bit HEVC.
Bitrate (HEVC)
Auto, 40, 80, 120, 160 or 240 Mbps. The list is capped by resolution: 40 Mbps below 1080p, 120 Mbps at 1080p, 240 Mbps at 4K.
LUT in the recording
The LUT is only baked into the file when the Record scope is on in the LUT panel. With a LUT the file is Rec.709. Without a LUT a 10-bit HLG or Apple Log recording keeps its colour space, so grade it later.
Timecode and genlock (iOS 26, USB-C sync dock such as Blackmagic Camera ProDock)
Genlockin Settings locks the sensor to the dock's reference (iPhone 17 Pro or later). The status line under the switch readscalibratingfirst, thenLocked to reference. The indicators on the camera screen show the same states.- LTC timecode from the dock is written as a timecode track into every recording.
TC Offset (frames)shifts it if your reference is early or late.
Android
Recordings are Rec.709 at a fixed bitrate. Capable devices offer H.264 8-bit or HEVC 10-bit; the external folder works the same way.
HDMI output
Connect a USB-C to HDMI adapter and tap the HDMI button in the bottom row to start or stop the output. The icon lights up while the output is on and a display is connected.
Settings -> HDMI Mode picks one of three outputs:
| Mode | What you get | Latency | LUT, de-squeeze, rotation |
|---|---|---|---|
| Preview | Panel's native refresh, usually 60 Hz. 23.98 content shows as pulldown. | Lowest | Applied |
| Video Feed (default) | The HDMI link is driven at the capture rate, so 23.98 or 59.94 come out with exact cadence (iOS 26). | Adds a little | Applied |
| Broadcast | Sensor feed sent straight to the DisplayPort link with SMPTE ancillary data, including lens metadata. Exact cadence. | Lowest | Not applied |
Broadcast needs iOS 27 and a supported capture format; the option is greyed out otherwise.
- The LUT on HDMI follows the
Monitorscope in the LUT panel, which covers preview and HDMI together. Without a LUT an HLG source is sent as HDR. HDMI Audioin Settings plays the microphone input through the HDMI audio while the output is on, for monitoring on the external display.- Android : a single mode, the LUT-processed feed full screen on the external display.
REMI setup
REMI is the protocol the CyanView RCP and gateway use to control cameras. The phone runs a REMI server on TCP port 7447; the gateway connects to the phone. One gateway at a time.
Camera number
Settings -> Camera Number (1 to 255) is what the camera shows up as on the RCP. The device is announced as <number> <name>, for example 1 CyanCamera.
Local network
Put the phone on the same network as the gateway and add it as a REMI device with the phone's IP address and port 7447. The phone re-announces itself every few seconds until the gateway subscribes.
Cloud (remote RCP)
When the RCP is not on the same network, Settings -> REMI relays REMI through CyanView's cloud:
Camera Name: the name shown on the RCP.Tag: must match the tag configured on the gateway or RCP side. Several RCPs can share one tag.Region: Auto, EU or US, or Manual to enter your own host and port.Connect/Disconnect. The status reads Disconnected, Connecting or Connected, and the fields lock while connected.
What the RCP controls
ISO, EV, shutter, iris, white balance and tint, lens, zoom and focus. Taking a value on the RCP puts it in manual and the phone shows it in orange; tap the value on the phone, or use auto on the RCP, to go back to auto. Colour corrections (white balance RGB, gamma, black, hue, saturation, multimatrix) go into the phone's LUT engine, see Color Shading.
Custom buttons (RCP -> Camera -> Custom)
| Button | Action |
|---|---|
| RTP, SRT | Start or stop the stream in that protocol |
| 13mm, 24mm, 77mm (your lenses) | Switch lens |
| bit-, bit+ | Stream bitrate down or up by 0.1 Mbps while streaming |
| CorrON / CorrOFF | RCP colour corrections on or off, shows the current state |