Skip to content

jazgogmain-png/v380pro

Repository files navigation

🎥 GoldMine CCTV: Native Android RTSP & ONVIF Viewer

⚠️ Disclaimer: Hobby Project / Pre-Alpha ⚠️

This is a "learn-as-we-code" hobby project. It is currently in Pre-Alpha.

  • Goal: A lightweight app that automatically discovers local CCTV cameras and connects to them seamlessly on your home network.
  • Current State: Hardcoded for a specific setup, but proving the core "Gold Mine" logic works where other apps fail.
  • Stability: Expect bugs, messy code, and frequent changes. Not even beta yet!

🚀 The Backstory & "Gold Mine" Logic

Most modern ONVIF apps are too bloated or strict for older HiSilicon/XM-based camera boards. We spent nights fighting through:

  • The Token Trap: Discovering that PROFILE_000 is the specific key required for these boards.
  • The Port 80/8899 Dance: Realizing Port 80 is the "Gatekeeper" (Device Service) while Port 8899 handles the PTZ "heavy lifting."
  • Ghosting Issues: Fixing 2K stream "smearing" by forcing specific hardware decoding settings in LibVLC.

🛠 What's Happening Under the Hood (The Walkthrough)

  1. RTSP Streaming: Using LibVLC to pull high-res 2K video. We use a stream-switching toggle to jump between ch00_0 (HD) and ch00_1 (SD) for better performance on weak Wi-Fi.
  2. SOAP Networking: Instead of heavy ONVIF libraries, we send raw XML "envelopes" (SOAP) via HTTP. It's faster and more compatible with "stubborn" camera firmware.
  3. Security: Implementing WS-Security with PasswordDigests. No plain-text passwords flying over your network.
  4. Fullscreen Immersive: Optimized for modern tall displays (like the Samsung A17) to use every pixel.

🏗 Planned Features

  • Automatic Discovery: Implementing WS-Discovery to find cameras without typing IPs.
  • Floating Joystick: Replacing clunky D-Pad buttons with a smooth, responsive touch controller.
  • Multi-Camera Grid: Viewing more than one ghost-cat at a time.
  • GitHub Commit: Preparing for a clean repo once the code is less "spaghetti."

📱 Compatibility

  • Min SDK: 26 (Android 8.0) - Reaching back to keep those old wall-mounted tablets useful!

  • Tested On: Samsung A17, HiSilicon/XM-Board IP Cameras.

  • 📊 Project Status: Pre-Alpha (Phase 1 Complete) ✅ What is working (The Wins) 2K RTSP Stream: Solid, no ghosting, hardware decoding is tuned.

Dual-Channel Switching: Instant toggle between HD and SD.

Stable PTZ: The PROFILE_000 discovery was the breakthrough. Buttons are commanding the camera with 200 OK status.

Zero-Permission Footprint: No storage or mic access needed yet, keeping it light.

🚧 Current Challenge: The Joystick Status: Migrating from clunky buttons to a smooth 360° touch controller.

Goal: Map x,y coordinates to ContinuousMove without DDOS-ing the camera's CPU.

🎙️ The Audio Situation (The "One-Way" Reality) We are currently at one-Way Audio, and here is why "two-Way" is our next milestone:

The Stream: Most of these HiSilicon boards encode audio in G.711 (PCMU/PCMA) or AAC.

The VLC Advantage: Since we are using LibVLC, the "Hearing" part should actually work out of the box if the camera is sending the audio track over RTSP.

The "Talk Back" (Two-Way) Wall: Talking to the camera is a whole different beast. It requires a specific ONVIF "Backchannel" or a raw G.711 stream sent via a different POST command. We aren't there yet—that's Phase 3.

🕹️ Pro-Grade Joystick Implementation

Unlike basic D-Pad implementations, this release features a normalized 360° floating joystick.

  • Dynamic Velocity: Translates touch coordinates into ONVIF Pan/Tilt vectors ($x, y$ from $-1.0$ to $1.0$).
  • Visual Feedback: Includes a real-time "knob" animation using translationX/Y for a tactile feel.
  • Precision Tuning: Implements a $0.2$ deadzone to prevent accidental motor jitter.

🎙️ Audio & Streaming

  • One-Way Audio: Native G.711/AAC support via LibVLC.
  • Status Overlay: Real-time HUD showing stream health and resolution.
  • Hardware Acceleration: Optimized for Android 8.0+ to handle 2K H.264/H.265 streams without ghosting.

About

A high-performance, low-latency Android CCTV viewer for HiSilicon/XM-based IP cameras. Built with LibVLC for smooth 2K RTSP streaming and a SOAP implementation for ONVIF PTZ control without the bloat of heavy libraries. v380pro and others.

Topics

Resources

License

Contributing

Stars

5 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages