Cpcam is an application designed for high-performance camera streaming to remote endpoints. Built with modern Android development practices, it supports various media protocols and codecs for flexible streaming solutions.
This application is currently in early development phase. Many features are still under implementation and may not be fully functional.
The application can be configured through the settings screen, allowing you to:
- Connecting to a different remote endpoints, currently supported:
- OBS (via obs-websocket)
- Select streaming protocols, currently supported:
- MPEGTS
- MJPEG
- RTSP
- RTP
- HLS
- Configure codecs, currently supported:
- Mediacodec (H264, VP8, VP9, AV1, MPEG4, HEVC)
- MJPEG
-
Clone the repository:
git clone https://github.com/rejeq/cpcam
-
Build native libraries (POSIX environment required)
bash jni_deps/run.sh
-
Configure
keystore.propertiesfor release builds: If you want to use default android debug key:- Copy
keystore_base.propertiestokeystore.properties - Specify keystore file location (
storeFileproperty)
- Copy
-
Build and run the application
# Linux ./gradlew installRelease # Windows gradlew installRelease
cpcam/
├── app/ # Application entry point
├── core/
│ ├── camera/ # Camera handling
│ ├── common/ # Shared utilities
│ ├── data/ # Data and models management
│ ├── device/ # Wrappers for android-specific functionality
│ ├── endpoint/ # Streaming endpoints
│ ├── stream/ # Stream data handling
│ └── ui/ # Common UI components
├── feature/
│ ├── main/ # Main screen
│ ├── settings/ # Settings screen
│ ├── about/ # About screen
│ └── service/ # Background services
└── build-logic/ # Common build logic
