Skip to main content

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 .cube file 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

ModeWhat is appliedProcessing pathOutput, HDR LUT off / onNotes
OffNothingRaw buffer passthroughSource tags at 10-bit, Rec.709 at 8-bitLog/HLG at 8-bit looks flat
RCP onlyLift, gamma, gain, saturation, hue, multimatrixCore Image sRGB cube; Metal if HDR LUT on8-bit Rec.709 / 10-bit BT.2020 HLGCorrections computed in scene-linear light for the active colour space
File LUTThe .cube only, RCP params stored but not appliedMetal two-pass on raw code valuesRec.709 at 8 or 10-bit / BT.2020 HLG at 10-bitTypical Log to 709 conversion
Chain RCP → fileRCP grade, then the .cubeComposed cube (17³ into the file's size), Metal two-passSame as file LUTDefault whenever both are active; rebuilt on each RCP tick
Studio LUTWhole Studio flow baked into one .cubeSame as file LUT, source "studio"Same as file LUTRe-pushed over the phone's WebSocket on each bound-grade change
Studio LUT + RCPRCP grade, then the Studio cubeChain, as aboveSame as file LUTRCP may grade twice, see below
Scope off for an outputNothing on that outputRaw buffer for that output onlyAs "Off"Per output: Monitor, Record, Stream

SourceLUT modeResolvedCodecStream tagsLook on receiver
Rec. 709 / P3 D65any8-bitH.264 or HEVCRec.709 (BT.709 / 709 / 709)SDR, correct
Rec. 2020 HDR (HLG)No LUT10-bitHEVC Main 10BT.2020 / HLG (DVB: TRC 14 + SEI 18, WCG idc 2)HDR, correct
Apple Log / Log 2No LUT10-bitHEVC Main 10BT.2020 primaries, transfer unspecified (WCG idc 3)Flat log, receiver applies LUT
HDR or LogLUT, HDR LUT off10-bitHEVC Main 10Rec.709 at 10-bit (less banding)SDR, correct
HDR or LogLUT, HDR LUT on10-bitHEVC Main 10BT.2020 / HLG (DVB: TRC 14 + SEI 18, WCG idc 2)HDR, correct
HDR or LogLUT (either switch)8-bitH.264 or HEVCRec.709SDR, correct
HDR or LogNo LUT8-bit *H.264 or HEVCRec.709, no tone mappingFlat / 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)

CodecNotes
HEVCDefault. Efficient, small files.
ProRes 422 ProxyEdit proxy, about 45 Mbps at 1080p
ProRes 422 LTAbout 100 Mbps at 1080p
ProRes 422Broadcast standard, about 145 Mbps at 1080p
ProRes 422 HQHighest 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)

  • Genlock in Settings locks the sensor to the dock's reference (iPhone 17 Pro or later). The status line under the switch reads calibrating first, then Locked 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:

ModeWhat you getLatencyLUT, de-squeeze, rotation
PreviewPanel's native refresh, usually 60 Hz. 23.98 content shows as pulldown.LowestApplied
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 littleApplied
BroadcastSensor feed sent straight to the DisplayPort link with SMPTE ancillary data, including lens metadata. Exact cadence.LowestNot applied

Broadcast needs iOS 27 and a supported capture format; the option is greyed out otherwise.

  • The LUT on HDMI follows the Monitor scope in the LUT panel, which covers preview and HDMI together. Without a LUT an HLG source is sent as HDR.
  • HDMI Audio in 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)

ButtonAction
RTP, SRTStart 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 / CorrOFFRCP colour corrections on or off, shows the current state