OpenPocketCine README

The project's README from github.com/erik-sutton95/OpenPocketCine. As one markdown file: README.md.

OpenPocketCine

CI Docs License: Apache 2.0

OpenPocketCine live monitor recording on a landscape iPhone

The open field monitor for DJI Osmo.
Pro monitoring scopes, playback, camera control, and optional Frame.io upload with LUT baking. Free and open source.

Join the TestFlight  ·  Visit openpocketcine.app  ·  Docs  ·  Explore the roadmap

Made for the shot

OpenPocketCine is a production monitor and remote for the DJI Osmo series. Live view is captured today for Osmo Pocket 4 / 4 Pro (HEVC) and, on iOS, Osmo Nano (AVC). Other Osmo bodies can show up in Bluetooth scan; Action and 360 live view is not captured yet.

iOS (iPhone and iPad) is the daily driver. Android is a Play closed-testing beta (waitlist on openpocketcine.app).

Verify record start/stop on the camera body until you trust the link. Reverse-engineered control can be incomplete.

See it in action

Face lock. On iOS Pocket in AF-C, tap a face on the feed to start the camera's subject tracking. Histogram, zebras, and a LUT stay on while you record.

Live monitor with custom face tracking for gimbal lock-on

Scopes. Read the image like a colorist. Waveform, RGB parade, histogram, and vectorscope run live beside the image you are judging, with Traffic Lights on the feed.

Waveform and Traffic Lights over a live view

View assist. Catch it before the take. False color, zebras, Traffic Lights, peaking, grids, and crosshairs sit on the iOS assist rail — including in portrait.

Portrait assist rail with zebras and framing tools

Camera control. On iOS: record, ISO, EV, zoom, and related writes, plus gimbal on Pocket (on-screen stick, a connected game controller, or iOS AirPods head tracking). On Pocket 4 Pro, zoom while you're in D-Log2 hops to D-Log automatically so you keep moving.

Camera controls and zoom while recording

Media library. On iOS, browse clips and stills on the camera. Star the keepers and delete bad takes before you pack up.

Media library showing clips and photos on iPhone

Playback. On iOS and Android, the same scopes and assists as live view, armed from the playback rail (GPU LUT / peaking / zebra on Android playback is a follow-up; the chips already persist). Export with an optional baked LUT on iOS, preview high-frame-rate clips at conform speed, share natively, or upload to Frame.io when Frame.io is configured.

Frame.io

Clip playback with timeline and share controls Clip playback with the full monitoring assist rail

Available today

The native Android implementation lives in this repository as a phone shell with live pairing, HEVC live view, and GPU LUT / peaking / false colour / zebra on the feed. Play closed testing is the waitlist path on openpocketcine.app. Clip export LUT bake and GPU scopes are iOS today.

Captured live view: Osmo Pocket 4 / 4 Pro, and Osmo Nano on iOS. Other Osmo models may appear in scan. Action and 360 live view is not captured yet.

Roadmap shaped in the open

The roadmap lives in GitHub Discussions, where proposed features can have their own thread. Browse the Ideas category to vote, add production context, or propose what OpenPocketCine should tackle next. Roadmap discussions describe direction, not promised dates or release commitments. Engineering-phase detail lives in docs/ROADMAP.md.

Free. Open source. Yours

No subscriptions, no paywalls, no advertising, and no telemetry. OpenPocketCine is Apache-2.0 licensed and built in public with the latest frontier models — Grok, Codex, and Claude — so filmmakers and developers can inspect, improve, and adapt the tool they rely on.

Documentation

Architecture

Production targets a shared Swift business/protocol core with native platform shells:

Layer Path Purpose
Shared core Sources/OpenPocketViewCore/ DUML framing, datalink, BLE adverts, commands, status
iOS app ios/OpenPocketCine/ SwiftUI shell, CoreBluetooth, Hotspot Configuration, VideoToolbox
Android app Apps/Android/app/ Jetpack Compose phone shell and Android platform adapters
Android facade Sources/OpenPocketCineAndroidFacade/ Swift session and JNI boundary for Android
Tests Tests/OpenPocketViewCoreTests/ Swift package tests — framing, transport, discovery, layout

The shared Swift core owns protocol logic and stays portable (no SwiftUI, UIKit, or Android dependencies). Platform shells own sockets, permissions, lifecycle, rendering, and UI.

See docs/ARCHITECTURE.md.

Built in the open

OpenPocketCine is deliberately, transparently built in public with the latest frontier models such as Grok, Codex, and Claude. Engineering guidelines live in AGENTS.md.

OpenPocketCine went through an extended private R&D phase before publication; the public repository starts from a clean slate with a squashed initial commit rather than carrying the experimental history along.

Contributors

@erik-sutton95 @KonradIT

Credits

Osmosis

I learned the BLE pairing and camera Wi-Fi connection path with the help of Osmosis by Konrad Iturbe — a generous open Android client for Osmo cameras. I'm grateful. OpenPocketCine is its own implementation; Osmosis was inspiration for that connection story, not a source I copied.

Please go look at Osmosis too. If you care about talking to Osmo cameras, Konrad's work is worth your time.

No vendor SDK

This project is not affiliated with DJI. No DJI SDK or proprietary documentation is included in, distributed with, or required by this project.

Development

Tooling is managed through just:

just setup         # install meta-check tools (macOS / Homebrew)
just               # list all recipes
just handbook      # docs at http://127.0.0.1:4321/ (live: https://openpocketcine.app/docs/)
just check         # run repository quality checks
just format        # format Swift sources
just test          # run Swift package tests
just native-check  # run Swift tests and build the native iOS app
just android-build # build the Android app and staged Swift runtime
just android-check # build, test, and lint Android
just android-play-setup # one-time Play Console + signing (closed testing)

The iOS Xcode project is generated:

cd ios && xcodegen generate && open OpenPocketCine.xcodeproj

The Simulator has no Bluetooth or camera Wi-Fi. Pairing and live view need a physical iPhone or Android phone.

iOS beta: TestFlight. Archives come from Xcode Cloud. One-time App Store Connect setup:

./scripts/setup-xcode-cloud.sh

See docs/testflight-ci.md.

Android closed testing: signed AAB from GitHub Actions onto Play closed testing (alpha), the same shape as OpenZCine’s Play Internal pipeline. One-time Play Console / signing:

just android-play-setup          # walkthrough (Console, keystore, API robot)
just android-play-sync-secrets   # push play-closed GitHub secrets

See docs/android-play-ci.md.

Contributing

Contributions are welcome!

Please also read our CODE_OF_CONDUCT.md. For security issues, see SECURITY.md.

Support

I truly appreciate everyone who uses this project, files an issue, or sends a patch. Optional Buy Me a Coffee contributions help keep the lights on. If you would rather give to a charity — especially one that helps animals — that is just as welcome.

License

Apache 2.0. Third-party licenses are listed in THIRD-PARTY-NOTICES.md. The app's privacy policy lives at openpocketcine.app/privacy.

This project is not affiliated with or endorsed by SZ DJI Technology Co., Ltd. "DJI", "Osmo", "Osmo Pocket", "Osmo Action", "Osmo Nano", and "Mimo" are trademarks of SZ DJI Technology Co., Ltd., used here for identification only. No DJI SDK is used.

OpenPocketCine (erik-sutton95/OpenPocketCine)

Searching Database…

这是什么?OpenPocketCine 是一款免费开源的 DJI Osmo Pocket 相机现场监视器和遥控应用,为电影创作者在手机屏幕上提供调色师级别的示波器、曝光/对焦辅助和相机控制。
这是一个库,还是安装在手机上的应用?它是一个原生移动应用(不是库),拥有共享的 Swift 协议核心以及独立的 iOS 和 Android 外壳,可直接在 iPhone/iPad 或 Android 手机上运行。
怎么在手机上让它跑起来?iOS 用户加入 TestFlight 测试版;Android 目前是通过 openpocketcine.app 上的候补名单加入的 Play 封闭测试版。通过蓝牙配对并加入相机的 Wi-Fi 热点即可获得实时画面。
我需要真机吗,还是模拟器也行?你需要真实的 iPhone/iPad 或 Android 手机——iOS 模拟器没有蓝牙或相机 Wi-Fi,配对和实时画面在那里无法使用。你还需要一台受支持的 DJI Osmo 相机。
它适用于所有 Osmo 相机和型号吗?目前实时画面只采集 Osmo Pocket 4/4 Pro(HEVC),iOS 上还支持 Osmo Nano(AVC);其他 Osmo 机型可能会出现在蓝牙扫描中,但 Action 和 360 的实时画面尚未实现,而且相机控制是逆向工程实现的,可能不完整。
Android 版的功能和 iOS 版一样全吗?不是——iOS 版是日常主力,具备示波器、LUT 烘焙/导出、Frame.io 上传和完整的相机控制,而原生 Android 应用目前功能较少(录制、ISO、快门、白平衡、点按对焦、云台),仍处于封闭测试阶段。
这个应用会追踪使用数据或借此牟利吗?不会——没有任何订阅、付费墙、广告或遥测。
能直接从应用把素材发到 Frame.io 吗?可以——在 iOS 上你可以导出带可选烘焙 LUT 的片段并直接上传到 Frame.io,但前提是先为该集成添加你自己的 Adobe 应用密钥。
Osmosis 是什么?为什么项目要致谢它?Osmosis 是 Konrad Iturbe 开发的 Osmo 相机开源 Android 客户端,帮助作者了解了 BLE 配对和 Wi-Fi 连接路径。OpenPocketCine 是独立的实现,并非复制的代码。
这个应用需要官方 DJI SDK 才能工作吗?不需要。该项目不使用任何 DJI SDK 或专有文档——相机协议支持是逆向工程得来的。
实时监视究竟能显示哪些内容?波形图、RGB 分量图、直方图、矢量示波器、伪色、斑马纹、Traffic Lights、峰值对焦、网格、画幅辅助线和十字准星都在 iOS 画面上实时运行,还有设备端人脸锁定用于 AF-C 中的被摄体跟踪。
Size
18.2 MB
Stars
338
Age
2mo
Commits · 90 Days