gitmyhub

SonyLiveMonitor

Kotlin ★ 9 updated 19d ago

A low latency live view monitor for Sony a6000 and similar cameras, available as Android, iOS, and Python desktop apps.

KotlinSwiftUIPythonOpenCVsetup: hardcomplexity 4/5

SonyLiveMonitor is a low latency live view monitor for Sony a6000 cameras, and other cameras that support Sony's Camera Remote API, built as a lightweight alternative to Sony's own Imaging Edge software. The project includes three parts: a native Android app, which is the most complete version and has been tested on a real a6000 at around 25 frames per second with only about 5 milliseconds of frame delay, a full SwiftUI port of that same app for iPhone, and a Python desktop prototype used mainly for diagnostics and development from a computer.

The Android and iOS apps share the same core feature set. Both show a full screen live view with an overlay reporting frames per second, frame age, and dropped frames. Configurable grid overlays include rule of thirds, thirds with diagonals, or a cross, and these persist between sessions. A real time exposure meter is calculated directly from the live view feed, since Sony's API does not expose the camera's internal light meter, showing a luminance histogram, deviation from middle gray, and percentage of clipped highlights. You can control ISO, shutter speed, aperture, exposure compensation, and trigger the shutter, with available values pulled from the camera based on its current dial mode. Tapping the image sets touch autofocus, and focus peaking is calculated on the phone itself, with adjustable color and sensitivity, working even with manual lenses that have no electronic connection to the camera. A horizontal mirror view helps when filming yourself while looking at the monitor, and only flips the preview while keeping touch focus accurate. On cameras with Smart Remote Control patched in, both apps offer a full memory card gallery, separate JPEG and RAW downloads, and multiple photo deletion with confirmation.

The Python desktop version connects to the camera's Smart Remote Control WiFi access point, discovers its JSON RPC API endpoint through SSDP, starts the live view stream, and reads JPEG frames over a raw socket that keeps only the newest frame to avoid accumulating lag, then displays it with OpenCV along with FPS and frame age. It is run from the command line with a few optional flags for endpoint, live view size, and window scale.

Where it fits